rom-kafka 0.0.1

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.
Files changed (51) hide show
  1. checksums.yaml +7 -0
  2. data/.coveralls.yml +2 -0
  3. data/.gitignore +9 -0
  4. data/.metrics +9 -0
  5. data/.rspec +2 -0
  6. data/.rubocop.yml +2 -0
  7. data/.travis.yml +34 -0
  8. data/.yardopts +3 -0
  9. data/CHANGELOG.md +3 -0
  10. data/Gemfile +7 -0
  11. data/Guardfile +14 -0
  12. data/LICENSE +21 -0
  13. data/README.md +83 -0
  14. data/Rakefile +34 -0
  15. data/config/metrics/STYLEGUIDE +230 -0
  16. data/config/metrics/cane.yml +5 -0
  17. data/config/metrics/churn.yml +6 -0
  18. data/config/metrics/flay.yml +2 -0
  19. data/config/metrics/metric_fu.yml +14 -0
  20. data/config/metrics/reek.yml +1 -0
  21. data/config/metrics/roodi.yml +24 -0
  22. data/config/metrics/rubocop.yml +71 -0
  23. data/config/metrics/saikuro.yml +3 -0
  24. data/config/metrics/simplecov.yml +6 -0
  25. data/config/metrics/yardstick.yml +37 -0
  26. data/lib/rom-kafka.rb +3 -0
  27. data/lib/rom/kafka.rb +29 -0
  28. data/lib/rom/kafka/brokers.rb +72 -0
  29. data/lib/rom/kafka/brokers/broker.rb +68 -0
  30. data/lib/rom/kafka/connection.rb +22 -0
  31. data/lib/rom/kafka/connection/consumer.rb +105 -0
  32. data/lib/rom/kafka/connection/producer.rb +114 -0
  33. data/lib/rom/kafka/create.rb +75 -0
  34. data/lib/rom/kafka/dataset.rb +132 -0
  35. data/lib/rom/kafka/gateway.rb +165 -0
  36. data/lib/rom/kafka/relation.rb +78 -0
  37. data/lib/rom/kafka/version.rb +13 -0
  38. data/rom-kafka.gemspec +33 -0
  39. data/spec/integration/basic_usage_spec.rb +58 -0
  40. data/spec/integration/keys_usage_spec.rb +34 -0
  41. data/spec/shared/scholars_topic.rb +28 -0
  42. data/spec/spec_helper.rb +20 -0
  43. data/spec/unit/brokers/broker_spec.rb +89 -0
  44. data/spec/unit/brokers_spec.rb +46 -0
  45. data/spec/unit/connection/consumer_spec.rb +90 -0
  46. data/spec/unit/connection/producer_spec.rb +79 -0
  47. data/spec/unit/create_spec.rb +79 -0
  48. data/spec/unit/dataset_spec.rb +165 -0
  49. data/spec/unit/gateway_spec.rb +171 -0
  50. data/spec/unit/relation_spec.rb +96 -0
  51. metadata +219 -0
