embedded_associations 0.0.3 → 0.0.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,3 +1,3 @@
1
1
  module EmbeddedAssociations
2
- VERSION = "0.0.3"
2
+ VERSION = "0.0.4"
3
3
  end
@@ -30,6 +30,10 @@ module EmbeddedAssociations
30
30
  resource_name
31
31
  end
32
32
 
33
+ def filter_attributes(name, attrs, action)
34
+ attrs
35
+ end
36
+
33
37
  # Simple callbacks for now, eventually should use a filter system
34
38
  def before_embedded(record, action); end
35
39
 
@@ -100,10 +104,6 @@ module EmbeddedAssociations
100
104
  end
101
105
  end
102
106
 
103
- def filter_attributes(name, attrs, action)
104
- attrs
105
- end
106
-
107
107
  def handle_plural_resource(parent, name, attr_array, child_definition)
108
108
  current_assoc = parent.send(name)
109
109
 
@@ -115,16 +115,17 @@ module EmbeddedAssociations
115
115
  end
116
116
 
117
117
  attr_array.each do |attrs|
118
+ attrs = ActionController::Parameters.new(attrs)
118
119
  if id = attrs['id']
119
120
  # can't use current_assoc.find(id), see http://stackoverflow.com/questions/11605120/autosave-ignored-on-has-many-relation-what-am-i-missing
120
121
  r = current_assoc.find{|r| r.id == id.to_i}
121
- attrs = filter_attributes(r.class.name, attrs, :update)
122
+ attrs = controller.send(:filter_attributes, r.class.name, attrs, :update)
122
123
  handle_resource(child_definition, r, attrs) if child_definition
123
124
  r.assign_attributes(attrs)
124
125
  run_before_update_callbacks(r)
125
126
  else
126
127
  r = current_assoc.build()
127
- attrs = filter_attributes(r.class.name, attrs, :create)
128
+ attrs = controller.send(:filter_attributes, r.class.name, attrs, :create)
128
129
  handle_resource(child_definition, r, attrs) if child_definition
129
130
  r.assign_attributes(attrs)
130
131
  run_before_create_callbacks(r)
@@ -134,10 +135,11 @@ module EmbeddedAssociations
134
135
 
135
136
  def handle_singular_resource(parent, name, attrs, child_definition)
136
137
  current_assoc = parent.send(name)
138
+ attrs = ActionController::Parameters.new(attrs)
137
139
 
138
140
  if r = current_assoc
139
141
  if attrs
140
- attrs = filter_attributes(r.class.name, attrs, :update)
142
+ attrs = controller.send(:filter_attributes, r.class.name, attrs, :update)
141
143
  handle_resource(child_definition, r, attrs) if child_definition
142
144
  r.assign_attributes(attrs)
143
145
  run_before_update_callbacks(r)
@@ -148,7 +150,7 @@ module EmbeddedAssociations
148
150
  end
149
151
  elsif attrs
150
152
  r = parent.send("build_#{name}")
151
- attrs = filter_attributes(r.class.name, attrs, :create)
153
+ attrs = controller.send(:filter_attributes, r.class.name, attrs, :create)
152
154
  handle_resource(child_definition, r, attrs) if child_definition
153
155
  r.assign_attributes(attrs)
154
156
  run_before_create_callbacks(r)
data/spec/spec_helper.rb CHANGED
@@ -13,8 +13,6 @@ require 'rspec/rails'
13
13
 
14
14
  require 'support/serialization_helpers'
15
15
 
16
- puts File.expand_path("../support/app/db/migrate/", __FILE__)
17
-
18
16
  ActiveRecord::Migrator.migrate(File.expand_path("../support/app/db/migrate/", __FILE__))
19
17
 
20
18
  RSpec.configure do |config|
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: embedded_associations
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.3
4
+ version: 0.0.4
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-03-05 00:00:00.000000000 Z
12
+ date: 2013-03-07 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: railties