granite-form 0.4.0 → 0.5.0

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: 908865a58fa79739294c85bb506d878596a28782c02a9a2825ca1fb7fd128972
4
- data.tar.gz: ff9b6cbed34774e3dedb0b33c28b75694b1575051adb989248ca5695254e9586
3
+ metadata.gz: 5519b4c103eaec0a823f7869c496af428a11d4bab6652822add9e826a64a86c0
4
+ data.tar.gz: ac3048e88443939c4bae29e5eac6d177ff58a782501f2ee03b57cc5c27697d9c
5
5
  SHA512:
6
- metadata.gz: 92d055b121d30a9644521227782908a0b84ef0847c16ce60fafec47cb17c5c2988e8a071e199ed5506dd0783bba335b6a399a519c095867658e310680dd96f10
7
- data.tar.gz: 4b4cf5f23530ad12408f498df6eed11e53438dd0a6f110ae04c10568934f041dbb64b946ee42352b7bfec83119a5827b652c8fddd62e745fa0f2835448674ce6
6
+ metadata.gz: a25adecefad4bd54870c96884c388ad4528ad03269b348422725a73bfe366204bfd530f58c8ac5ee92264891abcf34f824a4b4067620b9b118dba3e3e8da69d7
7
+ data.tar.gz: b48f66dedbe424b642337f76468ddfc0809589e8d6e13c448ebe80b5cfe804e4bbf87e7107b14b24634af477f5cf9add77596f8c425757a75683867e2fe1320e
data/.github/CODEOWNERS CHANGED
@@ -1 +1 @@
1
- * @toptal/portals-experience-be
1
+ * @toptal/devx
@@ -10,12 +10,10 @@ jobs:
10
10
  fail-fast: false
11
11
  matrix:
12
12
  include:
13
- - { ruby: '2.4', rails: '5.0' }
14
- - { ruby: '2.5', rails: '5.1' }
15
- - { ruby: '2.6', rails: '5.2' }
16
13
  - { ruby: '2.7', rails: '6.0' }
17
14
  - { ruby: '3.0', rails: '6.1' }
18
15
  - { ruby: '3.1', rails: '7.0' }
16
+ - { ruby: '3.2', rails: '7.1' }
19
17
  runs-on: ubuntu-latest
20
18
  env:
21
19
  BUNDLE_GEMFILE: ${{ github.workspace }}/gemfiles/rails.${{ matrix.rails }}.gemfile
@@ -35,7 +33,7 @@ jobs:
35
33
  # Maps tcp port 5432 on service container to the host
36
34
  - 5432:5432
37
35
  steps:
38
- - uses: actions/checkout@v2
36
+ - uses: actions/checkout@v3
39
37
  - uses: ruby/setup-ruby@v1
40
38
  with:
41
39
  ruby-version: ${{ matrix.ruby }}
@@ -45,7 +43,7 @@ jobs:
45
43
  rubocop:
46
44
  runs-on: ubuntu-latest
47
45
  steps:
48
- - uses: actions/checkout@v2
46
+ - uses: actions/checkout@v3
49
47
  - uses: ruby/setup-ruby@v1
50
48
  with:
51
49
  ruby-version: '3.0'
data/Appraisals CHANGED
@@ -1,4 +1,4 @@
1
- %w[5.0 5.1 5.2 6.0 6.1 7.0].each do |version|
1
+ %w[6.0 6.1 7.0 7.1].each do |version|
2
2
  appraise "rails.#{version}" do
3
3
  gem 'activesupport', "~> #{version}.0"
4
4
  gem 'activemodel', "~> #{version}.0"
data/CHANGELOG.md CHANGED
@@ -1,6 +1,14 @@
1
1
  # master
2
2
 
3
3
  ## Next
4
+
5
+ ## v0.5.0
6
+
7
+ * Support for ruby 3.2 by @konalegi in https://github.com/toptal/granite-form/pull/22
8
+ * Fix deprecated #to_s method by @mpiask in https://github.com/toptal/granite-form/pull/24
9
+ * Support for Rails 7.1 by @ojab in https://github.com/toptal/granite-form/pull/25
10
+ * [BREAKING] Drop support for Rails < 6.0 by @ojab in https://github.com/toptal/granite-form/pull/25
11
+
4
12
  ## v0.4.0
5
13
 
