granite-form 0.4.0 → 0.5.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: 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: "../"