remote_record 0.1.1 → 0.1.2

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: 0a0631c2b3e0edcedb6cbe8b8c82898fcf9fd2c7ccb79f3ed81e636d22c1d7e2
4
- data.tar.gz: 903e0ee0541c3f7165f117d5589977b45e6f99c2964541fcd130ebcc602913f2
3
+ metadata.gz: b7549ee998e94aff531c514ec0b95041d659624a8996cd0966d1769c32ee9e2f
4
+ data.tar.gz: 95220700e2ccdd2159f3be5929b0329cf177278cf8e346889deee4f55747fb50
5
5
  SHA512:
6
- metadata.gz: '0487c9c421d736e9bb4b3e65d105a7963339c3a05ceb30bf31ebe1fcda345e96aac094f8ed91deeacf3825534e1dbe3079f4a6c5abd40c3ca3c076a73dfa5f1a'
7
- data.tar.gz: dfb4cbeca331e5a3ff84465046d055aefb36f52662060b98ab221a385c395c06162e38062be007539594b6643d53e771a179882067377f94339117f256f5c84f
6
+ metadata.gz: 045011fafc339148f07ad89834b86a36b46d1a8fa963a7922628eb5bb927a6e719fb4fa3189ebb6abafff3782141685a242cc77a1e6fec7eb5df7b571fdb7b2e
7
+ data.tar.gz: 5a37f46bf4eab3a9aee940447e8e6b34f0692064073333cc228799f46e1164e2e098a96374d11e7e71dc678158e3f78abf5975d6f44c9079e7b78194dead297f
data/README.md CHANGED
@@ -109,3 +109,8 @@ By default, this'll only make a request on initialize. For services that manage
109
109
  caching by way of expiry or ETags, I recommend using `faraday-http-cache` for
110
110
  your clients and setting `memoize` to `false`. Remote Record will eventually
111
111
  gain support for caching.
112
+
113
+ ### Forcing a fresh request
114
+
115
+ You might want to force a fresh request in some instances, even if you're using
116
+ `memoize`. To do this, call `fresh` on a reference, and it'll be repopulated.
@@ -34,8 +34,8 @@ module RemoteRecord
34
34
  private
35
35
 
36
36
  def transform(data)
37
- transformers.reduce(data) do |data, transformer|
38
- transformer.new(data).transform
37
+ transformers.reduce(data) do |transformed_data, transformer|
38
+ transformer.new(transformed_data).transform
39
39
  end
40
40
  end
41
41
 
@@ -25,6 +25,7 @@ module RemoteRecord
25
25
  end
26
26
  end
27
27
 
28
+ # rubocop:disable Metrics/BlockLength
28
29
  included do
29
30
  after_initialize do |reference|
30
31
  config = reference.class.remote_record_class.default_config.merge(
@@ -55,11 +56,17 @@ module RemoteRecord
55
56
  instance.fetch
56
57
  end
57
58
 
59
+ def fresh
60
+ fetch_remote_resource
61
+ self
62
+ end
63
+
58
64
  private
59
65
 
60
66
  def instance
61
67
  @instance ||= @remote_record_config.remote_record_class.new(self, @remote_record_config)
62
68
  end
63
69
  end
70
+ # rubocop:enable Metrics/BlockLength
64
71
  end
65
72
  end
@@ -1,8 +1,10 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'remote_record/transformers/base'
2
4
  require 'remote_record/transformers/snake_case'
3
5
 
4
6
  module RemoteRecord
7
+ # Classes responsible for transforming the hash of data returned by API calls.
5
8
  module Transformers
6
-
7
9
  end
8
10
  end
@@ -1,5 +1,8 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module RemoteRecord
2
4
  module Transformers
5
+ # Base transformer class. Inherit from this and implement `#transform`.
3
6
  class Base
4
7
  def initialize(data)
5
8
  @data = data
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module RemoteRecord
2
4
  module Transformers
3
5
  # Converts keys to snake case.
@@ -19,8 +21,8 @@ module RemoteRecord
19
21
  end
20
22
  end
21
23
 
22
- def underscore_key(k)
23
- k.to_s.underscore.to_sym
24
+ def underscore_key(key)
25
+ key.to_s.underscore.to_sym
24
26
  end
25
27
  end
26
28
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module RemoteRecord
4
- VERSION = '0.1.1'
4
+ VERSION = '0.1.2'
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: remote_record
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 0.1.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Simon Fish