materialist 0.0.6 → 0.1.0
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 +14 -12
- data/lib/materialist/materializer.rb +2 -2
- data/lib/materialist.rb +1 -1
- data/materialist.gemspec +1 -1
- data/spec/materialist/materializer_spec.rb +9 -9
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: ddfdebe864838d6fdb912aee5d3002417aca969b
|
4
|
+
data.tar.gz: 13ebd4c0bad48a307820aaa28c81d674335da88c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: c082a2dfffdae443aaafb41d20f4a12da3203a90bbae0e4bd8075f77364fdc67d2386de3373572d1a0b6b46bbb93d0e7a1adca2df59777f15de7c9eb9fbf0d02
|
7
|
+
data.tar.gz: 80d88005986ec167b4d599085e9fcd424c37b4cab98baacc44a38deed1731e035c8acc8da118e0be286b17f5c2de1adf95ddd4a45253b43ba9648169b4f79113
|
data/README.md
CHANGED
@@ -116,31 +116,33 @@ require 'materialist/materializer'
|
|
116
116
|
class ZoneMaterializer
|
117
117
|
include Materialist::Materializer
|
118
118
|
|
119
|
-
|
119
|
+
persist_to :zone
|
120
120
|
|
121
|
-
|
122
|
-
|
123
|
-
|
121
|
+
capture :id, as: :orderweb_id
|
122
|
+
capture :code
|
123
|
+
capture :name
|
124
124
|
|
125
125
|
link :city do
|
126
|
-
|
126
|
+
capture :tz_name, as: :timezone
|
127
127
|
|
128
128
|
link :country do
|
129
|
-
|
130
|
-
|
129
|
+
capture :name, as: :country_name
|
130
|
+
capture :iso_alpha2_code, as: :country_iso_alpha2_code
|
131
131
|
end
|
132
132
|
end
|
133
|
+
|
134
|
+
materialize_link :settings, topic: :zone_settings
|
133
135
|
end
|
134
136
|
```
|
135
137
|
|
136
138
|
Here is what each part of the DSL mean:
|
137
139
|
|
138
|
-
#### `
|
139
|
-
describes the name of the active record model to be used.
|
140
|
+
#### `persist_to <model_name>`
|
141
|
+
describes the name of the active record model to be used.
|
140
142
|
If missing, materialist skips materialising the resource itself, but will continue
|
141
143
|
with any other functionality -- such as `materialize_link`.
|
142
144
|
|
143
|
-
#### `
|
145
|
+
#### `capture <key>, as: <column> (default: key)`
|
144
146
|
describes mapping a resource key to database column.
|
145
147
|
|
146
148
|
#### `link <key>`
|
@@ -150,8 +152,8 @@ When inside the block of a `link` any other part of DSL can be used and will be
|
|
150
152
|
|
151
153
|
### `materialize_link <key>, topic: <topic> (default: key)`
|
152
154
|
describes materializing the linked entity.
|
153
|
-
This simulates a `:noop` event on the given topic and the `url`
|
154
|
-
liked resource `<key>` as it appears on the response (`_links`)
|
155
|
+
This simulates a `:noop` event on the given topic and the `url` of the
|
156
|
+
liked resource `<key>` as it appears on the response (`_links`) -- meaning the materializer for the given topic will be invoked.
|
155
157
|
|
156
158
|
#### `after_upsert <method>` -- also `after_destroy`
|
157
159
|
describes the name of the instance method to be invoked after a record was materialized.
|
@@ -51,7 +51,7 @@ module Materialist
|
|
51
51
|
__materialist_options[:links_to_materialize][key] = { topic: topic }
|
52
52
|
end
|
53
53
|
|
54
|
-
def
|
54
|
+
def capture(key, as: key)
|
55
55
|
__materialist_dsl_mapping_stack.last << FieldMapping.new(key: key, as: as)
|
56
56
|
end
|
57
57
|
|
@@ -63,7 +63,7 @@ module Materialist
|
|
63
63
|
__materialist_dsl_mapping_stack.pop
|
64
64
|
end
|
65
65
|
|
66
|
-
def
|
66
|
+
def persist_to(klass)
|
67
67
|
__materialist_options[:model_class] = klass
|
68
68
|
end
|
69
69
|
|
data/lib/materialist.rb
CHANGED
data/materialist.gemspec
CHANGED
@@ -16,7 +16,7 @@ Gem::Specification.new do |spec|
|
|
16
16
|
spec.test_files = spec.files.grep(%r{^spec/})
|
17
17
|
spec.require_paths = %w(lib)
|
18
18
|
|
19
|
-
spec.add_runtime_dependency 'sidekiq'
|
19
|
+
spec.add_runtime_dependency 'sidekiq', '>= 5.0'
|
20
20
|
spec.add_runtime_dependency 'activesupport'
|
21
21
|
spec.add_runtime_dependency 'routemaster-drain', '>= 3.0'
|
22
22
|
|
@@ -10,17 +10,17 @@ RSpec.describe Materialist::Materializer do
|
|
10
10
|
class FoobarMaterializer
|
11
11
|
include Materialist::Materializer
|
12
12
|
|
13
|
-
|
14
|
-
|
15
|
-
|
13
|
+
persist_to :foobar
|
14
|
+
capture :name
|
15
|
+
capture :age, as: :how_old
|
16
16
|
|
17
17
|
materialize_link :city
|
18
18
|
|
19
19
|
link :city do
|
20
|
-
|
20
|
+
capture :timezone
|
21
21
|
|
22
22
|
link :country do
|
23
|
-
|
23
|
+
capture :tld, as: :country_tld
|
24
24
|
end
|
25
25
|
end
|
26
26
|
end
|
@@ -28,8 +28,8 @@ RSpec.describe Materialist::Materializer do
|
|
28
28
|
class CityMaterializer
|
29
29
|
include Materialist::Materializer
|
30
30
|
|
31
|
-
|
32
|
-
|
31
|
+
persist_to :city
|
32
|
+
capture :name
|
33
33
|
end
|
34
34
|
end
|
35
35
|
|
@@ -240,7 +240,7 @@ RSpec.describe Materialist::Materializer do
|
|
240
240
|
class FoobarMaterializer
|
241
241
|
include Materialist::Materializer
|
242
242
|
|
243
|
-
|
243
|
+
persist_to :foobar
|
244
244
|
after_upsert :my_method
|
245
245
|
|
246
246
|
def my_method(entity)
|
@@ -274,7 +274,7 @@ RSpec.describe Materialist::Materializer do
|
|
274
274
|
class FoobarMaterializer
|
275
275
|
include Materialist::Materializer
|
276
276
|
|
277
|
-
|
277
|
+
persist_to :foobar
|
278
278
|
after_destroy :my_method
|
279
279
|
|
280
280
|
def my_method(entity)
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: materialist
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0
|
4
|
+
version: 0.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Mo Valipour
|
@@ -16,14 +16,14 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - ">="
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: '0'
|
19
|
+
version: '5.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: '0'
|
26
|
+
version: '5.0'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: activesupport
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|