dyna_form 0.1.0 → 0.1.3

Sign up to get free protection for your applications and to get access to all the features.
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