module ApiDef::Support::AttrUnoArray

Public Class Methods

attr_uno_array(name, opts) click to toggle source
# File lib/api_def/support/attr_uno_array.rb, line 7
      def self.attr_uno_array(name, opts)
        clazz = opts[:class]
        raise "Please specify a class" unless clazz
        store = opts[:store] || (name.to_s + "s")

        self.attr_array store
        self.class_eval <<-EOF

        def #{name}(value = nil, opts = {})
          obj = #{clazz}.new(value, opts)
          yield obj if block_given?
          self.#{store} << obj
          self
        end

        EOF
      end
included(mod) click to toggle source
# File lib/api_def/support/attr_uno_array.rb, line 3
  def self.included(mod)

    mod.class_eval do

      def self.attr_uno_array(name, opts)
        clazz = opts[:class]
        raise "Please specify a class" unless clazz
        store = opts[:store] || (name.to_s + "s")

        self.attr_array store
        self.class_eval <<-EOF

        def #{name}(value = nil, opts = {})
          obj = #{clazz}.new(value, opts)
          yield obj if block_given?
          self.#{store} << obj
          self
        end

        EOF
      end

    end

  end