@@ -0,0 +1,96 @@
1
+ # encoding: utf-8
2
+
3
+ describe ROM::Kafka::Relation do
4
+
5
+ let(:relation) { described_class.new dataset }
6
+ let(:dataset) { double :dataset, using: updated }
7
+ let(:updated) { double :updated }
8
+
9
+ describe ".adapter" do
10
+ subject { described_class.adapter }
11
+
12
+ it { is_expected.to eql(:kafka) }
13
+ end # describe .adapter
14
+
15
+ describe ".topic" do
16
+ subject { described_class.topic :foo }
17
+
18
+ it "is an alias for .dataset" do
19
+ allow(described_class).to receive(:dataset)
20
+
21
+ expect(described_class).to receive(:dataset).with(:foo)
22
+ subject
23
+ end
24
+ end # describe .topic
25
+
26
+ describe ".new" do
27
+ subject { relation }
28
+
29
+ it { is_expected.to be_kind_of ROM::Relation }
30
+ end # describe .new
31
+
32
+ describe "#dataset" do
33
+ subject { relation.dataset }
34
+
35
+ it { is_expected.to eql(dataset) }
36
+ end # describe #dataset
37
+
38
+ describe "#using" do
39
+ subject { relation.using(options) }
40
+
41
+ let(:options) { { foo: :bar, baz: :qux } }
42
+
43
+ it "returns a relation" do
44
+ expect(subject).to be_kind_of described_class
45
+ end
46
+
47
+ it "updates a dataset" do
48
+ expect(dataset).to receive(:using).with(options)
49
+ expect(subject.dataset).to eql(updated)
50
+ end
51
+ end # describe #using
52
+
53
+ describe "#offset" do
54
+ subject { relation.offset(value) }
55
+
56
+ let(:value) { 5 }
57
+
58
+ it "returns a relation" do
59
+ expect(subject).to be_kind_of described_class
60
+ end
61
+
62
+ it "updates the dataset with given offset" do
63
+ expect(dataset).to receive(:using).with(offset: value)
64
+ expect(subject.dataset).to eql(updated)
65
+ end
66
+ end # describe #offset
67
+
68
+ describe "#limit" do
69
+ subject { relation.limit(value) }
70
+
71
+ let(:value) { 3 }
72
+
73
+ it "returns a relation" do
74
+ expect(subject).to be_kind_of described_class
75
+ end
76
+
77
+ it "updates the dataset with given limit" do
78
+ expect(dataset).to receive(:using).with(limit: value)
79
+ expect(subject.dataset).to eql(updated)
80
+ end
81
+ end # describe #limit
82
+
83
+ describe "#from" do
84
+ subject { relation.from(3) }
85
+
86
+ it "returns a relation" do
87
+ expect(subject).to be_kind_of described_class
88
+ end
89
+
90
+ it "updates the dataset with key and partition" do
91
+ expect(dataset).to receive(:using).with(partition: 3)
92
+ expect(subject.dataset).to eql(updated)
93
+ end
94
+ end # describe #where
95
+
96
+ end # describe ROM::Kafka::Relation
metadata ADDED
@@ -0,0 +1,219 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: rom-kafka
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ platform: ruby
6
+ authors:
7
+ - Andrew Kozin
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2015-09-16 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: rom
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '0.9'
20
+ - - ">="
21
+ - !ruby/object:Gem::Version
22
+ version: 0.9.1
23
+ type: :runtime
24
+ prerelease: false
25
+ version_requirements: !ruby/object:Gem::Requirement
26
+ requirements:
27
+ - - "~>"
28
+ - !ruby/object:Gem::Version
29
+ version: '0.9'
30
+ - - ">="
31
+ - !ruby/object:Gem::Version
32
+ version: 0.9.1
33
+ - !ruby/object:Gem::Dependency
34
+ name: poseidon
35
+ requirement: !ruby/object:Gem::Requirement
36
+ requirements:
37
+ - - "~>"
38
+ - !ruby/object:Gem::Version
39
+ version: '0.0'
40
+ - - ">="
41
+ - !ruby/object:Gem::Version
42
+ version: 0.0.5
43
+ type: :runtime
44
+ prerelease: false
45
+ version_requirements: !ruby/object:Gem::Requirement
46
+ requirements:
47
+ - - "~>"
48
+ - !ruby/object:Gem::Version
49
+ version: '0.0'
50
+ - - ">="
51
+ - !ruby/object:Gem::Version
52
+ version: 0.0.5
53
+ - !ruby/object:Gem::Dependency
54
+ name: attributes_dsl
55
+ requirement: !ruby/object:Gem::Requirement
56
+ requirements:
57
+ - - "~>"
58
+ - !ruby/object:Gem::Version
59
+ version: '0.0'
60
+ - - ">="
61
+ - !ruby/object:Gem::Version
62
+ version: 0.0.2
63
+ type: :runtime
64
+ prerelease: false
65
+ version_requirements: !ruby/object:Gem::Requirement
66
+ requirements:
67
+ - - "~>"
68
+ - !ruby/object:Gem::Version
69
+ version: '0.0'
70
+ - - ">="
71
+ - !ruby/object:Gem::Version
72
+ version: 0.0.2
73
+ - !ruby/object:Gem::Dependency
74
+ name: hexx-rspec
75
+ requirement: !ruby/object:Gem::Requirement
76
+ requirements:
77
+ - - "~>"
78
+ - !ruby/object:Gem::Version
79
+ version: '0.5'
80
+ type: :development
81
+ prerelease: false
82
+ version_requirements: !ruby/object:Gem::Requirement
83
+ requirements:
84
+ - - "~>"
85
+ - !ruby/object:Gem::Version
86
+ version: '0.5'
87
+ - !ruby/object:Gem::Dependency
88
+ name: inflecto
89
+ requirement: !ruby/object:Gem::Requirement
90
+ requirements:
91
+ - - "~>"
92
+ - !ruby/object:Gem::Version
93
+ version: '0.0'
94
+ - - ">="
95
+ - !ruby/object:Gem::Version
96
+ version: 0.0.2
97
+ type: :development
98
+ prerelease: false
99
+ version_requirements: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - "~>"
102
+ - !ruby/object:Gem::Version
103
+ version: '0.0'
104
+ - - ">="
105
+ - !ruby/object:Gem::Version
106
+ version: 0.0.2
107
+ - !ruby/object:Gem::Dependency
108
+ name: timecop
109
+ requirement: !ruby/object:Gem::Requirement
110
+ requirements:
111
+ - - "~>"
112
+ - !ruby/object:Gem::Version
113
+ version: '0.8'
114
+ type: :development
115
+ prerelease: false
116
+ version_requirements: !ruby/object:Gem::Requirement
117
+ requirements:
118
+ - - "~>"
119
+ - !ruby/object:Gem::Version
120
+ version: '0.8'
121
+ description: Kafka support for Ruby Object Mapper
122
+ email:
123
+ - andrew.kozin@gmail.com
124
+ executables: []
125
+ extensions: []
126
+ extra_rdoc_files:
127
+ - README.md
128
+ - LICENSE
129
+ files:
130
+ - ".coveralls.yml"
131
+ - ".gitignore"
132
+ - ".metrics"
133
+ - ".rspec"
134
+ - ".rubocop.yml"
135
+ - ".travis.yml"
136
+ - ".yardopts"
137
+ - CHANGELOG.md
138
+ - Gemfile
139
+ - Guardfile
140
+ - LICENSE
141
+ - README.md
142
+ - Rakefile
143
+ - config/metrics/STYLEGUIDE
144
+ - config/metrics/cane.yml
145
+ - config/metrics/churn.yml
146
+ - config/metrics/flay.yml
147
+ - config/metrics/metric_fu.yml
148
+ - config/metrics/reek.yml
149
+ - config/metrics/roodi.yml
150
+ - config/metrics/rubocop.yml
151
+ - config/metrics/saikuro.yml
152
+ - config/metrics/simplecov.yml
153
+ - config/metrics/yardstick.yml
154
+ - lib/rom-kafka.rb
155
+ - lib/rom/kafka.rb
156
+ - lib/rom/kafka/brokers.rb
157
+ - lib/rom/kafka/brokers/broker.rb
158
+ - lib/rom/kafka/connection.rb
159
+ - lib/rom/kafka/connection/consumer.rb
160
+ - lib/rom/kafka/connection/producer.rb
161
+ - lib/rom/kafka/create.rb
162
+ - lib/rom/kafka/dataset.rb
163
+ - lib/rom/kafka/gateway.rb
164
+ - lib/rom/kafka/relation.rb
165
+ - lib/rom/kafka/version.rb
166
+ - rom-kafka.gemspec
167
+ - spec/integration/basic_usage_spec.rb
168
+ - spec/integration/keys_usage_spec.rb
169
+ - spec/shared/scholars_topic.rb
170
+ - spec/spec_helper.rb
171
+ - spec/unit/brokers/broker_spec.rb
172
+ - spec/unit/brokers_spec.rb
173
+ - spec/unit/connection/consumer_spec.rb
174
+ - spec/unit/connection/producer_spec.rb
175
+ - spec/unit/create_spec.rb
176
+ - spec/unit/dataset_spec.rb
177
+ - spec/unit/gateway_spec.rb
178
+ - spec/unit/relation_spec.rb
179
+ homepage: https://rom-rb.org
180
+ licenses:
181
+ - MIT
182
+ metadata: {}
183
+ post_install_message:
184
+ rdoc_options: []
185
+ require_paths:
186
+ - lib
187
+ required_ruby_version: !ruby/object:Gem::Requirement
188
+ requirements:
189
+ - - "~>"
190
+ - !ruby/object:Gem::Version
191
+ version: '1.9'
192
+ - - ">="
193
+ - !ruby/object:Gem::Version
194
+ version: 1.9.3
195
+ required_rubygems_version: !ruby/object:Gem::Requirement
196
+ requirements:
197
+ - - ">="
198
+ - !ruby/object:Gem::Version
199
+ version: '0'
200
+ requirements: []
201
+ rubyforge_project:
202
+ rubygems_version: 2.4.8
203
+ signing_key:
204
+ specification_version: 4
205
+ summary: Kafka support for Ruby Object Mapper
206
+ test_files:
207
+ - spec/integration/basic_usage_spec.rb
208
+ - spec/integration/keys_usage_spec.rb
209
+ - spec/shared/scholars_topic.rb
210
+ - spec/spec_helper.rb
211
+ - spec/unit/brokers/broker_spec.rb
212
+ - spec/unit/brokers_spec.rb
213
+ - spec/unit/connection/consumer_spec.rb
214
+ - spec/unit/connection/producer_spec.rb
215
+ - spec/unit/create_spec.rb
216
+ - spec/unit/dataset_spec.rb
217
+ - spec/unit/gateway_spec.rb
218
+ - spec/unit/relation_spec.rb
219
+ has_rdoc: