formnestic 1.0.11 → 1.0.12

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: e1621bcb434bcdbcba856cb23bc8be60ea07f1722ccc468abe0a80b2f3adbe28
4
- data.tar.gz: 54fc1c385b28dda9f53090a7d092826d3f72c9a3fc208a3e7da258cd143964f6
3
+ metadata.gz: 19dbc5857976dba8a545a7e706263e1ec6052ffbbb7b7aab12f53a30b079f473
4
+ data.tar.gz: 751b42184a4c9ddd77e76d5996ea08ce6784c3b3bcb26e0aed4079ab20468dcc
5
5
  SHA512:
6
- metadata.gz: dfca5c52f22b47c1c35b444c5b53ce6fa0803cb8796d6f6337ca4416cc2c7f29e907394b95d81365dd56eba78192d0252320a4a437f504fa6727a8b0e2a8b22f
7
- data.tar.gz: 1fea05ff4909724c25da44289f6aae4d2a0e01d41d695713dd5b4bb1198fd5c6f9683bd74e191d38b9df649638bdbab1788c0c7006584bcf25e50208c95f6858
6
+ metadata.gz: 964bee3a47f68996bd88cfb03461da02a936ec507c5f109e1fecc50ca40665abfbc7d1904b42f4b908bf69309e3c9e95161de5e1650cbecb35b9aeb85bc480ea
7
+ data.tar.gz: ccc9d7e0bd8b7a372ca4051d287332fa0acd343d6989f5b35ddc1a119dac3ef760eb5adf621fe65c830c00d20a93433170352ee7d1fe02aec6091dc535a519cf
data/Gemfile CHANGED
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  source 'http://rubygems.org'
2
4
  # Add dependencies required to use your gem here.
3
5
  # Example:
@@ -16,6 +18,8 @@ group :development, :test do
16
18
  gem 'spork'
17
19
  gem 'tzinfo'
18
20
  gem 'watchr'
21
+
22
+ gem 'nokogiri', '~> 1.10'
19
23
  end
20
24
 
21
25
  group :test do
@@ -17,7 +17,8 @@ GEM
17
17
  activesupport (3.2.18)
18
18
  i18n (~> 0.6, >= 0.6.4)
19
19
  multi_json (~> 1.0)
20
- addressable (2.3.6)
20
+ addressable (2.7.0)
21
+ public_suffix (>= 2.0.2, < 5.0)
21
22
  builder (3.0.4)
22
23
  coveralls (0.7.0)
23
24
  multi_json (~> 1.3)
@@ -30,21 +31,20 @@ GEM
30
31
  diff-lcs (1.2.5)
31
32
  docile (1.1.5)
32
33
  erubis (2.7.0)
33
- faraday (0.9.0)
34
+ faraday (0.17.3)
34
35
  multipart-post (>= 1.2, < 3)
35
36
  formtastic (2.2.1)
36
37
  actionpack (>= 3.0)
37
- git (1.2.7)
38
- github_api (0.11.3)
39
- addressable (~> 2.3)
40
- descendants_tracker (~> 0.0.1)
41
- faraday (~> 0.8, < 0.10)
42
- hashie (>= 1.2)
43
- multi_json (>= 1.7.5, < 2.0)
44
- nokogiri (~> 1.6.0)
45
- oauth2
46
- hashie (3.0.0)
47
- highline (1.6.21)
38
+ git (1.6.0)
39
+ rchardet (~> 1.8)
40
+ github_api (0.18.2)
41
+ addressable (~> 2.4)
42
+ descendants_tracker (~> 0.0.4)
43
+ faraday (~> 0.8)
44
+ hashie (~> 3.5, >= 3.5.2)
45
+ oauth2 (~> 1.0)
46
+ hashie (3.6.0)
47
+ highline (2.0.3)
48
48
  hike (1.2.3)
49
49
  i18n (0.6.9)
50
50
  jeweler (2.0.1)
@@ -58,21 +58,22 @@ GEM
58
58
  rdoc
59
59
  journey (1.0.4)
60
60
  json (1.8.6)
61
- jwt (1.0.0)
61
+ jwt (2.2.1)
62
62
  mime-types (2.3)
63
- mini_portile (0.6.0)
64
- multi_json (1.10.1)
65
- multi_xml (0.5.5)
66
- multipart-post (2.0.0)
67
- nokogiri (1.6.2.1)
68
- mini_portile (= 0.6.0)
69
- oauth2 (0.9.4)
70
- faraday (>= 0.8, < 0.10)
71
- jwt (~> 1.0)
63
+ mini_portile2 (2.4.0)
64
+ multi_json (1.14.1)
65
+ multi_xml (0.6.0)
66
+ multipart-post (2.1.1)
67
+ nokogiri (1.10.9)
68
+ mini_portile2 (~> 2.4.0)
69
+ oauth2 (1.4.4)
70
+ faraday (>= 0.8, < 2.0)
71
+ jwt (>= 1.0, < 3.0)
72
72
  multi_json (~> 1.3)
