Module: Avro::Builder::DslAttributes::ClassMethods
- Defined in:
- lib/avro/builder/dsl_attributes.rb
Instance Method Summary collapse
-
#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
#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.
29 30 31 32 33 34 35 36 37 |
# File 'lib/avro/builder/dsl_attributes.rb', line 29 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
48 49 50 51 52 |
# File 'lib/avro/builder/dsl_attributes.rb', line 48 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
54 55 56 57 58 59 60 61 |
# File 'lib/avro/builder/dsl_attributes.rb', line 54 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
39 40 41 42 43 44 45 46 |
# File 'lib/avro/builder/dsl_attributes.rb', line 39 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 |