6
14
  * [BREAKING] Drop support for taking `model` as first argument in default/readonly/enum/normalize. This means that `default: -> (model) { model.other_field}` is no longer supported and should be replaced with `default: -> { other_field }`.
@@ -2,9 +2,9 @@
2
2
 
3
3
  source "https://rubygems.org"
4
4
 
5
- gem "activesupport", "~> 5.0.0"
6
- gem "activemodel", "~> 5.0.0"
7
- gem "activerecord", "~> 5.0.0"
5
+ gem "activesupport", "~> 7.1.0"
6
+ gem "activemodel", "~> 7.1.0"
7
+ gem "activerecord", "~> 7.1.0"
8
8
 
9
9
  group :test do
10
10
  gem "guard"
data/granite-form.gemspec CHANGED
@@ -14,8 +14,8 @@ Gem::Specification.new do |gem|
14
14
  gem.required_ruby_version = '>= 2.4.0'
15
15
  gem.version = Granite::Form::VERSION
16
16
 
17
- gem.add_development_dependency 'actionpack', '>= 5.0'
18
- gem.add_development_dependency 'activerecord', '>= 5.0'
17
+ gem.add_development_dependency 'actionpack', '>= 6.0'
18
+ gem.add_development_dependency 'activerecord', '>= 6.0'
19
19
  gem.add_development_dependency 'appraisal'
20
20
  gem.add_development_dependency 'bump'
21
21
  gem.add_development_dependency 'database_cleaner'
@@ -26,7 +26,7 @@ Gem::Specification.new do |gem|
26
26
  gem.add_development_dependency 'rubocop', '0.52.1'
27
27
  gem.add_development_dependency 'uuidtools'
28
28
 
29
- gem.add_runtime_dependency 'activemodel', '>= 5.0'
30
- gem.add_runtime_dependency 'activesupport', '>= 5.0'
29
+ gem.add_runtime_dependency 'activemodel', '>= 6.0'
30
+ gem.add_runtime_dependency 'activesupport', '>= 6.0'
31
31
  gem.add_runtime_dependency 'tzinfo'
32
32
  end
@@ -58,7 +58,7 @@ module Granite
58
58
  def inspect_attribute
59
59
  value = case read
60
60
  when Date, Time, DateTime
61
- %("#{read.to_s(:db)}")
61
+ %("#{read.to_formatted_s(:db)}")
62
62
  else
63
63
  inspection = read.inspect
64
64
  inspection.size > 100 ? inspection.truncate(50) : inspection
@@ -1,5 +1,5 @@
1
1
  module Granite
2
2
  module Form
3
- VERSION = '0.4.0'.freeze
3
+ VERSION = '0.5.0'.freeze
4
4
  end
5
5
  end
@@ -103,4 +103,22 @@ describe Granite::Form::Model::Attributes::Base do
103
103
 
104
104
  it { is_expected.to have_attributes(type: String, reflection: subject.reflection, owner: model) }
105
105
  end
106
+
107
+ describe '#inspect_attribute' do
108
+ let(:field) { attribute(type: type) }
109
+ let(:object) { Object.new }
110
+
111
+ {
112
+ 'hello' => 'field: "hello"',
113
+ 123 => 'field: 123',
114
+ Date.new(2023, 6, 20) => 'field: "2023-06-20"',
115
+ DateTime.new(2023, 6, 20, 12, 30) => 'field: "2023-06-20 12:30:00"', # rubocop:disable Style/DateTime
116
+ Time.new(2023, 6, 20, 12, 30) => 'field: "2023-06-20 12:30:00"'
117
+ }.each do |input, expected_output|
118
+ context "attribute type is #{input.class}" do
119
+ let(:type) { input.class }
120
+ specify { expect(field.tap { |r| r.write(input) }.inspect_attribute).to eq(expected_output) }
121
+ end
122
+ end
123
+ end
106
124
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: granite-form
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.0
4
+ version: 0.5.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Toptal Engineering
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-01-31 00:00:00.000000000 Z
11
+ date: 2023-10-09 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: actionpack
@@ -16,28 +16,28 @@ dependencies:
16
16
  requirements:
17
17
  - - ">="
18
18
  - !ruby/object:Gem::Version
19
- version: '5.0'
19
+ version: '6.0'
20
20
  type: :development
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - ">="
25
25
  - !ruby/object:Gem::Version
