formie 1.0.4 → 1.1.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 5ef348b6943dc8c20cedb102cffb2bc8ecf911bcaf5a371ac82123c292989821
4
- data.tar.gz: 665deeb0be28f935ab48d54bcfa3d014b8ecabbd76c9015703c13153e38ba7ed
3
+ metadata.gz: cfe4a0b9ed817eb315c1e2a747746a8cbf0089d8f48998df22f1d1bdbab6af9a
4
+ data.tar.gz: 79b1686a7d0069eb6d5a8fc5efe09d249fba17d52b046cba3a53d42deb5514c7
5
5
  SHA512:
6
- metadata.gz: 45f28748bd5c287dbfeaef2687b8fd3dbe37092a1bd8a8c6029a0a29606289f02d1823c1201b446022549fea7836309c4e763b3395632655defb92a631314b13
7
- data.tar.gz: 989cc6575837923b9a6484d024f5aed5ae5c1a823b9b455bc765f62f9a397959ce33409f570dc104701a6f5186654892d58015001bf9cd35a0413e29c4771679
6
+ metadata.gz: 565548b5914977f2fa2244cc46852f303601a66f446191f52d0f1b19256bbe45f9cc834deeca13b3d7e6f2b40d55e481a31b5579f3b2bd829cf51b5a995a4573
7
+ data.tar.gz: 5123b2894e320641887f809de931e8bda8e2ef209b470b0d9224d9dc0fec976e671966a06439f515f44359afc11bd1c3d4fad0828b5361aea1e7f272f306860c
@@ -1,3 +1,4 @@
1
+ # see also https://github.com/whitequark/parser/blob/master/.github/workflows/test.yml
1
2
  name: Rake
2
3
 
3
4
  #on: [push, pull_request]
@@ -8,17 +9,20 @@ jobs:
8
9
  strategy:
9
10
  fail-fast: false
10
11
  matrix:
11
- # os: [ubuntu-latest, macos-latest]
12
12
  os: [ubuntu-latest]
13
13
  # Due to https://github.com/actions/runner/issues/849, we have to use quotes for '3.0'
14
- # ruby: [2.5, 2.6, 2.7, '3.0', head, jruby, jruby-head, truffleruby, truffleruby-head]
15
- ruby: [2.7]
14
+ ruby: ["2.7", "3.0", "3.1", head]
15
+ test_command: ["bundle exec rake test"]
16
16
  runs-on: ${{ matrix.os }}
17
17
 
18
18
  steps:
19
- - uses: actions/checkout@v2
19
+ - uses: actions/checkout@v3
20
20
  - uses: ruby/setup-ruby@v1
21
21
  with:
22
22
  ruby-version: ${{ matrix.ruby }}
23
- bundler-cache: true # runs 'bundle install' and caches installed gems automatically
24
- - run: bundle exec rake
23
+ - name: Bundle install
24
+ run: |
25
+ bundle config path /home/runner/bundle
26
+ bundle install
27
+ bundle update
28
+ - run: ${{ matrix.test_command }}
data/.ruby-gemset CHANGED
@@ -1 +1 @@
1
- rails-6.1
1
+ rails-7.0
data/.ruby-version CHANGED
@@ -1 +1 @@
1
- ruby-2.7.2
1
+ ruby-3.1.3
data/.watchr CHANGED
@@ -1,5 +1,6 @@
1
- HH = '#' * 22 unless defined?(HH)
2
- H = '#' * 5 unless defined?(H)
1
+ TESTING = %w[test]
2
+ HH = "#" * 22 unless defined?(HH)
3
+ H = "#" * 5 unless defined?(H)
3
4
 
4
5
  def usage
5
6
  puts <<-EOS
@@ -16,33 +17,43 @@ end
16
17
 
17
18
  def run_it(type, file)
18
19
  case type
