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 +4 -4
- data/README.md +5 -0
- data/lib/remote_record/base.rb +2 -2
- data/lib/remote_record/reference.rb +7 -0
- data/lib/remote_record/transformers.rb +3 -1
- data/lib/remote_record/transformers/base.rb +3 -0
- data/lib/remote_record/transformers/snake_case.rb +4 -2
- data/lib/remote_record/version.rb +1 -1
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: b7549ee998e94aff531c514ec0b95041d659624a8996cd0966d1769c32ee9e2f
|
4
|
+
data.tar.gz: 95220700e2ccdd2159f3be5929b0329cf177278cf8e346889deee4f55747fb50
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
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.
|
data/lib/remote_record/base.rb
CHANGED
@@ -34,8 +34,8 @@ module RemoteRecord
|
|
34
34
|
private
|
35
35
|
|
36
36
|
def transform(data)
|
37
|
-
transformers.reduce(data) do |
|
38
|
-
transformer.new(
|
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,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(
|
23
|
-
|
24
|
+
def underscore_key(key)
|
25
|
+
key.to_s.underscore.to_sym
|
24
26
|
end
|
25
27
|
end
|
26
28
|
end
|