Module: NSConnector::FieldStore

Included in:
Resource, SubListItem
Defined in:
lib/ns_connector/field_store.rb

Overview

Provides a method create_store_store_accessors! to make keys fields accessible in @store

Instance Method Summary collapse

Instance Method Details

#create_store_accessors!Object

Given fields of [‘name’], we want to define a name= and a name method to retrieve and set the key ‘name’ in our @store



6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
# File 'lib/ns_connector/field_store.rb', line 6

def create_store_accessors!
	fields.each do |field|
		self.class.class_eval do
			# Let's determine the name of our helper method.
			# This makes sure we don't inadvertantly nuke a field that already exists,
			# such as "class".
			method_name = field.to_s
			while self.respond_to? method_name.to_sym
				method_name = "_" + method_name
			end
			method_name = method_name.to_sym

			define_method method_name do
				@store[field.to_s]
			end

			define_method "#{method_name}=" do |value|
				@store[field.to_s] = value
			end
		end
	end
end