plain_old_model 0.1.4 → 0.1.5

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 9297bff31a1a9c7c81a1e680deccc78635a75ef1
4
+ data.tar.gz: a654e2e11817af53461572c0747ff7b00dbd3c77
5
+ SHA512:
6
+ metadata.gz: 0151bd58b7e8a3f8bd380fc1b3800b9e1fff52faca87417dea9e910dfd3ea94d430f720ee01aa7c26dea496002f34d3fccc71821155ef398d6580edac3b9bdf2
7
+ data.tar.gz: 64b8ead6435fe72dacc3e2e7793023b5c6a9e50b3e41e6e1987448e3af7fdebc8e200cc37ac21c3ba3b65e30a335c9b31cb0438a77203b7a2d4e7fc0f38a1644
@@ -118,7 +118,7 @@ module PlainOldModel
118
118
  association_instance = send(attr_name)
119
119
  if association.class == HasOneAssociation
120
120
  instance_hash = create_association_hash(association_instance,{})
121
- merged_result = instance_hash.deep_merge(attributes[attr_name])
121
+ merged_result = instance_hash.with_indifferent_access.deep_merge(attributes[attr_name])
122
122
  elsif association.class == HasManyAssociation
123
123
  association_instance_array = []
124
124
  if association_instance.nil?
@@ -126,7 +126,7 @@ module PlainOldModel
126
126
  else
127
127
  for i in 0..association_instance.length-1
128
128
  instance_hash = create_association_hash(association_instance[i],{})
129
- association_instance_array << instance_hash.deep_merge(attributes[attr_name][i])
129
+ association_instance_array << instance_hash.with_indifferent_access.deep_merge(attributes[attr_name][i])
130
130
  end
131
131
  merged_result = association_instance_array
132
132
  end
@@ -138,9 +138,9 @@ module PlainOldModel
138
138
  unless association_instance.nil?
139
139
  association_instance.instance_variables.each do |var|
140
140
  if association_instance.instance_variable_get(var).instance_variables.length > 0
141
- association_instance_hash[var.to_s.delete("@").to_sym] = create_association_hash(association_instance.instance_variable_get(var),{})
141
+ association_instance_hash[var.to_s.delete("@")] = create_association_hash(association_instance.instance_variable_get(var),{})
142
142
  else
143
- association_instance_hash[var.to_s.delete("@").to_sym] = association_instance.instance_variable_get(var)
143
+ association_instance_hash[var.to_s.delete("@")] = association_instance.instance_variable_get(var)
144
144
  end
145
145
  end
146
146
  end
@@ -1,3 +1,3 @@
1
1
  module PlainOldModel
2
- VERSION = "0.1.4"
2
+ VERSION = "0.1.5"
3
3
  end
@@ -86,7 +86,7 @@ describe PlainOldModel::Base do
86
86
  end
87
87
  it "should not override unassigned nested attributes' values" do
88
88
  @address = Address.new({:fname => "first value", :lname => "second value", :country => {:code => "In", :name => "India", :continent => {:name => "asia", :desc => {:this => "is a test", :actual_desc => "is another test"}}}, :read_test => 'This should be assigned',:write_test => "this shd be available"})
89
- @address.assign_attributes({:fname => "replaced first value", :lname => "replaced second value", :country => {:name => "United States", :continent => {:desc => {:this => "is a replacement", :actual_desc => "is another replacement"}}}})
89
+ @address.assign_attributes({"fname" => "replaced first value", :lname => "replaced second value", :country => {:name => "United States", :continent => {:desc => {:this => "is a replacement", :actual_desc => "is another replacement"}}}})
90
90
  @address.fname.should == "replaced first value"
91
91
  @address.country.code.should == "In"
92
92
  @address.country.name.should == "United States"
@@ -94,8 +94,16 @@ describe PlainOldModel::Base do
94
94
  @address.read_test.should == "This should be assigned"
95
95
  end
96
96
  it "should create assigned nested attributes" do
97
- @address = Address.new({:fname => "first value", :lname => "second value", :read_test => 'This should be assigned',:write_test => "this shd be available"})
98
- @address.assign_attributes({:fname => "replaced first value", :lname => "replaced second value", :country => {:code => "In", :name => "India"} })
97
+ @address = Address.new({:lname => "second value", :read_test => 'This should be assigned',:write_test => "this shd be available"})
98
+ @address.assign_attributes({"fname" => "first value", :lname => "replaced second value", :country => {:code => "In", :name => "India"} })
99
+ @address.fname.should == "first value"
100
+ @address.country.code.should == "In"
101
+ @address.country.name.should == "India"
102
+ @address.read_test.should == "This should be assigned"
103
+ end
104
+ it "should assigned nested attributes with mixed string and symbol hash keys" do
105
+ @address = Address.new({:fname => "first value", :lname => "second value", :country => {:code => "", :name => ""}, :read_test => 'This should be assigned',:write_test => "this shd be available"})
106
+ @address.assign_attributes({:fname => "replaced first value", :lname => "replaced second value", :country => {"code" => "In", "name" => "India"} })
99
107
  @address.fname.should == "replaced first value"
100
108
  @address.country.code.should == "In"
101
109
  @address.country.name.should == "India"
metadata CHANGED
@@ -1,8 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: plain_old_model
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.4
5
- prerelease:
4
+ version: 0.1.5
6
5
  platform: ruby