19
- when 'test'; run %(bundle exec ruby -I test #{file})
20
- # when 'spec'; run %(rspec -X #{file})
21
- else; puts "#{H} unknown type: #{type}, file: #{file}"
20
+ when "test" then run %(bundle exec ruby -I test #{file})
21
+ # when 'spec'; run %(rspec -X #{file})
22
+ else; puts "#{H} unknown type: #{type}, file: #{file}"
22
23
  end
23
24
  end
24
25
 
25
26
  def run_all_tests
26
27
  puts "\n#{HH} Running all tests #{HH}\n"
27
- %w[test spec].each { |dir| run "bundle exec rake #{dir}" if File.exist?(dir) }
28
+ TESTING.each { |dir| run "bundle exec rake #{dir}" if File.exist?(dir) }
28
29
  end
29
30
 
30
31
  def run_matching_files(base)
31
- base = base.split('_').first
32
- %w[test spec].each { |type|
33
- files = Dir["#{type}/**/*.rb"].select { |file| file =~ /#{base}_.*\.rb/ }
34
- run_it type, files.join(' ') unless files.empty?
32
+ base = base.split("_").first
33
+ TESTING.each { |type|
34
+ files = Dir["#{type}/**/*.rb"].select { |file| file =~ /#{base}_.*.rb/ }
35
+ run_it type, files.join(" ") unless files.empty?
35
36
  }
36
37
  end
37
38
 
38
- %w[test spec].each { |type|
39
- watch("#{type}/#{type}_helper\.rb") { run_all_tests }
40
- watch('lib/.*\.rb') { run_all_tests }
41
- watch("#{type}/.*/*_#{type}\.rb") { |match| run_it type, match[0] }
39
+ TESTING.each { |type|
40
+ watch("#{type}/#{type}_helper.rb") { run_all_tests }
41
+ watch("lib/.*.rb") { run_all_tests }
42
+ watch("#{type}/.*/*_#{type}.rb") { |match| run_it type, match[0] }
43
+ watch("#{type}/data/(.*).rb") { |match|
44
+ m1 = match[1]
45
+ run_matching_files("#{type}/#{m1}/#{m1}_#{type}.rb")
46
+ }
47
+ }
48
+
49
+ %w[rb erb haml slim].each { |type|
50
+ watch(".*/(.*).#{type}") { |match|
51
+ run_matching_files(match[1])
52
+ }
42
53
  }
43
54
 
44
55
  # Ctrl-\ or ctrl-4
45
- Signal.trap('QUIT') { run_all_tests }
56
+ Signal.trap("QUIT") { run_all_tests }
46
57
  # Ctrl-C
47
- Signal.trap('INT') { abort("Interrupted\n") }
58
+ Signal.trap("INT") { abort("Interrupted\n") }
48
59
  usage
data/Appraisals CHANGED
@@ -1,20 +1,25 @@
1
- appraise 'rails-6.1' do
2
- gem 'rails', '~> 6.1'
3
- gem 'dryer-config', '~> 6.0'
1
+ appraise "rails-7.0" do
2
+ gem "rails", "~> 7.0"
3
+ gem "dryer-config", "~> 7.0"
4
4
  end
5
5
 
6
- appraise 'rails-6.0' do
7
- gem 'rails', '~> 6.0'
6
+ appraise "rails-6.1" do
7
+ gem "rails", "~> 6.1"
8
+ gem "dryer-config", "~> 6.0"
8
9
  end
9
10
 
10
- #appraise 'rails-5.2' do
11
+ # appraise "rails-6.0" do
12
+ # gem "rails", "~> 6.0"
13
+ # end
14
+ #
15
+ # appraise 'rails-5.2' do
11
16
  # gem 'rails', '~> 5.2.0'
12
- #end
17
+ # end
13
18
  #
14
- #appraise 'rails-5.1' do
19
+ # appraise 'rails-5.1' do
15
20
  # gem 'rails', '~> 5.1'
16
- #end
21
+ # end
17
22
  #
18
- #appraise 'rails-5.0' do
23
+ # appraise 'rails-5.0' do
19
24
  # gem 'rails', '~> 5.0.0'
20
- #end
25
+ # end
data/Gemfile CHANGED
@@ -1,12 +1,14 @@
1
- source 'https://rubygems.org'
1
+ source "https://rubygems.org"
2
2
  gemspec
3
3
 
4
- gem 'rails'
4
+ gem "rails"
5
5
 
6
6
  group :test do
7
- gem 'observr'
8
- gem 'rubocop', require: false
9
- gem 'simplecov', require: false
10
- gem 'capybara'
11
- gem 'slim'
7
+ gem "capybara"
8
+ gem "observr"
9
+ gem "ricecream"
10
+ gem "rubocop", require: false
11
+ gem "simplecov", require: false
12
+ gem "slim"
13
+ gem "spring"
12
14
  end
data/Gemfile.lock CHANGED
@@ -6,185 +6,204 @@ PATH
6
6
  GEM
7
7
  remote: https://rubygems.org/
8
8
  specs:
9
- actioncable (6.1.3.2)
10
- actionpack (= 6.1.3.2)
11
- activesupport (= 6.1.3.2)
9
+ actioncable (7.0.4)
10
+ actionpack (= 7.0.4)
11
+ activesupport (= 7.0.4)
12
12
  nio4r (~> 2.0)
13
13
  websocket-driver (>= 0.6.1)
14
- actionmailbox (6.1.3.2)
15
- actionpack (= 6.1.3.2)
16
- activejob (= 6.1.3.2)
17
- activerecord (= 6.1.3.2)
18
- activestorage (= 6.1.3.2)
19
- activesupport (= 6.1.3.2)
14
+ actionmailbox (7.0.4)
15
+ actionpack (= 7.0.4)
16
+ activejob (= 7.0.4)
17
+ activerecord (= 7.0.4)
18
+ activestorage (= 7.0.4)
19
+ activesupport (= 7.0.4)
20
20
  mail (>= 2.7.1)
21
- actionmailer (6.1.3.2)
22
- actionpack (= 6.1.3.2)
23
- actionview (= 6.1.3.2)
24
- activejob (= 6.1.3.2)
25
- activesupport (= 6.1.3.2)
21
+ net-imap
22
+ net-pop
23
+ net-smtp
24
+ actionmailer (7.0.4)
25
+ actionpack (= 7.0.4)
26
+ actionview (= 7.0.4)
27
+ activejob (= 7.0.4)
28
+ activesupport (= 7.0.4)
26
29
  mail (~> 2.5, >= 2.5.4)
30
+ net-imap
31
+ net-pop
32
+ net-smtp
27
33
  rails-dom-testing (~> 2.0)
28
- actionpack (6.1.3.2)
29
- actionview (= 6.1.3.2)
30
- activesupport (= 6.1.3.2)
31
- rack (~> 2.0, >= 2.0.9)
34
+ actionpack (7.0.4)
35
+ actionview (= 7.0.4)
36
+ activesupport (= 7.0.4)
37
+ rack (~> 2.0, >= 2.2.0)
32
38
  rack-test (>= 0.6.3)
33
39
  rails-dom-testing (~> 2.0)
34
40
  rails-html-sanitizer (~> 1.0, >= 1.2.0)
35
- actiontext (6.1.3.2)
36
- actionpack (= 6.1.3.2)
37
- activerecord (= 6.1.3.2)
38
- activestorage (= 6.1.3.2)
39
- activesupport (= 6.1.3.2)
41
+ actiontext (7.0.4)
42
+ actionpack (= 7.0.4)
43
+ activerecord (= 7.0.4)
44
+ activestorage (= 7.0.4)
45
+ activesupport (= 7.0.4)
46
+ globalid (>= 0.6.0)
40
47
  nokogiri (>= 1.8.5)
41
- actionview (6.1.3.2)
42
- activesupport (= 6.1.3.2)
48
+ actionview (7.0.4)
49
+ activesupport (= 7.0.4)
43
50
  builder (~> 3.1)
44
51
  erubi (~> 1.4)
45
52
  rails-dom-testing (~> 2.0)
46
53
  rails-html-sanitizer (~> 1.1, >= 1.2.0)
47
- activejob (6.1.3.2)
48
- activesupport (= 6.1.3.2)
54
+ activejob (7.0.4)
55
+ activesupport (= 7.0.4)
49
56
  globalid (>= 0.3.6)
50
- activemodel (6.1.3.2)
51
- activesupport (= 6.1.3.2)
52
- activerecord (6.1.3.2)
53
- activemodel (= 6.1.3.2)
54
- activesupport (= 6.1.3.2)
55
- activestorage (6.1.3.2)
56
- actionpack (= 6.1.3.2)
57
- activejob (= 6.1.3.2)
58
- activerecord (= 6.1.3.2)
59
- activesupport (= 6.1.3.2)
60
- marcel (~> 1.0.0)
61
- mini_mime (~> 1.0.2)
62
- activesupport (6.1.3.2)
57
+ activemodel (7.0.4)
58
+ activesupport (= 7.0.4)
59
+ activerecord (7.0.4)
60
+ activemodel (= 7.0.4)
61
+ activesupport (= 7.0.4)
62
+ activestorage (7.0.4)
63
+ actionpack (= 7.0.4)
64
+ activejob (= 7.0.4)
65
+ activerecord (= 7.0.4)
66
+ activesupport (= 7.0.4)
67
+ marcel (~> 1.0)
68
+ mini_mime (>= 1.1.0)
69
+ activesupport (7.0.4)
63
70
  concurrent-ruby (~> 1.0, >= 1.0.2)
64
71
  i18n (>= 1.6, < 2)
65
72
  minitest (>= 5.1)
66
73
  tzinfo (~> 2.0)
67
- zeitwerk (~> 2.3)
68
- addressable (2.7.0)
69
- public_suffix (>= 2.0.2, < 5.0)
70
- appraisal (2.4.0)
74
+ addressable (2.8.1)
75
+ public_suffix (>= 2.0.2, < 6.0)
76
+ appraisal (2.4.1)
71
77
  bundler
72
78
  rake
73
79
  thor (>= 0.14.0)
74
80
  ast (2.4.2)
75
81
  builder (3.2.4)
76
- capybara (3.35.3)
82
+ capybara (3.38.0)
77
83
  addressable
84
+ matrix
78
85
  mini_mime (>= 0.1.3)
79
86
  nokogiri (~> 1.8)
80
87
  rack (>= 1.6.0)
81
88
  rack-test (>= 0.6.3)
82
89
  regexp_parser (>= 1.5, < 3.0)
83
90
  xpath (~> 3.2)
84
- combustion (1.3.1)
91
+ combustion (1.3.7)
85
92
  activesupport (>= 3.0.0)
86
93
  railties (>= 3.0.0)
87
94
  thor (>= 0.14.6)
88
- concurrent-ruby (1.1.9)
95
+ concurrent-ruby (1.1.10)
89
96
  crass (1.0.6)
97
+ date (3.3.2)
90
98
  docile (1.4.0)
91
- erubi (1.10.0)
92
- globalid (0.4.2)
93
- activesupport (>= 4.2.0)
94
- i18n (1.8.10)
99
+ erubi (1.11.0)
100
+ globalid (1.0.0)
101
+ activesupport (>= 5.0)
102
+ i18n (1.12.0)
95
103
  concurrent-ruby (~> 1.0)
96
- loofah (2.10.0)
104
+ json (2.6.3)
105
+ loofah (2.19.1)
97
106
  crass (~> 1.0.2)
98
107
  nokogiri (>= 1.5.9)
99
- mail (2.7.1)
108
+ mail (2.8.0)
100
109
  mini_mime (>= 0.1.1)
101
- marcel (1.0.1)
110
+ net-imap
111
+ net-pop
112
+ net-smtp
113
+ marcel (1.0.2)
114
+ matrix (0.4.2)
102
115
  method_source (1.0.0)
103
- mini_mime (1.0.3)
104
- minitest (5.14.4)
105
- nio4r (2.5.7)
106
- nokogiri (1.11.7-x86_64-linux)
116
+ mini_mime (1.1.2)
117
+ minitest (5.16.3)
118
+ net-imap (0.3.2)
119
+ date
120
+ net-protocol
121
+ net-pop (0.1.2)
122
+ net-protocol
123
+ net-protocol (0.2.1)
124
+ timeout
125
+ net-smtp (0.3.3)
126
+ net-protocol
127
+ nio4r (2.5.8)
128
+ nokogiri (1.13.10-x86_64-linux)
107
129
  racc (~> 1.4)
108
130
  observr (1.0.5)
109
- parallel (1.20.1)
110
- parser (3.0.1.1)
131
+ parallel (1.22.1)
132
+ parser (3.1.3.0)
111
133
  ast (~> 2.4.1)
112
- public_suffix (4.0.6)
113
- racc (1.5.2)
114
- rack (2.2.3)
115
- rack-test (1.1.0)
116
- rack (>= 1.0, < 3)
117
- rails (6.1.3.2)
118
- actioncable (= 6.1.3.2)
119
- actionmailbox (= 6.1.3.2)
120
- actionmailer (= 6.1.3.2)
121
- actionpack (= 6.1.3.2)
122
- actiontext (= 6.1.3.2)
123
- actionview (= 6.1.3.2)
124
- activejob (= 6.1.3.2)
125
- activemodel (= 6.1.3.2)
126
- activerecord (= 6.1.3.2)
127
- activestorage (= 6.1.3.2)
128
- activesupport (= 6.1.3.2)
134
+ public_suffix (5.0.1)
135
+ racc (1.6.1)
136
+ rack (2.2.4)
137
+ rack-test (2.0.2)
138
+ rack (>= 1.3)
139
+ rails (7.0.4)
140
+ actioncable (= 7.0.4)
141
+ actionmailbox (= 7.0.4)
142
+ actionmailer (= 7.0.4)
143
+ actionpack (= 7.0.4)
144
+ actiontext (= 7.0.4)
145
+ actionview (= 7.0.4)
146
+ activejob (= 7.0.4)
147
+ activemodel (= 7.0.4)
148
+ activerecord (= 7.0.4)
149
+ activestorage (= 7.0.4)
150
+ activesupport (= 7.0.4)
129
151
  bundler (>= 1.15.0)
130
- railties (= 6.1.3.2)
131
- sprockets-rails (>= 2.0.0)
152
+ railties (= 7.0.4)
132
153
  rails-dom-testing (2.0.3)
133
154
  activesupport (>= 4.2.0)
134
155
  nokogiri (>= 1.6)
135
- rails-html-sanitizer (1.3.0)
136
- loofah (~> 2.3)
137
- railties (6.1.3.2)
138
- actionpack (= 6.1.3.2)
139
- activesupport (= 6.1.3.2)
156
+ rails-html-sanitizer (1.4.4)
157
+ loofah (~> 2.19, >= 2.19.1)
158
+ railties (7.0.4)
159
+ actionpack (= 7.0.4)
160
+ activesupport (= 7.0.4)
140
161
  method_source
141
- rake (>= 0.8.7)
162
+ rake (>= 12.2)
142
163
  thor (~> 1.0)
143
- rainbow (3.0.0)
144
- rake (13.0.3)
145
- regexp_parser (2.1.1)
164
+ zeitwerk (~> 2.5)
165
+ rainbow (3.1.1)
166
+ rake (13.0.6)
167
+ regexp_parser (2.6.1)
146
168
  rexml (3.2.5)
147
- rubocop (1.17.0)
169
+ ricecream (0.2.1)
170
+ rubocop (1.40.0)
171
+ json (~> 2.3)
148
172
  parallel (~> 1.10)
149
- parser (>= 3.0.0.0)
173
+ parser (>= 3.1.2.1)
150
174
  rainbow (>= 2.2.2, < 4.0)
151
175
  regexp_parser (>= 1.8, < 3.0)
152
- rexml
153
- rubocop-ast (>= 1.7.0, < 2.0)
176
+ rexml (>= 3.2.5, < 4.0)
177
+ rubocop-ast (>= 1.23.0, < 2.0)
154
178
  ruby-progressbar (~> 1.7)
155
179
  unicode-display_width (>= 1.4.0, < 3.0)
156
- rubocop-ast (1.7.0)
157
- parser (>= 3.0.1.1)
180
+ rubocop-ast (1.24.0)
181
+ parser (>= 3.1.1.0)
158
182
  ruby-progressbar (1.11.0)
159
183
  simplecov (0.21.2)
160
184
  docile (~> 1.1)
161
185
  simplecov-html (~> 0.11)
162
186
  simplecov_json_formatter (~> 0.1)
163
187
  simplecov-html (0.12.3)
164
- simplecov_json_formatter (0.1.3)
188
+ simplecov_json_formatter (0.1.4)
165
189
  slim (4.1.0)
166
190
  temple (>= 0.7.6, < 0.9)
167
191
  tilt (>= 2.0.6, < 2.1)
168
- sprockets (4.0.2)
169
- concurrent-ruby (~> 1.0)
170
- rack (> 1, < 3)
171
- sprockets-rails (3.2.2)
172
- actionpack (>= 4.0)
173
- activesupport (>= 4.0)
174
- sprockets (>= 3.0.0)
175
- sqlite3 (1.4.2)
192
+ spring (4.1.0)
193
+ sqlite3 (1.5.4-x86_64-linux)
176
194
  temple (0.8.2)
177
- thor (1.1.0)
178
- tilt (2.0.10)
179
- tzinfo (2.0.4)
195
+ thor (1.2.1)
196
+ tilt (2.0.11)
197
+ timeout (0.3.1)
198
+ tzinfo (2.0.5)
180
199
  concurrent-ruby (~> 1.0)
181
- unicode-display_width (2.0.0)
200
+ unicode-display_width (2.3.0)
182
201
  websocket-driver (0.7.5)
183
202
  websocket-extensions (>= 0.1.0)
184
203
  websocket-extensions (0.1.5)
185
204
  xpath (3.2.0)
186
205
  nokogiri (~> 1.8)
187
- zeitwerk (2.4.2)
206
+ zeitwerk (2.6.6)
188
207
 
189
208
  PLATFORMS
190
209
  x86_64-linux
@@ -199,10 +218,12 @@ DEPENDENCIES
199
218
  observr
200
219
  rails
201
220
  rake
221
+ ricecream
202
222
  rubocop
203
223
  simplecov
204
224
  slim
225
+ spring
205
226
  sqlite3
206
227
 
207
228
  BUNDLED WITH
208
- 2.2.17
229
+ 2.3.26
data/MIT-LICENSE CHANGED
@@ -1,4 +1,6 @@
1
- Copyright 2011-2021 Dittmar Krall - www.matique.com
1
+ The MIT License (MIT)
2
+
3
+ Copyright (c) 2011-2022 Dittmar Krall (www.matiq.com)
2
4
 
3
5
  Permission is hereby granted, free of charge, to any person obtaining
4
6
  a copy of this software and associated documentation files (the
data/README.md CHANGED
@@ -1,5 +1,4 @@
1
- Formie
2
- ======
1
+ # Formie
3
2
 
4
3
  [![Gem Version](https://badge.fury.io/rb/formie.svg)](https://badge.fury.io/rb/formie)
5
4
 
@@ -15,21 +14,14 @@ In short, Formie is like a helper using the notation of a partial.
15
14
 
16
15
  Templates handlers are supported as in partials.
17
16
 
18
-
19
17
  ## Installation
20
18
 
21
19
  As usual:
22
-
23
- $ [sudo] gem install formie
24
-
25
- or:
26
-
27
- # Gemfile
28
- gem 'formie'
29
-
30
- $ bundle
31
-
32
- Use 'gem install formie -v 0.7.1' for Rails 3.2.
20
+ ```ruby
21
+ # Gemfile
22
+ gem "formie"
23
+ ```
24
+ and run "bundle install".
33
25
 
34
26
  ## Description
35
27
 
@@ -42,6 +34,8 @@ Templates for Formie are hosted in:
42
34
  Till Rails 5 <formie_path> is 'app/formies'.
43
35
  Starting at Rails 6 <formie_path> is 'app/views/formies'.
44
36
 
37
+ Version 1.1.0+ is intended for Rails 7
38
+
45
39
  Inside a formie the following locals (as delivered by the
46
40
  controller) are available:
47
41
 
@@ -51,7 +45,7 @@ controller) are available:
51
45
  | args | remainings after extracting options/locals
52
46
  | block | block passed to the formie
53
47
  | controller_name
54
- | form | (available inside form_for (similar to fields_for))
48
+ | form | (available inside form_with (similar to fields_for))
55
49
  | form.object
56
50
  | params
57
51
 
@@ -60,45 +54,56 @@ The controller attributes are available as usual.
60
54
 
61
55
  To avoid a server restart during development of formies you may add to:
62
56
 
63
- # app/controllers/application_controller.rb
57
+ ```ruby
58
+ # app/controllers/application_controller.rb
64
59
 
65
- before_filter do
66
- Formie.reload if Rails.env.development?
67
- end
60
+ before_filter do
61
+ Formie.reload if Rails.env.development?
62
+ end
63
+ ```
68
64
 
69
65
 
70
- ## Examples
66
+ ## Examples (see also tests)
71
67
 
72
- <%= copyright %>
73
- <%= back %>
74
- <%= show obj: @order %>
68
+ ```ruby
69
+ <%= copyright %>
70
+ <%= back %>
71
+ <%= show obj: @order %>
75
72
 
76
- <%= form_for @order do |f| %>
77
- <%= f.l_text_field :who %>
78
- <%= f.l_text_field :amount %>
79
- <% end %>
73
+ <%= form_with model: Order do |f| %>
74
+ <%= f.l_text_field :who %>
75
+ <%= f.l_text_field :amount %>
76
+ <% end %>
77
+ ```
80
78
 
81
79
  In directory <formie_path> :
82
80
 
83
- # application/copyright.html.erb
84
- <div class="copyright"> Copyright (c) 2009 </div>
81
+ ```ruby
82
+ # application/copyright.html.erb
83
+ <div class="copyright"> Copyright (c) 2009 </div>
84
+
85
+ # application/back.html.erb
86
+ <a href="<%= "/#{h(controller_name)}" %>"> Back </a>
87
+
88
+ # application/show.html.erb
89
+ <a href="<%= "/#{h(controller_name)}/#{obj.id}" %>"> Show </a>
85
90
 
86
- # application/back.html.erb
87
- <a href="<%= "/#{h(controller_name)}" %>"> Back </a>
91
+ # forms/l_text_field.html.erb
92
+ <% field = args.first %>
93
+ <p>
94
+ <%= form.label field %><br />
95
+ <%= form.text_field field %>
96
+ </p>
88
97
 
89
- # application/show.html.erb
90
- <a href="<%= "/#{h(controller_name)}/#{obj.id}" %>"> Show </a>
98
+ # templates/hello.slim
99
+ / a comment
91
100
 
92
- # forms/l_text_field.html.erb
93
- <% field = args.first %>
94
- <p>
95
- <%= form.label field %><br />
96
- <%= form.text_field field %>
97
- </p>
101
+ span Hello Slim
102
+ ```
98
103
 
99
- # templates/hello.slim
100
- / a comment
104
+ ## Miscellaneous
101
105
 
102
- span Hello Slim
106
+ Copyright (c) 2009-2022 Dittmar Krall (www.matiq.com),
107
+ released under the MIT license:
103
108
 
104
- Copyright (c) 2009-2019 Dittmar Krall, released under the MIT license.
109
+ * https://opensource.org/licenses/MIT
data/Rakefile CHANGED
@@ -1,10 +1,10 @@
1
- require 'rake/testtask'
1
+ require "rake/testtask"
2
2
 
3
- desc 'Run the tests.'
3
+ desc "Run the tests."
4
4
  Rake::TestTask.new do |t|
5
- t.libs << 'lib'
6
- t.libs << 'test'
7
- t.pattern = 'test/**/*_test.rb'
5
+ t.libs << "lib"
6
+ t.libs << "test"
7
+ t.pattern = "test/**/*_test.rb"
8
8
  t.verbose = false
9
9
  end
10
10
 
data/formie.gemspec CHANGED
@@ -1,33 +1,33 @@
1
- lib = File.expand_path('../lib', __FILE__)
1
+ lib = File.expand_path("../lib", __FILE__)
2
2
  $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
3
- require 'formie/version'
3
+ require "formie/version"
4
4
 
5
5
  Gem::Specification.new do |s|
6
- s.name = 'formie'
7
- s.version = Formie::VERSION
8
- s.summary = 'Formie is like a Rails helper, but uses the notation of a partial.'
6
+ s.name = "formie"
7
+ s.version = Formie::VERSION
8
+ s.summary = "Formie is like a Rails helper, but uses the notation of a partial."
9
9
  s.description = <<-'END'
10
10
  Formie implements low level template-based Rails helpers. It injects
11
11
  the formies into the ActionView module. The form-bounded as well as
12
12
  the unbounded templates are supported. Still, the ActionView
13
13
  functionality (e.g. text_field) is kept untouched.
14
14
  END
15
- s.authors = ['Dittmar Krall']
16
- s.email = ['dittmar.krall@matique.de']
17
- s.homepage = 'http://matique.de'
15
+ s.authors = ["Dittmar Krall"]
16
+ s.email = ["dittmar.krall@matiq.com"]
17
+ s.homepage = "http://matiq.com"
18
+ s.license = "MIT"
19
+ s.platform = Gem::Platform::RUBY
18
20
 
19
- s.license = 'MIT'
20
- s.platform = Gem::Platform::RUBY
21
+ s.metadata["source_code_uri"] = "https://github.com/matique/formie"
21
22
 
22
- s.files = `git ls-files -z`.split("\x0")
23
- s.test_files = s.files.grep(%r{^(test|spec|features)/})
24
- s.require_paths = ['lib']
23
+ s.files = `git ls-files -z`.split("\x0")
24
+ s.require_paths = ["lib"]
25
25
 
26
- s.add_development_dependency 'bundler'
27
- s.add_development_dependency 'rake'
28
- s.add_development_dependency 'appraisal'
29
- s.add_development_dependency 'combustion'
26
+ s.add_development_dependency "bundler"
27
+ s.add_development_dependency "rake"
28
+ s.add_development_dependency "appraisal"
29
+ s.add_development_dependency "combustion"
30
30
 
31
- s.add_development_dependency 'minitest'
32
- s.add_development_dependency 'sqlite3'
31
+ s.add_development_dependency "minitest"
32
+ s.add_development_dependency "sqlite3"
33
33
  end
@@ -6,11 +6,13 @@ gem "rails", "~> 6.1"
6
6
  gem "dryer-config", "~> 6.0"
7
7
 
8
8
  group :test do
9
+ gem "capybara"
9
10
  gem "observr"
11
+ gem "ricecream"
10
12
  gem "rubocop", require: false
11
13
  gem "simplecov", require: false
12
- gem "capybara"
13
14
  gem "slim"
15
+ gem "spring"
14
16
  end
15
17
 
16
18
  gemspec path: "../"
@@ -2,14 +2,17 @@
2
2
 
3
3
  source "https://rubygems.org"
4
4
 
5
- gem "rails", "~> 6.0"
5
+ gem "rails", "~> 7.0"
6
+ gem "dryer-config", "~> 7.0"
6
7
 
7
8
  group :test do
9
+ gem "capybara"
8
10
  gem "observr"
11
+ gem "ricecream"
9
12
  gem "rubocop", require: false
10
13
  gem "simplecov", require: false
11
- gem "capybara"
12
14
  gem "slim"
15
+ gem "spring"
13
16
  end
14
17
 
15
18
  gemspec path: "../"
@@ -1,9 +1,10 @@
1
1
  # rubocop: disable all
2
2
 
3
3
  module Formie
4
- VERSION = '1.0.4' # 2021-06-20
5
- # VERSION = '1.0.3' # 2020-07-23
6
- # VERSION = '1.0.0' # 2019-09-26
7
- # VERSION = '0.9.16' # 2019-03-05
8
- # VERSION = '0.9.14' # 2019-03-02
4
+ VERSION = "1.1.0" # 2022-12-18
5
+ # VERSION = "1.0.4" # 2021-06-20
6
+ # VERSION = "1.0.3" # 2020-07-23
7
+ # VERSION = "1.0.0" # 2019-09-26
8
+ # VERSION = "0.9.16" # 2019-03-05
9
+ # VERSION = "0.9.14" # 2019-03-02
9
10
  end
data/lib/formie.rb CHANGED
@@ -1,10 +1,10 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'formie/engine'
3
+ require "formie/engine"
4
4
 
5
5
  module Formie
6
6
  Rails6 = Rails.version.to_f >= 6.0
7
- PATH = Rails6 ? 'app/views/formies' : 'app/formies'
7
+ PATH = Rails6 ? "app/views/formies" : "app/formies"
8
8
 
9
9
  def self.reload
10
10
  if Rails6 && !File.directory?("#{Rails.root}/app/views/formies")
@@ -14,8 +14,8 @@ module Formie
14
14
  now = Time.now
15
15
  @last_update ||= Time.new(0)
16
16
  load_formies(::ActionView::Helpers::FormBuilder, "#{PATH}/forms")
17
- load_formies(::ActionView::Helpers::TextHelper, "#{PATH}/application")
18
- load_formies(::ActionView::Helpers::TextHelper, "#{PATH}/templates")
17
+ load_formies(::ActionView::Helpers::TextHelper, "#{PATH}/application")
18
+ load_formies(::ActionView::Helpers::TextHelper, "#{PATH}/templates")
19
19
  @last_update = now
20
20
  end
21
21
 
@@ -27,15 +27,15 @@ module Formie
27
27
  params = args.extract_options!
28
28
  options = {}
29
29
  if Rails6
30
- options[:template] = path.sub("#{Rails.root}/app/views", '')
30
+ options[:template] = path.sub("#{Rails.root}/app/views", "")
31
31
  else
32
32
  options[:file] = path
33
33
  end
34
34
  options[:locals] = {}
35
35
  options[:locals].update params
36
36
  options[:locals].update formiename: formiename,
37
- block: block, form: self, args: args
38
- if defined?(controller) == 'method' &&
37
+ block: block, form: self, args: args
38
+ if defined?(controller) == "method" &&
39
39
  controller.respond_to?(:render_to_body) # credits to MARS
40
40
  controller.render_to_body(options)
41
41
  else
@@ -51,8 +51,8 @@ module Formie
51
51
  return unless File.exist?(dir)
52
52
 
53
53
  hsh = {}
54
- Dir.glob(File.join(dir, '**', '**')).sort.each { |path|
55
- base = File.basename(path).split('.').first
54
+ Dir.glob(File.join(dir, "**", "**")).sort.each { |path|
55
+ base = File.basename(path).split(".").first
56
56
  hsh[base] = path unless hsh[base]
57
57
  }
58
58
  hsh.each { |name, path|
@@ -1,16 +1,14 @@
1
- require 'test_helper'
1
+ require "test_helper"
2
2
 
3
3
  class OrdersControllerTest < ActionController::TestCase
4
-
5
- test 'checking formie copyright' do
4
+ test "formie copyright" do
6
5
  get :index
7
6
  assert_response :success
8
- # assert_not_nil assigns(:orders)
7
+ # assert_not_nil assigns(:orders)
9
8
  assert_match(/copyright/, response.body)
10
9
  assert_match(/Copyright/, response.body)
11
- assert_match(/label/ , response.body)
12
- assert_match(/input/ , response.body)
13
- assert_match(/def/ , response.body)
10
+ assert_match(/label/, response.body)
11
+ assert_match(/input/, response.body)
12
+ assert_match(/def/, response.body)
14
13
  end
15
-
16
14
  end
@@ -1,36 +1,40 @@
1
1
  # http://blog.crowdint.com/2013/06/14/testing-rails-with-minitest.html
2
2
 
3
- require 'test_helper'
3
+ require "test_helper"
4
4
 
5
5
  describe "Formie" do
6
6
  include Capybara::DSL
7
7
 
8
8
  before do
9
9
  Order.delete_all
10
- Order.create :name => 'Rumpelstilzchen'
10
+ Order.create name: "Rumpelstilzchen"
11
11
  end
12
12
 
13
- it 'should display copyright' do
13
+ it "should display copyright" do
14
14
  visit "/orders"
15
- assert page.has_content?('Copyright')
15
+ assert page.has_content?("Copyright")
16
16
  end
17
17
 
18
- it 'should list one order' do
18
+ it "should list one order" do
19
19
  order = Order.all.first
20
20
 
21
21
  visit "/orders/#{order.id}"
22
- assert_equal order.name, page.find('form p input#order_name').value
23
- assert_equal 'Hello Slim', page.find('form span').text
22
+ # using form_with:
23
+ fnd = 'form p input[name="order[name]"]'
24
+ assert_equal order.name, page.find(fnd).value
25
+ # using form_for:
26
+ # assert_equal order.name, page.find("form p input#order_name").value
27
+ assert_equal "Hello Slim", page.find("form span").text
24
28
  end
25
29
 
26
- it 'should remove comments in Slim testing full stack' do
30
+ it "should remove comments in Slim testing full stack" do
27
31
  order = Order.all.first
28
32
 
29
33
  visit "/orders/#{order.id}"
30
34
  refute page.has_content?("a comment")
31
35
  end
32
36
 
33
- it 'builtins' do
37
+ it "builtins" do
34
38
  visit "/orders/new"
35
39
  assert page.has_content?("action_name new")
36
40
  assert page.has_content?("args [123, 456]")
@@ -40,5 +44,4 @@ describe "Formie" do
40
44
  assert page.has_content?("form.object Order")
41
45
  assert page.has_content?("params new")
42
46
  end
43
-
44
47
  end
@@ -2,7 +2,6 @@ class ApplicationController < ActionController::Base
2
2
  protect_from_forgery with: :exception
3
3
 
4
4
  before_action do
5
- Formie.reload if 'development' == Rails.env
5
+ Formie.reload if Rails.env == "development"
6
6
  end
7
-
8
7
  end
@@ -1,5 +1,4 @@
1
1
  class OrdersController < ApplicationController
2
-
3
2
  def index
4
3
  @orders = Order.all
5
4
  end
@@ -9,8 +8,7 @@ class OrdersController < ApplicationController
9
8
  end
10
9
 
11
10
  def show
12
- Order.create :name => 'hugo'
11
+ Order.create name: "hugo"
13
12
  @order = Order.find(params[:id])
14
13
  end
15
-
16
14
  end
@@ -1,7 +1,5 @@
1
1
  class Order < ApplicationRecord
2
-
3
2
  before_save do |row|
4
- row.errors.add :base, 'panic' if row.name == 'error'
3
+ row.errors.add :base, "panic" if row.name == "error"
5
4
  end
6
-
7
5
  end
@@ -1,3 +1,3 @@
1
- <%= form_for @order do |f| %>
1
+ <%= form_with model: @order, class: Order do |f| %>
2
2
  <%= render 'new', :f => f %>
3
3
  <% end %>
@@ -1,3 +1,3 @@
1
- <%= form_for @order do |f| %>
1
+ <%= form_with model: @order do |f| %>
2
2
  <%= render 'form', :f => f %>
3
3
  <% end %>
@@ -1,4 +1,4 @@
1
1
  Rails.application.routes.draw do
2
2
  resources :orders
3
- root :to => 'orders#index'
3
+ root to: "orders#index"
4
4
  end
@@ -1,10 +1,8 @@
1
1
  ActiveRecord::Schema.define(version: 20141016161801) do
2
-
3
2
  create_table "orders", force: true do |t|
4
- t.string "name"
5
- t.string "qty"
3
+ t.string "name"
4
+ t.string "qty"
6
5
  t.datetime "created_at", null: false
7
6
  t.datetime "updated_at", null: false
8
7
  end
9
-
10
8
  end
data/test/test_helper.rb CHANGED
@@ -1,7 +1,7 @@
1
- if ENV['COVERAGE']
2
- require 'simplecov'
1
+ if ENV["COVERAGE"]
2
+ require "simplecov"
3
3
  SimpleCov.start do
4
- add_filter '/test/'
4
+ add_filter "/test/"
5
5
  end
6
6
  end
7
7
 
@@ -9,7 +9,7 @@ require "combustion"
9
9
  Combustion.path = "test/internal"
10
10
  Combustion.initialize! :active_record
11
11
 
12
- require 'rails/test_help'
13
- require 'minitest/autorun'
14
- require 'minitest/benchmark'
15
- require 'capybara/rails'
12
+ require "rails/test_help"
13
+ require "minitest/autorun"
14
+ require "minitest/benchmark"
15
+ require "capybara/rails"
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: formie
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.4
4
+ version: 1.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Dittmar Krall
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-06-20 00:00:00.000000000 Z
11
+ date: 2022-12-18 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -100,14 +100,13 @@ description: |2
100
100
  the unbounded templates are supported. Still, the ActionView
101
101
  functionality (e.g. text_field) is kept untouched.
102
102
  email:
103
- - dittmar.krall@matique.de
103
+ - dittmar.krall@matiq.com
104
104
  executables: []
105
105
  extensions: []
106
106
  extra_rdoc_files: []
107
107
  files:
108
108
  - ".github/workflows/rake.yml"
109
109
  - ".gitignore"
110
- - ".rubocop.yml"
111
110
  - ".ruby-gemset"
112
111
  - ".ruby-version"
113
112
  - ".watchr"
@@ -119,8 +118,8 @@ files:
119
118
  - Rakefile
120
119
  - config/initializers/formie.rb
121
120
  - formie.gemspec
122
- - gemfiles/rails_6.0.gemfile
123
121
  - gemfiles/rails_6.1.gemfile
122
+ - gemfiles/rails_7.0.gemfile
124
123
  - lib/formie.rb
125
124
  - lib/formie/engine.rb
126
125
  - lib/formie/version.rb
@@ -155,10 +154,11 @@ files:
155
154
  - test/internal/db/migrate/20141016161801_create_orders.rb
156
155
  - test/internal/db/schema.rb
157
156
  - test/test_helper.rb
158
- homepage: http://matique.de
157
+ homepage: http://matiq.com
159
158
  licenses:
160
159
  - MIT
161
- metadata: {}
160
+ metadata:
161
+ source_code_uri: https://github.com/matique/formie
162
162
  post_install_message:
163
163
  rdoc_options: []
164
164
  require_paths:
@@ -174,39 +174,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
174
174
  - !ruby/object:Gem::Version
175
175
  version: '0'
176
176
  requirements: []
177
- rubygems_version: 3.2.6
177
+ rubygems_version: 3.3.26
178
178
  signing_key:
179
179
  specification_version: 4
180
180
  summary: Formie is like a Rails helper, but uses the notation of a partial.
181
- test_files:
182
- - test/controllers/orders_test.rb
183
- - test/integration/order_test.rb
184
- - test/internal/app/assets/config/manifest.js
185
- - test/internal/app/controllers/application_controller.rb
186
- - test/internal/app/controllers/orders_controller.rb
187
- - test/internal/app/formies/application/copyright.html.erb
188
- - test/internal/app/formies/forms/builtins.html.erb
189
- - test/internal/app/formies/forms/l_text_field.html.erb
190
- - test/internal/app/formies/templates/hello.slim
191
- - test/internal/app/formies/templates/l_text_field.html.erb
192
- - test/internal/app/formies/templates/labelled.html.erb
193
- - test/internal/app/models/application_record.rb
194
- - test/internal/app/models/order.rb
195
- - test/internal/app/views/formies/application/copyright.html.erb
196
- - test/internal/app/views/formies/forms/builtins.html.erb
197
- - test/internal/app/views/formies/forms/l_text_field.html.erb
198
- - test/internal/app/views/formies/templates/hello.slim
199
- - test/internal/app/views/formies/templates/l_text_field.html.erb
200
- - test/internal/app/views/formies/templates/labelled.html.erb
201
- - test/internal/app/views/layouts/application.html.erb
202
- - test/internal/app/views/orders/_form.html.erb
203
- - test/internal/app/views/orders/_new.html.erb
204
- - test/internal/app/views/orders/index.html.erb
205
- - test/internal/app/views/orders/new.html.erb
206
- - test/internal/app/views/orders/show.html.erb
207
- - test/internal/config/database.yml
208
- - test/internal/config/routes.rb
209
- - test/internal/config/secrets.yml
210
- - test/internal/db/migrate/20141016161801_create_orders.rb
211
- - test/internal/db/schema.rb
212
- - test/test_helper.rb
181
+ test_files: []
data/.rubocop.yml DELETED
@@ -1,18 +0,0 @@
1
- inherit_from:
2
- - '~/configs/.rubocop.yml'
3
-
4
- AllCops:
5
- NewCops: enable
6
- Include:
7
- - 'lib/**/*.rb'
8
- Exclude:
9
- - 'test/**/*'
10
-
11
- Layout/ArgumentAlignment:
12
- Enabled: false
13
-
14
- Metrics/AbcSize:
15
- Enabled: false
16
-
17
- Style/ClassAndModuleChildren:
18
- Enabled: false