Module: Sequencescape::Api::Resource::Groups

Included in:
Sequencescape::Api::Resource, Proxy
Defined in:
lib/sequencescape-api/resource/attribute_groups.rb

Defined Under Namespace

Modules: InstanceMethods, Json Classes: Proxy

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.extended(base) ⇒ Object



47
48
49
50
51
# File 'lib/sequencescape-api/resource/attribute_groups.rb', line 47

def self.extended(base)
  base.class_eval do
    include InstanceMethods
  end
end

Instance Method Details

#attribute_group(name, &block) ⇒ Object



53
54
55
56
57
58
# File 'lib/sequencescape-api/resource/attribute_groups.rb', line 53

def attribute_group(name, &block)
  proxy_class = Class.new(Proxy)
  proxy_class.instance_eval(&block)
  define_method(name)       {              attribute_groups[name.to_sym] ||= proxy_class.new(self) }
  define_method("#{name}=") { |attributes| attribute_groups[name.to_sym]   = proxy_class.new(self, attributes) }
end