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 +6 -0
- data/Gemfile.lock +1 -1
- data/README.md +2 -0
- data/lib/dyna_form/base.rb +3 -5
- data/lib/dyna_form/submission.rb +4 -11
- data/lib/dyna_form/version.rb +1 -1
- data/spec/dyna_form/submission_spec.rb +1 -1
- metadata +32 -18
- checksums.yaml +0 -7
data/CHANGELOG
ADDED
data/Gemfile.lock
CHANGED
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 )
|
data/lib/dyna_form/base.rb
CHANGED
@@ -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
|
-
|
45
|
+
result = true
|
46
|
+
submissions.each { |s| result && s.submit }
|
47
|
+
result
|
50
48
|
end
|
51
49
|
|
52
50
|
def persisted?
|
data/lib/dyna_form/submission.rb
CHANGED
@@ -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
|
-
|
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("_")
|
data/lib/dyna_form/version.rb
CHANGED
@@ -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(:
|
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.
|
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
|
-
-
|
93
|
-
-
|
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:
|
144
|
+
rubygems_version: 1.8.23
|
132
145
|
signing_key:
|
133
|
-
specification_version:
|
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
|