Module: SimpleMapper::Persistence::ClassMethods
- Defined in:
- lib/simple_mapper/persistence.rb
Instance Attribute Summary collapse
-
#format ⇒ Object
Returns the value of attribute format.
-
#format_name ⇒ Object
readonly
Returns the value of attribute format_name.
Instance Method Summary collapse
- #add_connection_adapter(name_or_adapter, adapter = nil, &block) ⇒ Object
-
#clone_connection(klass, adapter_name = nil) ⇒ Object
This is only here to show you in the docs how to clone a connection connection_adapters = connection_adapters connections = klass.connection(adapter_name).
- #connection(name = :default, refresh = false) ⇒ Object
- #connection_adapters ⇒ Object
- #connections ⇒ Object
-
#create(*args) ⇒ Object
new.save.
- #debug! ⇒ Object
- #debug? ⇒ Boolean
- #extract_from(formatted_data) ⇒ Object
- #extract_one(formatted_data, identifier = nil) ⇒ Object
-
#get(*args) ⇒ Object
get.
- #load(data = nil) ⇒ Object
- #persistent? ⇒ Boolean
Instance Attribute Details
#format ⇒ Object
Returns the value of attribute format.
15 16 17 |
# File 'lib/simple_mapper/persistence.rb', line 15 def format @format end |
#format_name ⇒ Object (readonly)
Returns the value of attribute format_name.
54 55 56 |
# File 'lib/simple_mapper/persistence.rb', line 54 def format_name @format_name end |
Instance Method Details
#add_connection_adapter(name_or_adapter, adapter = nil, &block) ⇒ Object
23 24 25 26 27 28 29 30 31 32 33 34 35 36 |
# File 'lib/simple_mapper/persistence.rb', line 23 def add_connection_adapter(name_or_adapter,adapter=nil,&block) if adapter.nil? adapter = name_or_adapter name = :default else name = name_or_adapter.to_sym end # Should complain if the adapter doesn't exist. connection_adapters[name][:adapter] = adapter require "#{File.dirname(__FILE__)}/adapters/#{adapter}_adapter" connection_adapters[name][:init_block] = block if block_given? connection_adapters[name][:debug] = @debug [name, adapter] end |
#clone_connection(klass, adapter_name = nil) ⇒ Object
This is only here to show you in the docs how to clone a connection
connection_adapters[adapter_name] = connection_adapters[adapter_name]
connections[adapter_name] = klass.connection(adapter_name)
41 42 43 |
# File 'lib/simple_mapper/persistence.rb', line 41 def clone_connection(klass,adapter_name=nil) raise 'Not Implemented!' end |
#connection(name = :default, refresh = false) ⇒ Object
59 60 61 62 63 64 65 66 67 68 69 70 |
# File 'lib/simple_mapper/persistence.rb', line 59 def connection(name=:default,refresh=false) connections[name] = begin # Initialize the connection with the connection adapter. raise ArgumentError, "Must include :adapter!" unless connection_adapters[name][:adapter].to_s.camelize.length > 0 adapter = Object.module_eval("::SimpleMapper::#{connection_adapters[name][:adapter].to_s.camelize}Adapter", __FILE__, __LINE__).new connection_adapters[name][:init_block].in_context(adapter).call if connection_adapters[name][:init_block].is_a?(Proc) adapter.set_headers format.mime_type_headers adapter.debug! if connection_adapters[name][:debug] adapter end if !connections[name] || refresh connections[name] end |
#connection_adapters ⇒ Object
19 20 21 |
# File 'lib/simple_mapper/persistence.rb', line 19 def connection_adapters @connection_adapters ||= Hash.new {|h,k| h[k] = {}} end |
#connections ⇒ Object
56 57 58 |
# File 'lib/simple_mapper/persistence.rb', line 56 def connections @connections ||= {} end |
#create(*args) ⇒ Object
new.save
81 82 83 |
# File 'lib/simple_mapper/persistence.rb', line 81 def create(*args) new(*args).save end |
#debug! ⇒ Object
17 |
# File 'lib/simple_mapper/persistence.rb', line 17 def debug!; @debug = true end |
#debug? ⇒ Boolean
16 |
# File 'lib/simple_mapper/persistence.rb', line 16 def debug?; @debug end |
#extract_from(formatted_data) ⇒ Object
89 90 91 92 |
# File 'lib/simple_mapper/persistence.rb', line 89 def extract_from(formatted_data) objs = send(:"from_#{format_name}", formatted_data) objs.is_a?(Array) ? objs.collect {|e| e.extended {@persisted = true}} : objs.extended {@persisted = true} end |
#extract_one(formatted_data, identifier = nil) ⇒ Object
94 95 96 97 98 99 100 101 |
# File 'lib/simple_mapper/persistence.rb', line 94 def extract_one(formatted_data, identifier=nil) objs = extract_from(formatted_data) if objs.is_a?(Array) identifier.nil? ? objs.first : objs.reject {|e| e.identifier != identifier}[0] else identifier.nil? ? objs : (objs.identifier == identifier ? objs : nil) end end |
#get(*args) ⇒ Object
get
73 74 75 76 77 78 |
# File 'lib/simple_mapper/persistence.rb', line 73 def get(*args) adapter = adapter_from_args(*args) objs = extract_from(connection(adapter || :default).get(*args)) objs.is_a?(Array) ? objs.each {|e| e.instance_variable_set(:@adapter, adapter)} : objs.instance_variable_set(:@adapter, adapter) if adapter objs end |
#load(data = nil) ⇒ Object
103 104 105 106 107 108 |
# File 'lib/simple_mapper/persistence.rb', line 103 def load(data=nil) obj = allocate obj.send(:initialize, data) obj.original_data = data obj end |
#persistent? ⇒ Boolean
85 86 87 |
# File 'lib/simple_mapper/persistence.rb', line 85 def persistent? true end |