dyna_form 0.1.0 → 0.1.3

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.
data/CHANGELOG ADDED
@@ -0,0 +1,6 @@
1
+ 2014-08-13 Willux <zaikaus1@gmail.com>
2
+
3
+ * Removed the dangerous 'DynaForm::Base#submit!' method
4
+ * Ensured that 'DynaForm::Base#submit' returns a boolean if the validations pass.
5
+ * Allow users to add validations in the form class.
6
+ * Updated README.
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- dyna_form (0.1.0)
4
+ dyna_form (0.1.3)
5
5
  activerecord
6
6
  activesupport
7
7
 
data/README.md CHANGED
@@ -81,6 +81,8 @@ and submit it:
81
81
  `DynaForm#submit!` calls `ActiveRecord::Base#create!`. Which means that whatever
82
82
  exception `ActiveRecord::Base#create!` throws, `DynaForm#submit!` will throw.
83
83
 
84
+ You are welcome to add any validations you want in the form class. It'll allow you to keep your models skinnier and encapsulate any form functionality in a single class.
85
+
84
86
  ## Contributing
85
87
 
86
88
  1. Fork it ( https://github.com/willux/dyna_form/fork )
@@ -41,12 +41,10 @@ module DynaForm
41
41
  @lazy_initialization ? create_var(method, arguments.first) : super
42
42
  end
43
43
 
44
- def submit!
45
- submissions.each { |s| s.submit! }
46
- end
47
-
48
44
  def submit
49
- submissions.each { |s| s.submit }
45
+ result = true
46
+ submissions.each { |s| result && s.submit }
47
+ result
50
48
  end
51
49
 
52
50
  def persisted?
@@ -7,23 +7,16 @@ module DynaForm
7
7
  @attributes = attributes.clone
8
8
  end
9
9
 
10
- def submit!
11
- submit_helper(true)
12
- end
13
-
14
10
  def submit
15
- submit_helper(false)
16
- end
17
-
18
- private
19
-
20
- def submit_helper(dangerous)
21
11
  attrs = @attributes.select { |k, _| @variables.include?(k.to_sym) }
22
12
 
23
13
  class_name = @model
24
- dangerous ? Kernel.const_get(class_name).create!(attrs) : Kernel.const_get(class_name).create(attrs)
14
+ new_object = Kernel.const_get(class_name).new(attrs)
15
+ new_object.save
25
16
  end
26
17
 
18
+ private
19
+
27
20
  def parse_model(model)
28
21
  str_model = model.to_s
29
22
  words = str_model.split("_")
@@ -1,3 +1,3 @@
1
1
  module DynaForm
2
- VERSION = "0.1.0"
2
+ VERSION = "0.1.3"
3
3
  end
@@ -44,7 +44,7 @@ describe DynaForm::Submission do
44
44
  attrs = { :first_name => "Who", :last_name => "Cares" }
45
45
 
46
46
  expect(Kernel).to receive(:const_get).with("AdminUser").and_return(hypo_object)
47
- expect(hypo_object).to receive(:create).with(attrs).and_raise("User created")
47
+ expect(hypo_object).to receive(:new).with(attrs).and_raise("User created")
48
48
 
49
49
  submission = DynaForm::Submission.new(AdminUser, variables, attributes)
50
50
  expect { submission.submit }.to raise_error("User created")
metadata CHANGED
@@ -1,7 +1,8 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dyna_form
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.1.3
5
+ prerelease:
5
6
  platform: ruby
6
7
  authors:
7
8
  - Willux
@@ -13,71 +14,81 @@ dependencies:
13
14
  - !ruby/object:Gem::Dependency
14
15
  name: activerecord
15
16
  requirement: !ruby/object:Gem::Requirement
17
+ none: false
16
18
  requirements:
17
- - - ">="
19
+ - - ! '>='
18
20
  - !ruby/object:Gem::Version
19
21
  version: '0'
20
22
  type: :runtime
21
23
  prerelease: false
22
24
  version_requirements: !ruby/object:Gem::Requirement
25
+ none: false
23
26
  requirements:
24
- - - ">="
27
+ - - ! '>='
25
28
  - !ruby/object:Gem::Version
26
29
  version: '0'
27
30
  - !ruby/object:Gem::Dependency
28
31
  name: activesupport
29
32
  requirement: !ruby/object:Gem::Requirement
33
+ none: false
30
34
  requirements:
31
- - - ">="
35
+ - - ! '>='
32
36
  - !ruby/object:Gem::Version
33
37
  version: '0'
34
38
  type: :runtime
35
39
  prerelease: false
36
40
  version_requirements: !ruby/object:Gem::Requirement
41
+ none: false
37
42
  requirements:
38
- - - ">="
43
+ - - ! '>='
39
44
  - !ruby/object:Gem::Version
40
45
  version: '0'
41
46
  - !ruby/object:Gem::Dependency
42
47
  name: bundler
43
48
  requirement: !ruby/object:Gem::Requirement
49
+ none: false
44
50
  requirements:
45
- - - "~>"
51
+ - - ~>
46
52
  - !ruby/object:Gem::Version
47
53
  version: '1.6'
48
54
  type: :development
49
55
  prerelease: false
50
56
  version_requirements: !ruby/object:Gem::Requirement
57
+ none: false
51
58
  requirements:
52
- - - "~>"
59
+ - - ~>
53
60
  - !ruby/object:Gem::Version
54
61
  version: '1.6'
55
62
  - !ruby/object:Gem::Dependency
56
63
  name: rake
57
64
  requirement: !ruby/object:Gem::Requirement
65
+ none: false
58
66
  requirements:
59
- - - ">="
67
+ - - ! '>='
60
68
  - !ruby/object:Gem::Version
61
69
  version: '0'
62
70
  type: :development
63
71
  prerelease: false
64
72
  version_requirements: !ruby/object:Gem::Requirement
73
+ none: false
65
74
  requirements:
66
- - - ">="
75
+ - - ! '>='
67
76
  - !ruby/object:Gem::Version
68
77
  version: '0'
69
78
  - !ruby/object:Gem::Dependency
70
79
  name: rspec
71
80
  requirement: !ruby/object:Gem::Requirement
81
+ none: false
72
82
  requirements:
73
- - - "~>"
83
+ - - ~>
74
84
  - !ruby/object:Gem::Version
75
85
  version: 3.0.0
76
86
  type: :development
77
87
  prerelease: false
78
88
  version_requirements: !ruby/object:Gem::Requirement
89
+ none: false
79
90
  requirements:
80
- - - "~>"
91
+ - - ~>
81
92
  - !ruby/object:Gem::Version
82
93
  version: 3.0.0
83
94
  description: We want to avoid nested forms while creating a form based on some object.
@@ -89,8 +100,9 @@ executables: []
89
100
  extensions: []
90
101
  extra_rdoc_files: []
91
102
  files:
92
- - ".gitignore"
93
- - ".rspec"
103
+ - .gitignore
104
+ - .rspec
105
+ - CHANGELOG
94
106
  - Gemfile
95
107
  - Gemfile.lock
96
108
  - LICENSE.txt
@@ -111,26 +123,27 @@ files:
111
123
  homepage: ''
112
124
  licenses:
113
125
  - MIT
114
- metadata: {}
115
126
  post_install_message:
116
127
  rdoc_options: []
117
128
  require_paths:
118
129
  - lib
119
130
  required_ruby_version: !ruby/object:Gem::Requirement
131
+ none: false
120
132
  requirements:
121
- - - ">="
133
+ - - ! '>='
122
134
  - !ruby/object:Gem::Version
123
135
  version: '0'
124
136
  required_rubygems_version: !ruby/object:Gem::Requirement
137
+ none: false
125
138
  requirements:
126
- - - ">="
139
+ - - ! '>='
127
140
  - !ruby/object:Gem::Version
128
141
  version: '0'
129
142
  requirements: []
130
143
  rubyforge_project:
131
- rubygems_version: 2.4.1
144
+ rubygems_version: 1.8.23
132
145
  signing_key:
133
- specification_version: 4
146
+ specification_version: 3
134
147
  summary: A gem used to help delegate form fields to their respective models.
135
148
  test_files:
136
149
  - spec/dyna_form/base_spec.rb
@@ -139,3 +152,4 @@ test_files:
139
152
  - spec/support/admin_user.rb
140
153
  - spec/support/test_form.rb
141
154
  - spec/support/test_form_again.rb
155
+ has_rdoc:
checksums.yaml DELETED
@@ -1,7 +0,0 @@
1
- ---
2
- SHA1:
3
- metadata.gz: ebe2e3f52047f575f890cb82eac1285e34c80d6f
4
- data.tar.gz: 307dd2232cbfda97c6ef3dbe723f57135b697a8a
5
- SHA512:
6
- metadata.gz: ccbbb29668da0e8dae6fbeeed2522157d6193ae10935409a11f33c327a61689e32d4d8f68a353de4ac9c512f83e6d56e68c87cf97538010cb9ec45b65ced66c0
7
- data.tar.gz: 00400aba310c964d9269fe2bb7bc6ca2359f26701c14406fece26fa7f4251fa569b088409d785aa649e2d2c35fe45961be114c46c152fd0d68a264820dcae8cd