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
61 62 63 64 |
# File 'lib/avro/builder/dsl_attributes.rb', line 61 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.
27 28 29 30 31 32 33 34 35 |
# File 'lib/avro/builder/dsl_attributes.rb', line 27 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
46 47 48 49 50 |
# File 'lib/avro/builder/dsl_attributes.rb', line 46 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
52 53 54 55 56 57 58 59 |
# File 'lib/avro/builder/dsl_attributes.rb', line 52 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
37 38 39 40 41 42 43 44 |
# File 'lib/avro/builder/dsl_attributes.rb', line 37 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 |