7
6
  authors:
8
7
  - Bhaskar Sundarraj
@@ -10,90 +9,81 @@ authors:
10
9
  autorequire:
11
10
  bindir: bin
12
11
  cert_chain: []
13
- date: 2013-04-01 00:00:00.000000000 Z
12
+ date: 2013-04-03 00:00:00.000000000 Z
14
13
  dependencies:
15
14
  - !ruby/object:Gem::Dependency
16
15
  name: activesupport
17
16
  requirement: !ruby/object:Gem::Requirement
18
- none: false
19
17
  requirements:
20
- - - ! '>='
18
+ - - '>='
21
19
  - !ruby/object:Gem::Version
22
20
  version: '0'
23
21
  type: :runtime
24
22
  prerelease: false
25
23
  version_requirements: !ruby/object:Gem::Requirement
26
- none: false
27
24
  requirements:
28
- - - ! '>='
25
+ - - '>='
29
26
  - !ruby/object:Gem::Version
30
27
  version: '0'
31
28
  - !ruby/object:Gem::Dependency
32
29
  name: activemodel
33
30
  requirement: !ruby/object:Gem::Requirement
34
- none: false
35
31
  requirements:
36
- - - ! '>='
32
+ - - '>='
37
33
  - !ruby/object:Gem::Version
38
34
  version: '0'
39
35
  type: :runtime
40
36
  prerelease: false
41
37
  version_requirements: !ruby/object:Gem::Requirement
42
- none: false
43
38
  requirements:
44
- - - ! '>='
39
+ - - '>='
45
40
  - !ruby/object:Gem::Version
46
41
  version: '0'
47
42
  - !ruby/object:Gem::Dependency
48
43
  name: rake
49
44
  requirement: !ruby/object:Gem::Requirement
50
- none: false
51
45
  requirements:
52
- - - ! '>='
46
+ - - '>='
53
47
  - !ruby/object:Gem::Version
54
48
  version: '0'
55
49
  type: :development
56
50
  prerelease: false
57
51
  version_requirements: !ruby/object:Gem::Requirement
58
- none: false
59
52
  requirements:
60
- - - ! '>='
53
+ - - '>='
61
54
  - !ruby/object:Gem::Version
62
55
  version: '0'
63
56
  - !ruby/object:Gem::Dependency
64
57
  name: rspec
65
58
  requirement: !ruby/object:Gem::Requirement
66
- none: false
67
59
  requirements:
68
- - - ! '>='
60
+ - - '>='
69
61
  - !ruby/object:Gem::Version
70
62
  version: '0'
71
63
  type: :development
72
64
  prerelease: false
73
65
  version_requirements: !ruby/object:Gem::Requirement
74
- none: false
75
66
  requirements:
76
- - - ! '>='
67
+ - - '>='
77
68
  - !ruby/object:Gem::Version
78
69
  version: '0'
79
70
  - !ruby/object:Gem::Dependency
80
71
  name: rspec-core
81
72
  requirement: !ruby/object:Gem::Requirement
82
- none: false
83
73
  requirements:
84
- - - ! '>='
74
+ - - '>='
85
75
  - !ruby/object:Gem::Version
86
76
  version: '0'
87
77
  type: :development
88
78
  prerelease: false
89
79
  version_requirements: !ruby/object:Gem::Requirement
90
- none: false
91
80
  requirements:
92
- - - ! '>='
81
+ - - '>='
93
82
  - !ruby/object:Gem::Version
94
83
  version: '0'
95
- description: ! "This gem is created to cater the projects which do not require a backend/database,\n
96
- \ but still need some of the niceties offered by the ActiveRecord"
84
+ description: |-
85
+ This gem is created to cater the projects which do not require a backend/database,
86
+ but still need some of the niceties offered by the ActiveRecord
97
87
  email:
98
88
  - bhaskar.sundarraj@gmail.combhaskar.sundarraj@gettyimages.com
99
89
  - AppDev_RailGun@gettyimages.com
@@ -118,33 +108,26 @@ files:
118
108
  - spec/spec_helper.rb
119
109
  homepage: ''
120
110
  licenses: []
111
+ metadata: {}
121
112
  post_install_message:
122
113
  rdoc_options: []
123
114
  require_paths:
124
115
  - lib
125
116
  required_ruby_version: !ruby/object:Gem::Requirement
126
- none: false
127
117
  requirements:
128
- - - ! '>='
118
+ - - '>='
129
119
  - !ruby/object:Gem::Version
130
120
  version: '0'
131
- segments:
132
- - 0
133
- hash: 3516179471459458128
134
121
  required_rubygems_version: !ruby/object:Gem::Requirement
135
- none: false
136
122
  requirements:
137
- - - ! '>='
123
+ - - '>='
138
124
  - !ruby/object:Gem::Version
139
125
  version: '0'
140
- segments:
141
- - 0
142
- hash: 3516179471459458128
143
126
  requirements: []
144
127
  rubyforge_project:
145
- rubygems_version: 1.8.25
128
+ rubygems_version: 2.0.3
146
129
  signing_key:
147
- specification_version: 3
130
+ specification_version: 4
148
131
  summary: This gem is created to cater the projects which do not require a backend/database,
149
132
  but still need some of the niceties offered by the ActiveRecord
150
133
  test_files: