active_model_form_objects 0.3.0 → 0.4.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 9ac08a8741affef74af5be2168254f1aaba57705
4
- data.tar.gz: e1a6f5096ad5c5392cae92317c920b9e5e55ec9f
3
+ metadata.gz: 66b44bddf948eeddd0b84d80bf79ae7bf105dee6
4
+ data.tar.gz: d05940a270276d40209c1db0b2b61e5fa2bb068c
5
5
  SHA512:
6
- metadata.gz: 8e5c81efa06585a2adf9d90af530e4ddec8a1e76669a29b5cdd4f3cb8649918cd93aecde21d4770708e00c20116e7d069b0cb1b104016f7c3530691f52861986
7
- data.tar.gz: a85ed04cbe03dafe53db24630e8b5f0b79cfbcc8c1de47432a6a6f098b7e45e3f71b88ac2556551baa94306a8bec72539ed6a3c9df623d1fc433f7532d3aeebe
6
+ metadata.gz: a1e40d8c24f9a4a55f6dbce46d5917f56a8400fca6ca55c6221b90d7ddb9cea0e71790af08f599653fc1a9567dcfcfcb12cdcd2f695d4ad00e0261217349bd34
7
+ data.tar.gz: ae52abc9c9ac0b84316f7e035219db060b3561d8cee9783be537b21eca3d9f461a06216983250ad4e8c997f216afe6dc6d97eeae97548322f92b97c715600c30
@@ -2,6 +2,7 @@ module ActiveModel
2
2
  module FormObject
3
3
  require_relative "form_object/railtie" if defined?(Rails)
4
4
  require_relative 'form_object/validators/nested_validator'
5
+ require_relative 'form_object/strong_parameters'
5
6
 
6
7
  def self.included klass
7
8
  klass.class_eval do
@@ -10,6 +11,7 @@ module ActiveModel
10
11
  include Validations
11
12
  include Validations::Callbacks
12
13
  include Validators
14
+ include StrongParameters
13
15
  extend ClassMethods
14
16
  include InstanceMethods
15
17
  end
@@ -0,0 +1,43 @@
1
+ module ActiveModel
2
+ module FormObject
3
+ module StrongParameters
4
+
5
+ def self.included(klass)
6
+ klass.extend(ClassMethods)
7
+ end
8
+
9
+ module ClassMethods
10
+ def strong_parameters(parameter_name, opts = {})
11
+ if opts == {}
12
+ opts = parameter_name
13
+ parameter_name = :params
14
+ end
15
+
16
+ StrongParameters.new(self).set(parameter_name, opts)
17
+ end
18
+ end
19
+
20
+ class StrongParameters
21
+ attr_accessor :klass
22
+
23
+ def initialize(klass)
24
+ @klass = klass
25
+ end
26
+
27
+ def set(parameter_name, opts)
28
+ opts.each do |key, value|
29
+ klass.send(:define_method, "#{key}_params".to_sym) do
30
+ params = self.send(parameter_name)
31
+ unless params[key].nil?
32
+ self.send(parameter_name).require(key).permit(value)
33
+ end
34
+ end
35
+ end
36
+
37
+ end
38
+ end
39
+
40
+ end
41
+ end
42
+ end
43
+
@@ -1,3 +1,3 @@
1
1
  module ActiveModelFormObjects
2
- VERSION = "0.3.0"
2
+ VERSION = "0.4.0"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: active_model_form_objects
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.0
4
+ version: 0.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Matt Freer
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-02-25 00:00:00.000000000 Z
11
+ date: 2014-03-07 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
@@ -144,6 +144,7 @@ files:
144
144
  - lib/active_model/form_object/generators/test_unit/templates/form_object_test.rb
145
145
  - lib/active_model/form_object/generators/USAGE
146
146
  - lib/active_model/form_object/railtie.rb
147
+ - lib/active_model/form_object/strong_parameters.rb
147
148
  - lib/active_model/form_object/validators/nested_validator.rb
148
149
  - lib/active_model/form_object/version.rb
149
150
  - lib/active_model/form_object.rb