# Method attributes in ruby?

**URL:** <https://www.ruby-forum.com/t/method-attributes-in-ruby/64292>\
**Category:** Ruby\
**Created:** [June 23, 2006, 10:58pm UTC](https://www.ruby-forum.com/t/method-attributes-in-ruby/64292 "2006-06-23T22:58:23Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![roggan](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/r/8c91f0/32.png) [@roggan](https://www.ruby-forum.com/u/roggan)\
**Post date:** [June 23, 2006, 10:58pm UTC](https://www.ruby-forum.com/t/method-attributes-in-ruby/64292/1 "2006-06-23T22:58:23Z")

</div>

Is there any standard way of creating c# like attributes for ruby?

eg in c#

[RequireTransaction]  
public void MyMethod()  
…

which can later be examined via reflection and see what attribs are  
available on each method.

if there is no standard way, would it be ok to make it like this?

meta :some\_method =\> “BizMethod”  
meta :some\_method =\> “WritesData”  
meta :some\_method =\> “RequireTrans”  
def some\_method()  
…  
end

by making “meta” a method of Class , wich takes a value key pair  
which can later be fetched by another Class method which takes a symbol  
like :some\_method

eg

attributes = MyType.get\_attributes :some\_method

or

res = MyType.has\_attribute :some\_method,“RequireTrans”

Im still too new to Ruby so I feel like mc guyver trying to invent  
things and have no clue if they are ok or just stupid 😛

//Roger

---

<div class="post-metadata">

**Author:** ![roggan](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/r/8c91f0/32.png) [@roggan](https://www.ruby-forum.com/u/roggan)\
**Post date:** [June 23, 2006, 11:56pm UTC](https://www.ruby-forum.com/t/method-attributes-in-ruby/64292/2 "2006-06-23T23:56:04Z")

</div>

Roger J. wrote:

> Is there any standard way of creating c# like attributes for ruby?

Have you looked at attr\_accessor and related methods?

[http://www.ruby-doc.org/docs/UsersGuide/rg/accessors.html](http://www.ruby-doc.org/docs/UsersGuide/rg/accessors.html)  
[http://www.ruby-doc.org/core/classes/Module.html](http://www.ruby-doc.org/core/classes/Module.html)

–  
James B.

“I never dispute another person’s delusions, just their facts.”

- Len Bullard

---

<div class="post-metadata">

**Author:** ![roggan](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/r/8c91f0/32.png) [@roggan](https://www.ruby-forum.com/u/roggan)\
**Post date:** [June 24, 2006, 12:08am UTC](https://www.ruby-forum.com/t/method-attributes-in-ruby/64292/3 "2006-06-24T00:08:41Z")

</div>

Facets has Annotations. ([http://facets.rubyforge.org](http://facets.rubyforge.org))

But to be clear they are name =\> value pairs, not just values. You  
could do something like this:

ann :some\_method, ‘meta’ =\> [ “BizMethod”, “WritesData”,  
“RequireTrans” ]

def some\_method()  
…  
end

ann.some\_method.meta #=\> [ “BizMethod”, “WritesData”, “RequireTrans”  
]

T.
