zoo_stream 1.0.0 → 1.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 +5 -5
- data/.github/workflows/run_tests_CI.yml +17 -0
- data/CHANGELOG.md +12 -0
- data/Dockerfile +19 -0
- data/README.md +14 -2
- data/docker-compose.yml +11 -0
- data/lib/zoo_stream/kinesis_publisher.rb +4 -2
- data/lib/zoo_stream/version.rb +1 -1
- data/lib/zoo_stream.rb +4 -1
- data/zoo_stream.gemspec +4 -4
- metadata +25 -23
- data/.travis.yml +0 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 840b8164e0225138893da451f94169ce96e3ecf3e8642b078a3206385842fd1b
|
4
|
+
data.tar.gz: b5d03163fcde4ff05db0f8e6d0fa42261f98f35252a7bc7da1e1dd7968be9711
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 8ba86397902d56d2ec3bde85c86acbb98fd4a555e2179850a189e17170483bbedec6df97d580f61b0a9f8bfaff1ba8fc400366beefd7bd2fb673c162dca6c5c7
|
7
|
+
data.tar.gz: 454f9406e4e1c264f63213bbd6659dc5c3d25c6be44f887b4e0096649f8f3a938a7968f3d6bc80b5313c43c6ff9566920c1cb6de083c76568243c25faad4f62e
|
@@ -0,0 +1,17 @@
|
|
1
|
+
name: Zooni CI
|
2
|
+
on:
|
3
|
+
pull_request:
|
4
|
+
push: { branches: master }
|
5
|
+
jobs:
|
6
|
+
test:
|
7
|
+
name: Run Tests
|
8
|
+
runs-on: ubuntu-latest
|
9
|
+
steps:
|
10
|
+
- uses: actions/checkout@v2
|
11
|
+
- name: Setup Ruby
|
12
|
+
uses: ruby/setup-ruby@v1
|
13
|
+
with:
|
14
|
+
ruby-version: 3.0.1
|
15
|
+
bundler-cache: true
|
16
|
+
- name: Run tests
|
17
|
+
run: bundle exec rspec
|
data/CHANGELOG.md
ADDED
data/Dockerfile
ADDED
@@ -0,0 +1,19 @@
|
|
1
|
+
FROM ruby:3.1-slim
|
2
|
+
|
3
|
+
WORKDIR /app
|
4
|
+
|
5
|
+
RUN apt-get update && apt-get -y upgrade && \
|
6
|
+
apt-get install --no-install-recommends -y \
|
7
|
+
# git is required for installing gems
|
8
|
+
git && \
|
9
|
+
apt-get clean && rm -rf /var/lib/apt/lists/*
|
10
|
+
|
11
|
+
# ensure we use a newer version of rubygems / bundler
|
12
|
+
RUN gem update --system
|
13
|
+
|
14
|
+
ADD ./Gemfile /app/
|
15
|
+
ADD ./zoo_stream.gemspec /app/
|
16
|
+
ADD ./ /app
|
17
|
+
|
18
|
+
RUN bundle config --global jobs `cat /proc/cpuinfo | grep processor | wc -l | xargs -I % expr % - 1`
|
19
|
+
RUN bundle install
|
data/README.md
CHANGED
@@ -28,7 +28,7 @@ You can either configure this gem using environment variables:
|
|
28
28
|
Or programmatically (not recommended):
|
29
29
|
|
30
30
|
```ruby
|
31
|
-
ZooStream.publisher = ZooStream::KinesisPublisher.new("zooniverse-production")
|
31
|
+
ZooStream.publisher = ZooStream::KinesisPublisher.new(stream_name: "zooniverse-production")
|
32
32
|
ZooStream.source = "my-application"
|
33
33
|
```
|
34
34
|
|
@@ -51,10 +51,22 @@ If you don't set a stream name, **this gem will silently ignore all `#publish` m
|
|
51
51
|
|
52
52
|
## Development
|
53
53
|
|
54
|
-
After checking out the repo, run `bin/setup` to install dependencies. Then, run `
|
54
|
+
After checking out the repo, run `bin/setup` to install dependencies. Then, run `bundle exec rspec` to run the tests. You can also run `bin/console` for an interactive prompt that will allow you to experiment.
|
55
55
|
|
56
56
|
To install this gem onto your local machine, run `bundle exec rake install`. To release a new version, update the version number in `version.rb`, and then run `bundle exec rake release`, which will create a git tag for the version, push git commits and tags, and push the `.gem` file to [rubygems.org](https://rubygems.org).
|
57
57
|
|
58
|
+
Use docker & compose to setup the dev env
|
59
|
+
|
60
|
+
```shell
|
61
|
+
docker-compose build
|
62
|
+
```
|
63
|
+
|
64
|
+
Run a bash shell inside the new container
|
65
|
+
|
66
|
+
```shell
|
67
|
+
docker-compose run --service-ports --rm zoo_stream bash
|
68
|
+
```
|
69
|
+
|
58
70
|
## Contributing
|
59
71
|
|
60
72
|
Bug reports and pull requests are welcome on GitHub at https://github.com/zooniverse/zoo_stream. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the [Contributor Covenant](http://contributor-covenant.org) code of conduct.
|
data/docker-compose.yml
ADDED
@@ -1,4 +1,4 @@
|
|
1
|
-
require 'aws-sdk'
|
1
|
+
require 'aws-sdk-kinesis'
|
2
2
|
|
3
3
|
module ZooStream
|
4
4
|
class KinesisPublisher
|
@@ -9,7 +9,9 @@ module ZooStream
|
|
9
9
|
@client = client
|
10
10
|
end
|
11
11
|
|
12
|
-
def publish(event, shard_by:)
|
12
|
+
def publish(event, shard_by: nil)
|
13
|
+
raise ArgumentError, "Must specify shard_by" unless shard_by
|
14
|
+
|
13
15
|
client.put_record(
|
14
16
|
stream_name: stream_name,
|
15
17
|
partition_key: shard_by,
|
data/lib/zoo_stream/version.rb
CHANGED
data/lib/zoo_stream.rb
CHANGED
@@ -9,7 +9,10 @@ module ZooStream
|
|
9
9
|
# @param data [Hash] the event data
|
10
10
|
# @param linked [Hash] related models to the data
|
11
11
|
# @param shard_by [String] if present, reader order will be guaranteed within this shard. If left blank, the entire stream will always be a single shard.
|
12
|
-
def self.publish(event
|
12
|
+
def self.publish(event: nil, data: nil, linked: {}, shard_by: nil)
|
13
|
+
raise ArgumentError, "Must specify event" unless event
|
14
|
+
raise ArgumentError, "Must specify data" unless data
|
15
|
+
|
13
16
|
return unless publisher
|
14
17
|
event = Event.new(source, event, data, linked)
|
15
18
|
publisher.publish(event, shard_by: (shard_by || event.type).to_s)
|
data/zoo_stream.gemspec
CHANGED
@@ -19,9 +19,9 @@ Gem::Specification.new do |spec|
|
|
19
19
|
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
20
20
|
spec.require_paths = ["lib"]
|
21
21
|
|
22
|
-
spec.add_dependency 'aws-sdk'
|
22
|
+
spec.add_dependency 'aws-sdk-kinesis', '~> 1'
|
23
23
|
|
24
|
-
spec.add_development_dependency
|
25
|
-
spec.add_development_dependency
|
26
|
-
spec.add_development_dependency
|
24
|
+
spec.add_development_dependency 'bundler', '~> 2.2'
|
25
|
+
spec.add_development_dependency 'rake'
|
26
|
+
spec.add_development_dependency 'rspec'
|
27
27
|
end
|
metadata
CHANGED
@@ -1,71 +1,71 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: zoo_stream
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Marten Veldthuis
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2025-02-24 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
|
-
name: aws-sdk
|
14
|
+
name: aws-sdk-kinesis
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- - "
|
17
|
+
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: '
|
19
|
+
version: '1'
|
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: '
|
26
|
+
version: '1'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: bundler
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
31
|
- - "~>"
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version: '
|
33
|
+
version: '2.2'
|
34
34
|
type: :development
|
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: '
|
40
|
+
version: '2.2'
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: rake
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
|
-
- - "
|
45
|
+
- - ">="
|
46
46
|
- !ruby/object:Gem::Version
|
47
|
-
version: '
|
47
|
+
version: '0'
|
48
48
|
type: :development
|
49
49
|
prerelease: false
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
51
51
|
requirements:
|
52
|
-
- - "
|
52
|
+
- - ">="
|
53
53
|
- !ruby/object:Gem::Version
|
54
|
-
version: '
|
54
|
+
version: '0'
|
55
55
|
- !ruby/object:Gem::Dependency
|
56
56
|
name: rspec
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
58
58
|
requirements:
|
59
|
-
- - "
|
59
|
+
- - ">="
|
60
60
|
- !ruby/object:Gem::Version
|
61
|
-
version: '
|
61
|
+
version: '0'
|
62
62
|
type: :development
|
63
63
|
prerelease: false
|
64
64
|
version_requirements: !ruby/object:Gem::Requirement
|
65
65
|
requirements:
|
66
|
-
- - "
|
66
|
+
- - ">="
|
67
67
|
- !ruby/object:Gem::Version
|
68
|
-
version: '
|
68
|
+
version: '0'
|
69
69
|
description: A wrapper around AWS Kinesis client to make sure all our applications
|
70
70
|
publish messages with a consistent format.
|
71
71
|
email:
|
@@ -74,16 +74,19 @@ executables: []
|
|
74
74
|
extensions: []
|
75
75
|
extra_rdoc_files: []
|
76
76
|
files:
|
77
|
+
- ".github/workflows/run_tests_CI.yml"
|
77
78
|
- ".gitignore"
|
78
79
|
- ".rspec"
|
79
|
-
-
|
80
|
+
- CHANGELOG.md
|
80
81
|
- CODE_OF_CONDUCT.md
|
82
|
+
- Dockerfile
|
81
83
|
- Gemfile
|
82
84
|
- LICENSE.txt
|
83
85
|
- README.md
|
84
86
|
- Rakefile
|
85
87
|
- bin/console
|
86
88
|
- bin/setup
|
89
|
+
- docker-compose.yml
|
87
90
|
- lib/zoo_stream.rb
|
88
91
|
- lib/zoo_stream/event.rb
|
89
92
|
- lib/zoo_stream/kinesis_publisher.rb
|
@@ -93,7 +96,7 @@ homepage: https://github.com/zooniverse/zoo_stream
|
|
93
96
|
licenses:
|
94
97
|
- MIT
|
95
98
|
metadata: {}
|
96
|
-
post_install_message:
|
99
|
+
post_install_message:
|
97
100
|
rdoc_options: []
|
98
101
|
require_paths:
|
99
102
|
- lib
|
@@ -108,9 +111,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
108
111
|
- !ruby/object:Gem::Version
|
109
112
|
version: '0'
|
110
113
|
requirements: []
|
111
|
-
|
112
|
-
|
113
|
-
signing_key:
|
114
|
+
rubygems_version: 3.5.22
|
115
|
+
signing_key:
|
114
116
|
specification_version: 4
|
115
117
|
summary: Simplified and customized Kinesis publisher
|
116
118
|
test_files: []
|
data/.travis.yml
DELETED