Module: Avro::Builder::DslAttributes::ClassMethods
- Defined in:
- lib/avro/builder/dsl_attributes.rb
Instance Method Summary collapse
- #add_attribute_name(name) ⇒ Object
-
#dsl_attribute(name, &block) ⇒ Object
If a block is specified then it is used to define the combined getter/setter method for the DSL attribute.
- #dsl_attribute_alias(new_name, old_name) ⇒ Object
- #dsl_attribute_names ⇒ Object
- #dsl_attributes(*names) ⇒ Object
Instance Method Details
#add_attribute_name(name) ⇒ Object
59 60 61 62 |
# File 'lib/avro/builder/dsl_attributes.rb', line 59 def add_attribute_name(name) dsl_attribute_names << name add_option_name(name) end |
#dsl_attribute(name, &block) ⇒ Object
If a block is specified then it is used to define the combined getter/setter method for the DSL attribute.
25 26 27 28 29 30 31 32 33 |
# File 'lib/avro/builder/dsl_attributes.rb', line 25 def dsl_attribute(name, &block) if block_given? add_attribute_name(name) define_method(name, &block) alias_writer(name) else dsl_attributes(name) end end |
#dsl_attribute_alias(new_name, old_name) ⇒ Object
44 45 46 47 48 |
# File 'lib/avro/builder/dsl_attributes.rb', line 44 def dsl_attribute_alias(new_name, old_name) alias_method(new_name, old_name) alias_writer(new_name) add_attribute_name(new_name) end |
#dsl_attribute_names ⇒ Object
50 51 52 53 54 55 56 57 |
# File 'lib/avro/builder/dsl_attributes.rb', line 50 def dsl_attribute_names @dsl_attribute_names ||= if superclass.respond_to?(:dsl_attribute_names) superclass.dsl_attribute_names.dup else Set.new end end |
#dsl_attributes(*names) ⇒ Object
35 36 37 38 39 40 41 42 |
# File 'lib/avro/builder/dsl_attributes.rb', line 35 def dsl_attributes(*names) raise 'a block can only be specified with dsl_attribute' if block_given? names.each do |name| add_attribute_name(name) define_accessor(name) end end |