26
- version: '5.0'
26
+ version: '6.0'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: activerecord
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
31
  - - ">="
32
32
  - !ruby/object:Gem::Version
33
- version: '5.0'
33
+ version: '6.0'
34
34
  type: :development
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - ">="
39
39
  - !ruby/object:Gem::Version
40
- version: '5.0'
40
+ version: '6.0'
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: appraisal
43
43
  requirement: !ruby/object:Gem::Requirement
@@ -170,28 +170,28 @@ dependencies:
170
170
  requirements:
171
171
  - - ">="
172
172
  - !ruby/object:Gem::Version
173
- version: '5.0'
173
+ version: '6.0'
174
174
  type: :runtime
175
175
  prerelease: false
176
176
  version_requirements: !ruby/object:Gem::Requirement
177
177
  requirements:
178
178
  - - ">="
179
179
  - !ruby/object:Gem::Version
180
- version: '5.0'
180
+ version: '6.0'
181
181
  - !ruby/object:Gem::Dependency
182
182
  name: activesupport
183
183
  requirement: !ruby/object:Gem::Requirement
184
184
  requirements:
185
185
  - - ">="
186
186
  - !ruby/object:Gem::Version
187
- version: '5.0'
187
+ version: '6.0'
188
188
  type: :runtime
189
189
  prerelease: false
190
190
  version_requirements: !ruby/object:Gem::Requirement
191
191
  requirements:
192
192
  - - ">="
193
193
  - !ruby/object:Gem::Version
194
- version: '5.0'
194
+ version: '6.0'
195
195
  - !ruby/object:Gem::Dependency
196
196
  name: tzinfo
197
197
  requirement: !ruby/object:Gem::Requirement
@@ -207,7 +207,7 @@ dependencies:
207
207
  - !ruby/object:Gem::Version
208
208
  version: '0'
209
209
  description: Making object from any hash or hash array
210
- email:
210
+ email:
211
211
  executables: []
212
212
  extensions: []
213
213
  extra_rdoc_files: []
@@ -227,12 +227,10 @@ files:
227
227
  - README.md
228
228
  - Rakefile
229
229
  - docker-compose.yml
230
- - gemfiles/rails.5.0.gemfile
231
- - gemfiles/rails.5.1.gemfile
232
- - gemfiles/rails.5.2.gemfile
233
230
  - gemfiles/rails.6.0.gemfile
234
231
  - gemfiles/rails.6.1.gemfile
235
232
  - gemfiles/rails.7.0.gemfile
233
+ - gemfiles/rails.7.1.gemfile
236
234
  - granite-form.gemspec
237
235
  - lib/granite/form.rb
238
236
  - lib/granite/form/active_record/associations.rb
@@ -380,7 +378,7 @@ files:
380
378
  homepage: https://github.com/toptal/granite-form
381
379
  licenses: []
382
380
  metadata: {}
383
- post_install_message:
381
+ post_install_message:
384
382
  rdoc_options: []
385
383
  require_paths:
386
384
  - lib
@@ -395,8 +393,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
395
393
  - !ruby/object:Gem::Version
396
394
  version: '0'
397
395
  requirements: []
398
- rubygems_version: 3.3.26
399
- signing_key:
396
+ rubygems_version: 3.4.6
397
+ signing_key:
400
398
  specification_version: 4
401
399
  summary: Working with hashes in AR style
402
400
  test_files:
@@ -1,14 +0,0 @@
1
- # This file was generated by Appraisal
2
-
3
- source "https://rubygems.org"
4
-
5
- gem "activesupport", "~> 5.1.0"
6
- gem "activemodel", "~> 5.1.0"
7
- gem "activerecord", "~> 5.1.0"
8
-
9
- group :test do
10
- gem "guard"
11
- gem "guard-rspec"
12
- end
13
-
14
- gemspec path: "../"
@@ -1,14 +0,0 @@
1
- # This file was generated by Appraisal
2
-
3
- source "https://rubygems.org"
4
-
5
- gem "activesupport", "~> 5.2.0"
6
- gem "activemodel", "~> 5.2.0"
7
- gem "activerecord", "~> 5.2.0"
8
-
9
- group :test do
10
- gem "guard"
11
- gem "guard-rspec"
12
- end
13
-
14
- gemspec path: "../"