Skip to content

Commit b355792

Browse files
authored
Merge pull request #58 from pomartel/ruby3
Ruby 3.0 compatibility
2 parents 57f195b + a2437c3 commit b355792

34 files changed

+48
-48
lines changed

Gemfile

+1-1
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ gem "sqlite3", "~> 1.4.1", platform: :ruby
99
gem "activerecord-jdbcsqlite3-adapter", "~> 50.0", platform: :jruby
1010
gem "jdbc-sqlite3", platform: :jruby
1111

12-
gem "activerecord", "~> 5.2"
12+
gem "activerecord", ">= 6.0", "< 6.2.0"
1313
gem "sequel", ">= 5.0"
1414
gem "simplecov"
1515

README.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,7 @@ class UserCloner < Clowne::Cloner
6969
nullify :login
7070

7171
# params here is an arbitrary Hash passed into cloner
72-
finalize do |_source, record, params|
72+
finalize do |_source, record, **params|
7373
record.email = params[:email]
7474
end
7575
end

clowne.gemspec

+1-1
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ Gem::Specification.new do |spec|
2828
spec.add_development_dependency 'bundler', '~> 2.0'
2929
spec.add_development_dependency 'rake', '~> 12.3', '>= 12.3.3'
3030
spec.add_development_dependency 'rspec', '~> 3.0'
31-
spec.add_development_dependency 'factory_bot', '~> 4.8'
31+
spec.add_development_dependency 'factory_bot', '~> 5'
3232
spec.add_development_dependency 'rubocop', '~> 0.75.0'
3333
spec.add_development_dependency 'rubocop-md', '~> 0.3.0'
3434
spec.add_development_dependency 'rubocop-rspec', '~> 1.36.0'

docs/README.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,7 @@ class UserCloner < Clowne::Cloner
6969
nullify :login
7070

7171
# params here is an arbitrary Hash passed into cloner
72-
finalize do |_source, record, params|
72+
finalize do |_source, record, **params|
7373
record.email = params[:email]
7474
end
7575
end

docs/after_persist.md

+2-2
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ class UserCloner < Clowne::Cloner
3030

3131
after_persist do |origin, clone, mapper:, **|
3232
cloned_bio = mapper.clone_of(origin.bio)
33-
clone.update_attributes(bio_id: cloned_bio.id)
33+
clone.update(bio_id: cloned_bio.id)
3434
end
3535
end
3636

@@ -50,7 +50,7 @@ end
5050
user = User.create
5151
posts = Array.new(3) { Post.create(user: user) }
5252
bio = posts.sample
53-
user.update_attributes(bio_id: bio.id)
53+
user.update(bio_id: bio.id)
5454

5555
operation = UserCloner.call(user, run_job: true)
5656
# => <#Clowne::Utils::Operation ...>

docs/clone_mapper.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ class UserCloner < Clowne::Cloner
99
# ...
1010
after_persist do |origin, clone, mapper:, **|
1111
cloned_bio = mapper.clone_of(origin.bio)
12-
clone.update_attributes(bio_id: cloned_bio.id)
12+
clone.update(bio_id: cloned_bio.id)
1313
end
1414
end
1515
```

docs/finalize.md

+2-2
Original file line numberDiff line numberDiff line change
@@ -4,12 +4,12 @@ To apply custom transformations to the cloned record, you can use the `finalize`
44

55
```ruby
66
class UserCloner < Clowne::Cloner
7-
finalize do |_source, record, _params|
7+
finalize do |_source, record, **_params|
88
record.name = "This is copy!"
99
end
1010

1111
trait :change_email do
12-
finalize do |_source, record, params|
12+
finalize do |_source, record, **params|
1313
record.email = params[:email]
1414
end
1515
end

docs/getting_started.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -81,7 +81,7 @@ class UserCloner < Clowne::Cloner
8181
nullify :login
8282

8383
# params here is an arbitrary Hash passed into cloner
84-
finalize do |_source, record, params|
84+
finalize do |_source, record, **params|
8585
record.email = params[:email]
8686
end
8787
end

