formify 0.22.1 → 0.22.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Gemfile.lock +1 -1
- data/lib/formify/version.rb +1 -1
- data/lib/generators/form/form_generator.rb +13 -15
- data/lib/generators/form/templates/form.rb.tt +16 -7
- data/lib/generators/form/templates/form_spec.rb.tt +6 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 8c9c91aa13403c65348f1652cbbc302b585217c07954344e62a59b8d312ad62c
|
4
|
+
data.tar.gz: 73c457fae48a9a848c6f830f247d26bf8ed37469aefb25b33153369f83f98c56
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 1adbc0904dda3e2275a67af0bd939232e0e23883c1d42d7097a3588c09af37532668b67128074da4a8c0b74b1b30ca2a2b32cea5a354c2eb3e82ea148817681d
|
7
|
+
data.tar.gz: f0eac5d0a2d4e2ed3eeea2ace303d9207f0da5ea31d551f66b38c092ff357b71a2b311d9010f4b77167fc87c62e30be479dffdfa561d8f2ddbc15893e1a56bdf
|
data/Gemfile.lock
CHANGED
data/lib/formify/version.rb
CHANGED
@@ -7,9 +7,10 @@ class FormGenerator < Rails::Generators::NamedBase
|
|
7
7
|
# check_class_collision
|
8
8
|
|
9
9
|
argument :form_attributes,
|
10
|
+
default: [],
|
11
|
+
description: 'A list of attributes and their delegates: foo:bar,baz',
|
10
12
|
type: :array,
|
11
|
-
required:
|
12
|
-
description: 'A list of attributes and their delegates: foo:bar,baz'
|
13
|
+
required: false
|
13
14
|
|
14
15
|
class_option :pluralize_collection,
|
15
16
|
default: true,
|
@@ -47,9 +48,11 @@ class FormGenerator < Rails::Generators::NamedBase
|
|
47
48
|
private
|
48
49
|
|
49
50
|
def all_attributes
|
50
|
-
@all_attributes ||=
|
51
|
-
|
52
|
-
|
51
|
+
@all_attributes ||= begin
|
52
|
+
ret = flattened_form_attributes
|
53
|
+
.map(&:strip)
|
54
|
+
.sort
|
55
|
+
end
|
53
56
|
end
|
54
57
|
|
55
58
|
def attributes_with_delegates
|
@@ -76,14 +79,11 @@ class FormGenerator < Rails::Generators::NamedBase
|
|
76
79
|
form == 'create'
|
77
80
|
end
|
78
81
|
|
79
|
-
def create?
|
80
|
-
form == 'create'
|
81
|
-
end
|
82
|
-
|
83
82
|
def delegated_attributes
|
84
83
|
@delegated_attributes ||= attributes_and_delegates
|
85
84
|
.select { |_k, v| v.sort!.present? }
|
86
85
|
end
|
86
|
+
|
87
87
|
def destroy_attribute
|
88
88
|
@destroy_attribute ||= begin
|
89
89
|
if all_attributes.include?(collection.singularize)
|
@@ -113,7 +113,7 @@ class FormGenerator < Rails::Generators::NamedBase
|
|
113
113
|
|
114
114
|
def factory_bot?
|
115
115
|
@factory_bot ||= begin
|
116
|
-
require '
|
116
|
+
require 'factory_bot'
|
117
117
|
FactoryBot.find_definitions
|
118
118
|
Class.const_defined?('FactoryBot')
|
119
119
|
end
|
@@ -181,10 +181,8 @@ class FormGenerator < Rails::Generators::NamedBase
|
|
181
181
|
"update_#{collection.singularize}"
|
182
182
|
elsif upsert?
|
183
183
|
"upsert_#{collection.singularize}"
|
184
|
-
elsif form.include?('_')
|
185
|
-
form
|
186
184
|
else
|
187
|
-
|
185
|
+
form
|
188
186
|
end
|
189
187
|
end
|
190
188
|
|
@@ -208,8 +206,8 @@ class FormGenerator < Rails::Generators::NamedBase
|
|
208
206
|
@return_attribute ||= begin
|
209
207
|
if all_attributes.include?(collection.singularize)
|
210
208
|
collection.singularize
|
211
|
-
|
212
|
-
form_attributes.split(':').first
|
209
|
+
elsif !form_attributes.first.nil?
|
210
|
+
form_attributes.first.split(':').first
|
213
211
|
end
|
214
212
|
end
|
215
213
|
end
|
@@ -3,29 +3,31 @@
|
|
3
3
|
<% module_namespacing do -%>
|
4
4
|
class <%= form_name %>
|
5
5
|
include Formify::Form
|
6
|
-
|
6
|
+
<% if attributes_with_delegates.any? -%>
|
7
7
|
attr_accessor :<%= attributes_with_delegates.first %><%= ',' if attributes_with_delegates.count > 1 %>
|
8
|
-
<% attributes_with_delegates[1..-1].each_with_index do |attr, i| -%>
|
8
|
+
<% (attributes_with_delegates[1..-1] || []).each_with_index do |attr, i| -%>
|
9
9
|
:<%= attr %><%= ',' unless attributes_with_delegates.count - 2 == i %>
|
10
10
|
<% end -%>
|
11
|
+
<% end -%>
|
11
12
|
|
12
13
|
<% delegated_attributes.each do |to_attr, delegates| -%>
|
13
14
|
delegate_accessor :<%= delegates.first %>,
|
14
|
-
<% delegates[1..-1].each_with_index do |attr, i| -%>
|
15
|
+
<% (delegates[1..-1] || []).each_with_index do |attr, i| -%>
|
15
16
|
:<%= attr %>,
|
16
17
|
<% end -%>
|
17
18
|
to: :<%= to_attr %>
|
18
|
-
<% end -%>
|
19
19
|
|
20
|
+
<% end -%>
|
20
21
|
# before_validation :before_validation_do_something
|
21
|
-
|
22
|
+
<% if all_attributes.any? %>
|
22
23
|
validates_presence_of :<%= all_attributes.first %><%= ',' if all_attributes.count > 1 %>
|
23
|
-
<% all_attributes[1..-1].each_with_index do |attr, i| -%>
|
24
|
+
<% (all_attributes[1..-1] || []).each_with_index do |attr, i| -%>
|
24
25
|
:<%= attr %><%= ',' unless all_attributes.count - 2 == i %>
|
26
|
+
<% end -%>
|
25
27
|
<% end -%>
|
26
28
|
|
27
29
|
# validate :validate_something
|
28
|
-
|
30
|
+
<% if all_attributes.any? %>
|
29
31
|
initialize_with :<%= attributes_with_delegates.join(', :') %> do |attributes|
|
30
32
|
<% if create? -%>
|
31
33
|
self.<%= method_attribute %> ||= <%= inferred_model_name %>.new
|
@@ -39,12 +41,15 @@ class <%= form_name %>
|
|
39
41
|
puts attributes
|
40
42
|
<% end -%>
|
41
43
|
end
|
44
|
+
<% end -%>
|
42
45
|
|
43
46
|
def save
|
44
47
|
with_advisory_lock_transaction(<%= lock_key.join(', ') %>) do
|
45
48
|
validate_or_fail
|
46
49
|
.and_then { <%= method_name %> }
|
50
|
+
<% unless return_attribute.nil? -%>
|
47
51
|
.and_then { success(<%= return_attribute %>) }
|
52
|
+
<% end -%>
|
48
53
|
end
|
49
54
|
end
|
50
55
|
|
@@ -59,7 +64,11 @@ class <%= form_name %>
|
|
59
64
|
raise NotImplementedError
|
60
65
|
|
61
66
|
<% end -%>
|
67
|
+
<% if return_attribute.nil? -%>
|
68
|
+
success
|
69
|
+
<% else -%>
|
62
70
|
success(<%= return_attribute %>)
|
71
|
+
<% end -%>
|
63
72
|
end
|
64
73
|
|
65
74
|
# def before_validation_do_something
|
@@ -6,6 +6,7 @@ require 'formify/spec_helpers'
|
|
6
6
|
describe Forms::<%= class_name %>, type: :form do
|
7
7
|
include Formify::SpecHelpers
|
8
8
|
|
9
|
+
<% if all_attributes.any? %>
|
9
10
|
<% all_attributes.each do |attr| -%>
|
10
11
|
<% if factory_bot? && factory?(attr) -%>
|
11
12
|
let(:<%= attr %>) { FactoryBot.create(:<%= attr %>) }
|
@@ -14,11 +15,13 @@ describe Forms::<%= class_name %>, type: :form do
|
|
14
15
|
<% end -%>
|
15
16
|
<% end -%>
|
16
17
|
|
18
|
+
<% end -%>
|
17
19
|
<% if spec_comments? -%>
|
18
20
|
# :attributes is used to initialize the form.
|
19
21
|
# These values should result in a valid form.
|
20
22
|
# You can override these in blocks or use let(:attributes_override) { { foo: bar } }
|
21
23
|
<% end -%>
|
24
|
+
<% if all_attributes.any? %>
|
22
25
|
let(:attributes) do
|
23
26
|
{
|
24
27
|
<% all_attributes.each_with_index do |attr, i| -%>
|
@@ -27,11 +30,12 @@ describe Forms::<%= class_name %>, type: :form do
|
|
27
30
|
}
|
28
31
|
end
|
29
32
|
|
33
|
+
<% end -%>
|
30
34
|
it { expect_valid }<% if spec_comments? -%> # Expect the form to be valid<% end %>
|
31
35
|
it { expect(result).to be_success }
|
32
36
|
it { expect(value).to be_a(<%= inferred_model_name %>) }<% if spec_comments? -%> # Model name inferred<% end %>
|
33
|
-
|
34
37
|
<% all_attributes.each do |attr| -%>
|
38
|
+
|
35
39
|
describe '#<%= attr %>' do
|
36
40
|
it { expect_error_with_missing_attribute(:<%= attr %>) }
|
37
41
|
xit { expect_error_with_attribute_value(:<%= attr %>, <%= attr.upcase %>_BAD_VALUE, message: nil) } # :message is optional
|
@@ -40,6 +44,7 @@ describe Forms::<%= class_name %>, type: :form do
|
|
40
44
|
|
41
45
|
<% end -%>
|
42
46
|
<% if spec_comments? -%>
|
47
|
+
|
43
48
|
# Other Expectation Helpers
|
44
49
|
# xit { expect_error_message(message) }
|
45
50
|
# xit { expect_error_with_attribute(attribute) }
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: formify
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.22.
|
4
|
+
version: 0.22.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ryan Jackson
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2019-06-
|
11
|
+
date: 2019-06-25 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|