rpc-mapper 0.1.1 → 0.1.2

Sign up to get free protection for your applications and to get access to all the features.
@@ -7,6 +7,11 @@ module RPCMapper::Adapters
7
7
 
8
8
  attr_reader :last_response
9
9
 
10
+ def initialize(*args)
11
+ super
12
+ self.config[:primary_key] ||= :id
13
+ end
14
+
10
15
  def write(object)
11
16
  params = build_params_from_attributes(object)
12
17
  object.new_record? ? post_http(object, params) : put_http(object, params)
@@ -65,6 +70,7 @@ module RPCMapper::Adapters
65
70
  def build_params_from_attributes(object)
66
71
  if self.config[:post_body_wrapper]
67
72
  params = self.config[:default_options] || {}
73
+ params.merge!(object.write_options[:default_options]) if object.write_options.is_a?(Hash) && object.write_options[:default_options].is_a?(Hash)
68
74
 
69
75
  object.attributes.each do |attribute, value|
70
76
  params.merge!({"#{self.config[:post_body_wrapper]}[#{attribute}]" => value})
@@ -78,7 +84,7 @@ module RPCMapper::Adapters
78
84
 
79
85
  def build_uri(object, method)
80
86
  url = [self.config[:host].gsub(%r{/$}, ''), self.config[:service]]
81
- url << object.id unless object.new_record?
87
+ url << object.send(self.config[:primary_key]) unless object.new_record?
82
88
  uri = URI.parse "#{url.join('/')}#{self.config[:format]}"
83
89
 
84
90
  # TRP: method DELETE has no POST body so we have to append any default options onto the query string
@@ -15,7 +15,7 @@ class RPCMapper::Base
15
15
  include RPCMapper::Serialization
16
16
  include RPCMapper::Scopes
17
17
 
18
- attr_accessor :attributes, :new_record
18
+ attr_accessor :attributes, :new_record, :read_options, :write_options
19
19
  alias :new_record? :new_record
20
20
 
21
21
  class_inheritable_accessor :read_adapter, :write_adapter, :cacheable, :defined_attributes, :scoped_methods, :declared_associations
@@ -3,7 +3,7 @@ module RPCMapper
3
3
 
4
4
  MAJOR = 0
5
5
  MINOR = 1
6
- TINY = 1
6
+ TINY = 2
7
7
 
8
8
  def self.to_s # :nodoc:
9
9
  [MAJOR, MINOR, TINY].join('.')
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rpc-mapper
3
3
  version: !ruby/object:Gem::Version
4
- hash: 25
4
+ hash: 31
5
5
  prerelease: false
6
6
  segments:
7
7
  - 0
8
8
  - 1
9
- - 1
10
- version: 0.1.1
9
+ - 2
10
+ version: 0.1.2
11
11
  platform: ruby
12
12
  authors:
13
13
  - Travis Petticrew
@@ -15,7 +15,7 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2010-10-26 00:00:00 -05:00
18
+ date: 2010-10-28 00:00:00 -05:00
19
19
  default_executable:
20
20
  dependencies:
21
21
  - !ruby/object:Gem::Dependency