73
73
  multi_xml (~> 0.5)
74
- rack (~> 1.2)
75
- rack (1.4.5)
74
+ rack (>= 1.2, < 3)
75
+ public_suffix (4.0.3)
76
+ rack (1.4.7)
76
77
  rack-cache (1.2)
77
78
  rack (>= 0.4)
78
79
  rack-ssl (1.3.4)
@@ -86,7 +87,8 @@ GEM
86
87
  rake (>= 0.8.7)
87
88
  rdoc (~> 3.4)
88
89
  thor (>= 0.14.6, < 2.0)
89
- rake (10.3.2)
90
+ rake (13.0.1)
91
+ rchardet (1.8.0)
90
92
  rdoc (3.12.2)
91
93
  json (~> 1.4)
92
94
  rest-client (1.6.7)
@@ -126,7 +128,7 @@ GEM
126
128
  term-ansicolor (1.3.0)
127
129
  tins (~> 1.0)
128
130
  thor (0.19.1)
129
- thread_safe (0.3.4)
131
+ thread_safe (0.3.6)
130
132
  tilt (1.4.1)
131
133
  tins (1.3.0)
132
134
  tzinfo (1.2.1)
@@ -143,6 +145,7 @@ DEPENDENCIES
143
145
  formtastic (>= 2.2.1)
144
146
  jeweler (~> 2.0.1)
145
147
  json (>= 1.8.3)
148
+ nokogiri (~> 1.10)
146
149
  rake
147
150
  rdoc (~> 3.4)
148
151
  rspec-rails (~> 2.14.0)
@@ -153,4 +156,4 @@ DEPENDENCIES
153
156
  watchr
154
157
 
155
158
  BUNDLED WITH
156
- 1.15.4
159
+ 1.17.2
data/VERSION CHANGED
@@ -1 +1 @@
1
- 1.0.11
1
+ 1.0.12
@@ -5,7 +5,7 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = 'formnestic'
8
- s.version = '1.0.11'
8
+ s.version = '1.0.12'
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new('>= 0') if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ['James']
@@ -1,28 +1,85 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Formnestic
2
4
  module FormBuilder
3
5
  module ListFormBuilder
4
6
  include Formnestic::FormBuilder::BaseBuilder
5
- def formnestic_list_semantic_fields_for(record_or_name_or_array, *args, &block)
7
+ def formnestic_list_semantic_fields_for(
8
+ record_or_name_or_array,
9
+ *args,
10
+ &block
11
+ )
6
12
  options = args.dup.extract_options!
7
13
 
8
14
  formnestic_add_rows_counter_related_attributes
9
- existing_rows = formtastic_semantic_fields_for(record_or_name_or_array, *args, &block)
10
- contents = [template.content_tag(:div, existing_rows, class: 'formnestic-list-entries-container')]
15
+ existing_rows = formtastic_semantic_fields_for(
16
+ record_or_name_or_array,
17
+ *args,
18
+ &block
19
+ )
20
+ contents = [
21
+ template.content_tag(
22
+ :div,
23
+ existing_rows,
24
+ class: 'formnestic-list-entries-container'
25
+ )
26
+ ]
11
27
 
12
28
  options[:min_entry] ||= -1
13
29
  options[:max_entry] ||= -1
14
30
 
15
- options[:min_entry_alert_message] = formnestic_min_entry_alert_message(record_or_name_or_array, options[:min_entry])
16
- contents.push(formnestic_add_new_record_button_row_for_list_form(record_or_name_or_array, *args, &block)) if options[:row_addable]
17
- options[:class] = [options[:class], 'formnestic-nested-model-container'].compact.join
31
+ options[:min_entry_alert_message] =
32
+ formnestic_min_entry_alert_message(
33
+ record_or_name_or_array, options[:min_entry]
34
+ )
35
+ if resolve_row_addable(options[:row_addable])
36
+ contents.push(
37
+ formnestic_add_new_record_button_row_for_list_form(
38
+ record_or_name_or_array, *args, &block
39
+ )
40
+ )
41
+ end
42
+ options[:class] = [
43
+ options[:class],
44
+ 'formnestic-nested-model-container'
45
+ ].compact.join
46
+
47
+ template.content_tag(
48
+ :div,
49
+ contents.join.html_safe,
50
+ options.except(
51
+ :builder,
52
+ :parent,
53
+ :name,
54
+ :parent_builder,
55
+ :display_type,
56
+ :row_removable,
57
+ :new_record_link_label,
58
+ :child_index
59
+ )
60
+ )
61
+ end
62
+
63
+ def resolve_row_addable(row_addable)
64
+ return row_addable if [true, false].index(row_addable)
65
+ return true if row_addable.nil?
66
+
67
+ return row_addable.call if row_addable.is_a?(Proc)
18
68
 
19
- template.content_tag(:div,
20
- contents.join.html_safe,
21
- options.except(:builder, :parent, :name, :parent_builder, :display_type, :row_removable, :new_record_link_label, :child_index))
69
+ true
22
70
  end
23
71
 
24
- def formnestic_add_new_record_button_row_for_list_form(record_or_name_or_array, *args, &block)
25
- template.content_tag(:div, formnestic_link_to_add_fields_with_content(record_or_name_or_array, *args, &block), class: 'formnestic-list-new-entry-link-container')
72
+ def formnestic_add_new_record_button_row_for_list_form(
73
+ record_or_name_or_array, *args, &block
74
+ )
75
+ template.content_tag(
76
+ :div,
77
+ formnestic_link_to_add_fields_with_content(
78
+ record_or_name_or_array,
79
+ *args,
80
+ &block
81
+ ), class: 'formnestic-list-new-entry-link-container'
82
+ )
26
83
  end
27
84
  end
28
85
  end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  # rubocop:disable MethodLength, Documentation, ModuleLength, AbcSize
2
4
  module Formnestic
3
5
  module FormBuilder
@@ -20,7 +22,7 @@ module Formnestic
20
22
  }
21
23
  )]
22
24
 
23
- if options[:row_addable]
25
+ if resolve_row_addable(options[:row_addable])
24
26
  contents.push(
25
27
  formnestic_add_new_record_button_row_for_table(
26
28
  record_or_name_or_array, *args, &block
@@ -58,7 +60,16 @@ module Formnestic
58
60
  :row_removable,
59
61
  :new_record_link_label,
60
62
  :table_headers
61
- ))
63
+ ))
64
+ end
65
+
66
+ def resolve_row_addable(row_addable)
67
+ return row_addable if [true, false].index(row_addable)
68
+ return true if row_addable.nil?
69
+
70
+ return row_addable.call if row_addable.is_a?(Proc)
71
+
72
+ true
62
73
  end
63
74
 
64
75
  def formnestic_add_table_headers_form_attributes
@@ -72,6 +83,7 @@ module Formnestic
72
83
  return if @table_headers.detect do |x|
73
84
  x[:attr] == column_name
74
85
  end.present?
86
+
75
87
  @table_headers.push(
76
88
  attr: column_name,
77
89
  class:
@@ -130,7 +142,7 @@ module Formnestic
130
142
  )
131
143
  )
132
144
  end
133
- if row_removable
145
+ if row_removable != false
134
146
  tr_content_arr.push(
135
147
  template.content_tag(
136
148
  :th, '', class: 'formnestic-minus-thead'
@@ -190,5 +202,13 @@ module Formnestic
190
202
  end
191
203
  end
192
204
  end
205
+
206
+ def resolve_row_removable(row_removable, record)
207
+ if row_removable.is_a?(Proc)
208
+ row_removable.call(record)
209
+ else
210
+ row_removable
211
+ end
212
+ end
193
213
  end
194
214
  end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  # rubocop:disable MethodLength, AbcSize, ModuleLength
2
4
  module Formnestic
3
5
  module Helpers
@@ -36,7 +38,20 @@ module Formnestic
36
38
  :fieldset, [
37
39
  title_div, (
38
40
  if options[:row_removable]
39
- formnestic_row_removing_content_tag(:list)
41
+ row_removable_for_record =
42
+ resolve_row_removable(options[:row_removable], object)
43
+ if row_removable_for_record
44
+ formnestic_row_removing_content_tag(
45
+ :list
46
+ )
47
+ else
48
+ template.content_tag(
49
+ :div,
50
+ '',
51
+ class: \
52
+ formnestic_row_removing_cell_container_div_class(:list)
53
+ )
54
+ end
40
55
  else
41
56
  ''
42
57
  end
@@ -54,8 +69,22 @@ module Formnestic
54
69
  template.content_tag(
55
70
  :tr, [
56
71
  template.capture(&block), (
57
- if options[:row_removable]
58
- formnestic_row_removing_content_tag(:table)
72
+ if options[:row_removable] != false
73
+ row_removable_for_record =
74
+ resolve_row_removable(options[:row_removable], object)
75
+
76
+ if row_removable_for_record
77
+ formnestic_row_removing_content_tag(
78
+ :table
79
+ )
80
+ else
81
+ template.content_tag(
82
+ :td,
83
+ '',
84
+ class: \
85
+ formnestic_row_removing_cell_container_div_class(:table)
86
+ )
87
+ end
59
88
  else
60
89
  ''
61
90
  end
@@ -64,6 +93,14 @@ module Formnestic
64
93
  )
65
94
  end
66
95
 
96
+ def resolve_row_removable(row_removable, record)
97
+ return row_removable if [true, false].index(row_removable)
98
+
99
+ row_removable.call(record) if row_removable.is_a?(Proc)
100
+
101
+ false
102
+ end
103
+
67
104
  def formnestic_legend_for_list_form
68
105
  record_name = if options[:record_header].present?
69
106
  options[:record_header]
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: formnestic
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.11
4
+ version: 1.0.12
5
5
  platform: ruby
6
6
  authors:
7
7
  - James