docs/operation.md

+2-2
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ class UserCloner < Clowne::Cloner
1111
nullify :email
1212

1313
after_persist do |_origin, cloned, **|
14-
cloned.update_attributes(email: "evl-#{cloned.id}.ms")
14+
cloned.update(email: "evl-#{cloned.id}.ms")
1515
end
1616
end
1717

@@ -34,7 +34,7 @@ operation.to_record
3434
# Call only after_persist callbacks:
3535
user2 = operation.to_record
3636
# => <#User id: 2, email: 'evl-2.ms', ...>
37-
user2.update_attributes(email: "[email protected]")
37+
user2.update(email: "[email protected]")
3838
# => <#User id: 2, email: '[email protected]' ...>
3939
operation.run_after_persist
4040
# => <#User id: 2, email: 'evl-2.ms', ...>

docs/parameters.md

+3-3
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ Example:
88
class UserCloner < Clowne::Cloner
99
include_association :posts, ->(params) { where(state: params[:state]) }
1010

11-
finalize do |_source, record, params|
11+
finalize do |_source, record, **params|
1212
record.email = params[:email]
1313
end
1414
end
@@ -27,7 +27,7 @@ As result we strongly recommend to use ruby keyword arguments instead of params
2727

2828
```ruby
2929
# Bad
30-
finalize do |_source, record, params|
30+
finalize do |_source, record, **params|
3131
record.email = params[:email]
3232
end
3333

@@ -82,7 +82,7 @@ class UserCloner < Clowne::Cloner
8282
end
8383

8484
class ProfileCloner < Clowne::Cloner
85-
finalize do |_source, record, params|
85+
finalize do |_source, record, **params|
8686
record.jsonb_field = params
8787
end
8888
end

lib/clowne/adapters/active_record/dsl.rb

+2-2
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,8 @@ module Adapters
66
module ActiveRecordDSL
77
module InstanceMethods # :nodoc:
88
# Shortcut to call class's cloner call with self
9-
def clowne(*args, &block)
10-
self.class.cloner_class.call(self, *args, &block)
9+
def clowne(**args, &block)
10+
self.class.cloner_class.call(self, **args, &block)
1111
end
1212
end
1313

lib/clowne/adapters/base/association.rb

+1-1
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ def association
3030

3131
def clone_one(child)
3232
cloner = cloner_for(child)
33-
cloner ? cloner.call(child, cloner_options) : dup_record(child)
33+
cloner ? cloner.call(child, **cloner_options) : dup_record(child)
3434
end
3535

3636
def with_scope

lib/clowne/declarations.rb

+2-2
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,8 @@ def add(id, declaration = nil, &block)
1111
declaration = block if block_given?
1212

1313
if declaration.is_a?(Class)
14-
DSL.send(:define_method, id) do |*args, &inner_block|
15-
declarations.push declaration.new(*args, &inner_block)
14+
DSL.send(:define_method, id) do |*args, **hargs, &inner_block|
15+
declarations.push declaration.new(*args, **hargs, &inner_block)
1616
end
1717
elsif declaration.is_a?(Proc)
1818
DSL.send(:define_method, id, &declaration)

lib/clowne/declarations/after_clone.rb

+1-1
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ module Declarations
55
class AfterClone < Base # :nodoc: all
66
attr_reader :block
77

8-
def initialize(&block)
8+
def initialize(*, &block)
99
raise ArgumentError, "Block is required for after_clone" unless block
1010

1111
@block = block

lib/clowne/declarations/after_persist.rb

+1-1
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ module Declarations
55
class AfterPersist < Base # :nodoc: all
66
attr_reader :block
77

8-
def initialize(&block)
8+
def initialize(*, &block)
99
raise ArgumentError, "Block is required for after_persist" unless block
1010

1111
@block = block

lib/clowne/declarations/exclude_association.rb

+1-1
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ module Declarations
55
class ExcludeAssociation < Base # :nodoc: all
66
attr_accessor :name
77

8-
def initialize(name)
8+
def initialize(name, **)
99
@name = name.to_sym
1010
end
1111

lib/clowne/declarations/finalize.rb

+1-1
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ module Declarations
55
class Finalize < Base # :nodoc: all
66
attr_reader :block
77

8-
def initialize(&block)
8+
def initialize(*, &block)
99
raise ArgumentError, "Block is required for finalize" unless block
1010

1111
@block = block

lib/clowne/declarations/init_as.rb

+1-1
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ module Declarations
55
class InitAs < Base # :nodoc: all
66
attr_reader :block
77

8-
def initialize(&block)
8+
def initialize(*, &block)
99
raise ArgumentError, "Block is required for init_as" unless block
1010

1111
@block = block

lib/clowne/declarations/nullify.rb

+1-1
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ module Declarations
55
class Nullify < Base # :nodoc: all
66
attr_reader :attributes
77

8-
def initialize(*attributes)
8+
def initialize(*attributes, **)
99
raise ArgumentError, "At least one attribute required" if attributes.empty?
1010

1111
@attributes = attributes

lib/clowne/resolvers/after_persist.rb

+1-1
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ def self.call(source, record, declaration, params:, **_options)
88
params ||= {}
99
operation.add_after_persist(
1010
proc do
11-
declaration.block.call(source, record, params.merge(mapper: operation.mapper))
11+
declaration.block.call(source, record, **params.merge(mapper: operation.mapper))
1212
end
1313
)
1414
record

lib/clowne/resolvers/finalize.rb

+1-1
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ module Clowne
44
class Resolvers
55
module Finalize # :nodoc: all
66
def self.call(source, record, declaration, params:, **_options)
7-
declaration.block.call(source, record, params)
7+
declaration.block.call(source, record, **params)
88
record
99
end
1010
end

spec/clowne/adapters/active_record/associations/belongs_to_spec.rb

+1-1
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@
2828
context "with custom cloner" do
2929
let(:topic_cloner) do
3030
Class.new(Clowne::Cloner) do
31-
finalize do |_source, record, params|
31+
finalize do |_source, record, **params|
3232
record.title += params.fetch(:suffix, "-2")
3333
record.description += " (Cloned)"
3434
end

spec/clowne/adapters/active_record/associations/has_and_belongs_to_many_spec.rb

+1-1
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@
4040
context "with custom cloner" do
4141
let(:tag_cloner) do
4242
Class.new(Clowne::Cloner) do
43-
finalize do |_source, record, params|
43+
finalize do |_source, record, **params|
4444
record.value += params.fetch(:suffix, "-2")
4545
end
4646

spec/clowne/adapters/active_record/associations/has_many_spec.rb

+2-2
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
before(:all) do
1616
module AR
1717
class PostCloner < Clowne::Cloner
18-
finalize do |_source, record, params|
18+
finalize do |_source, record, **params|
1919
record.topic_id = params[:topic_id] if params[:topic_id]
2020
end
2121

@@ -138,7 +138,7 @@ class PostCloner < Clowne::Cloner
138138

139139
let(:post_cloner) do
140140
Class.new(Clowne::Cloner) do
141-
finalize do |source, record, _params|
141+
finalize do |source, record, **_params|
142142
record.title = "Copy of #{source.title}"
143143
end
144144
end

spec/clowne/adapters/active_record/associations/has_one_spec.rb

+3-3
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717
before(:all) do
1818
module AR
1919
class ImageCloner < Clowne::Cloner
20-
finalize do |source, record, params|
20+
finalize do |source, record, **params|
2121
record.created_at = source.created_at if params[:include_timestamps]
2222
end
2323

@@ -33,7 +33,7 @@ class ImageCloner < Clowne::Cloner
3333
end
3434

3535
class PreviewImageCloner < Clowne::Cloner
36-
finalize do |source, record, params|
36+
finalize do |source, record, **params|
3737
record.created_at = source.created_at if params[:include_timestamps]
3838
end
3939

@@ -119,7 +119,7 @@ class PreviewImageCloner < Clowne::Cloner
119119
context "with custom cloner" do
120120
let(:image_cloner) do
121121
Class.new(Clowne::Cloner) do
122-
finalize do |source, record, _params|
122+
finalize do |source, record, **_params|
123123
record.title = "Copy of #{source.title}"
124124
end
125125
end

spec/clowne/adapters/sequel/associations/many_to_many_spec.rb

+1-1
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@
4141
context "with custom cloner" do
4242
let(:tag_cloner) do
4343
Class.new(Clowne::Cloner) do
44-
finalize do |_source, record, params|
44+
finalize do |_source, record, **params|
4545
record.value += params.fetch(:suffix, "-2")
4646
end
4747

spec/clowne/adapters/sequel/associations/one_to_many_spec.rb

+2-2
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ module Sequel
1717
class PostCloner < Clowne::Cloner
1818
include_associations :image, :tags
1919

20-
finalize do |_source, record, params|
20+
finalize do |_source, record, **params|
2121
record.topic_id = params[:topic_id] if params[:topic_id]
2222
end
2323

@@ -171,7 +171,7 @@ class PostCloner < Clowne::Cloner
171171

172172
let(:post_cloner) do
173173
Class.new(Clowne::Cloner) do
174-
finalize do |source, record, _params|
174+
finalize do |source, record, **_params|
175175
record.title = "Copy of #{source.title}"
176176
end
177177
end

spec/clowne/adapters/sequel/associations/one_to_one_spec.rb

+3-3
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717
before(:all) do
1818
module Sequel
1919
class ImageCloner < Clowne::Cloner
20-
finalize do |source, record, params|
20+
finalize do |source, record, **params|
2121
record.created_at = source.created_at if params[:include_timestamps]
2222
end
2323

@@ -33,7 +33,7 @@ class ImageCloner < Clowne::Cloner
3333
end
3434

3535
class PreviewImageCloner < Clowne::Cloner
36-
finalize do |source, record, params|
36+
finalize do |source, record, **params|
3737
record.created_at = source.created_at if params[:include_timestamps]
3838
end
3939

@@ -114,7 +114,7 @@ class PreviewImageCloner < Clowne::Cloner
114114
context "with custom cloner" do
115115
let(:image_cloner) do
116116
Class.new(Clowne::Cloner) do
117-
finalize do |source, record, _params|
117+
finalize do |source, record, **_params|
118118
record.title = "Copy of #{source.title}"
119119
end
120120
end

spec/clowne/cloner_spec.rb

+1-1
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212

1313
nullify :title, :description
1414

15-
finalize do |_source, _record, _params|
15+
finalize do |_source, _record, **_params|
1616
1 + 1
1717
end
1818

spec/clowne/integrations/active_record_dsl_spec.rb

+1-1
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ class Post < ActiveRecord::Base
2626
clowne_config do
2727
include_association :image
2828

29-
finalize do |source, record, params|
29+
finalize do |source, record, **params|
3030
record.title = params[:title] || "Clone of #{source.title}"
3131
end
3232
end

spec/clowne/integrations/active_record_spec.rb

+1-1
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ class ImgCloner < Clowne::Cloner
1212
end
1313

1414
class BasePostCloner < Clowne::Cloner
15-
finalize do |_source, record, params|
15+
finalize do |_source, record, **params|
1616
record.contents = params[:post_contents] if params[:post_contents].present?
1717
end
1818
end

spec/clowne/integrations/after_persist_spec.rb

+2-2
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ class TopicCloner < Clowne::Cloner
66

77
after_persist do |origin, clone, mapper:|
88
cloned_image = mapper.clone_of(origin.image)
9-
clone.update_attributes(image_id: cloned_image.id)
9+
clone.update(image_id: cloned_image.id)
1010
end
1111
end
1212

@@ -41,7 +41,7 @@ class ImgCloner < Clowne::Cloner
4141

4242
before do
4343
images.each { |image| create(:preview_image, image: image) }
44-
topic.update_attributes(image_id: topic_image.id)
44+
topic.update(image_id: topic_image.id)
4545
end
4646

4747
describe 'The main idea of "after persist" feature is a possibility

0 commit comments

Comments
 (0)