active_remote 6.0.0.beta → 6.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: 44a060adab8f2261813be1f9babcec1c842bff5e12160fade299f0f8ea43e71c
4
- data.tar.gz: 17c454ec82d385fe27e483f26534b0f24ec4eec236e15d67206aa1b3206fc25f
3
+ metadata.gz: 77b819b6b5b0b7d07ac0a028c15f8efc626be189ddad774316cbfac20daf3deb
4
+ data.tar.gz: cfea81d7d553e6337ebff053285da014f9793959b04abac44a894265b5c48efa
5
5
  SHA512:
6
- metadata.gz: 0b04e1c9e17bd3b7b992436d068d8aa8d042330aad80b98ba760b99c1d905981f537c9fa627ec2ace5b91066dc950d484186b7dd53df9139311eb42000de1591
7
- data.tar.gz: 261172f14179d2bd5f07223fead663e9f6da447703c54efab5fd2532ae3d74e8a3dbb047157eec9338487dc9e10e1236dbfa04c4e89ddce8c16e0824993144df
6
+ metadata.gz: af452a2b37a6fb19b297dba781f2c7aa28e2a38917b2ef44410d7f21cb4fc2b457eb83dff2bb82e627861a0c8b1c34ac89fe5354e51bba5b49751d4a8fc9fb02
7
+ data.tar.gz: add4cab29f490843debe830da456b9762fc27d6260da13d9e7150cb177242a3ffc767c18e7b3e3068ec04814467024a03ee3eb144b24064862c50f921a1e085b
@@ -20,8 +20,8 @@ Gem::Specification.new do |s|
20
20
  ##
21
21
  # Dependencies
22
22
  #
23
- s.add_dependency "activemodel", "~> 6.0"
24
- s.add_dependency "activesupport", "~> 6.0"
23
+ s.add_dependency "activemodel", "~> 6.1.0"
24
+ s.add_dependency "activesupport", "~> 6.1.0"
25
25
  s.add_dependency "protobuf", ">= 3.0"
26
26
 
27
27
  ##
@@ -84,7 +84,7 @@ module ActiveRemote
84
84
  end
85
85
 
86
86
  options[:has_many] = true
87
- create_setter_method(has_many_class, options)
87
+ create_association_writer(has_many_class, options)
88
88
  end
89
89
 
90
90
  # Create a `has_one` association for a given remote resource.
@@ -133,12 +133,11 @@ module ActiveRemote
133
133
 
134
134
  private
135
135
 
136
- def create_setter_method(associated_klass, options = {})
137
- writer_method = "#{associated_klass}=".to_sym
138
- define_method(writer_method) do |new_value|
136
+ def create_association_writer(associated_klass, options = {})
137
+ define_method("#{associated_klass}=") do |new_value|
139
138
  raise "New value must be an array" if options[:has_many] == true && new_value.class != Array
140
139
 
141
- instance_variable_set(:"@#{new_value.class.name.demodulize.underscore}", new_value)
140
+ instance_variable_set(:"@#{associated_klass}", new_value)
142
141
  new_value
143
142
  end
144
143
  end
@@ -160,7 +159,7 @@ module ActiveRemote
160
159
  return value
161
160
  end
162
161
 
163
- create_setter_method(associated_klass, options)
162
+ create_association_writer(associated_klass, options)
164
163
  end
165
164
  end
166
165
  end
@@ -8,12 +8,16 @@ module ActiveRemote
8
8
  end
9
9
  end
10
10
 
11
- def [](name)
12
- attribute(name)
11
+ def [](attr_name)
12
+ name = attr_name.to_s
13
+ name = self.class.attribute_aliases[name] || name
14
+ @attributes.fetch_value(name.to_s)
13
15
  end
14
16
 
15
- def []=(name, value)
16
- write_attribute(name, value)
17
+ def []=(attr_name, value)
18
+ name = attr_name.to_s
19
+ name = self.class.attribute_aliases[name] || name
20
+ @attributes.write_from_user(name, value)
17
21
  end
18
22
 
19
23
  # Returns an <tt>#inspect</tt>-like string for the value of the
@@ -63,7 +63,7 @@ module ActiveRemote
63
63
  case
64
64
  when new_record? then
65
65
  "#{model_name.cache_key}/new"
66
- when ::ActiveRemote.config.default_cache_key_updated_at? && (timestamp = self[:updated_at]) then
66
+ when ::ActiveRemote.config.default_cache_key_updated_at? && (self.respond_to?(:[]) && timestamp = self["updated_at"]) then
67
67
  timestamp = timestamp.utc.to_s(self.class.cache_timestamp_format)
68
68
  "#{model_name.cache_key}/#{send(primary_key)}-#{timestamp}"
69
69
  else
@@ -1,3 +1,3 @@
1
1
  module ActiveRemote
2
- VERSION = "6.0.0.beta"
2
+ VERSION = "6.1.0"
3
3
  end
@@ -76,8 +76,10 @@ describe ActiveRemote::Association do
76
76
  expect(subject.coauthor).to eq record
77
77
  end
78
78
 
79
- it "should create a setter method" do
80
- expect(subject).to respond_to(:coauthor=)
79
+ it "creates a setter method" do
80
+ author = Author.new(:guid => author_guid)
81
+ subject.coauthor = author
82
+ expect(subject.coauthor).to eq(author)
81
83
  end
82
84
  end
83
85
 
@@ -4,8 +4,8 @@ describe ::ActiveRemote::RemoteRecordNotSaved do
4
4
  let(:record) { ::Tag.new }
5
5
 
6
6
  before do
7
- record.errors[:base] << "Some error one!"
8
- record.errors[:base] << "Some error two!"
7
+ record.errors.add(:base, :invalid, :message => "Some error one!")
8
+ record.errors.add(:base, :invalid, :message => "Some error two!")
9
9
  end
10
10
 
11
11
  context "when an active remote record is used" do
@@ -148,7 +148,7 @@ describe ::ActiveRemote::Persistence do
148
148
  end
149
149
 
150
150
  context "when errors are present" do
151
- before { subject.errors[:base] << "Boom!" }
151
+ before { subject.errors.add(:base, :invalid, :message => "Boom!") }
152
152
 
153
153
  its(:has_errors?) { should be_truthy }
154
154
  end
@@ -295,7 +295,7 @@ describe ::ActiveRemote::Persistence do
295
295
  end
296
296
 
297
297
  context "when the record has errors before the save" do
298
- before { subject.errors[:base] << "Boom!" }
298
+ before { subject.errors.add(:base, :invalid, :message => "Boom!") }
299
299
 
300
300
  it "clears the errors before the save" do
301
301
  expect(subject.errors).not_to be_empty
@@ -330,7 +330,7 @@ describe ::ActiveRemote::Persistence do
330
330
 
331
331
  describe "#success?" do
332
332
  context "when errors are present" do
333
- before { subject.errors[:base] << "Boom!" }
333
+ before { subject.errors.add(:base, :invalid, :message => "Boom!") }
334
334
 
335
335
  its(:success?) { should be_falsey }
336
336
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: active_remote
3
3
  version: !ruby/object:Gem::Version
4
- version: 6.0.0.beta
4
+ version: 6.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Adam Hutchison
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-06-17 00:00:00.000000000 Z
11
+ date: 2022-08-24 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activemodel
@@ -16,28 +16,28 @@ dependencies:
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: '6.0'
19
+ version: 6.1.0
20
20
  type: :runtime
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: '6.0'
26
+ version: 6.1.0
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: activesupport
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
31
  - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: '6.0'
33
+ version: 6.1.0
34
34
  type: :runtime
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: '6.0'
40
+ version: 6.1.0
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: protobuf
43
43
  requirement: !ruby/object:Gem::Requirement
@@ -275,11 +275,11 @@ required_ruby_version: !ruby/object:Gem::Requirement
275
275
  version: '0'
276
276
  required_rubygems_version: !ruby/object:Gem::Requirement
277
277
  requirements:
278
- - - ">"
278
+ - - ">="
279
279
  - !ruby/object:Gem::Version
280
- version: 1.3.1
280
+ version: '0'
281
281
  requirements: []
282
- rubygems_version: 3.0.8
282
+ rubygems_version: 3.1.4
283
283
  signing_key:
284
284
  specification_version: 4
285
285
  summary: Active Record for your platform