karafka 0.5.0.3 → 0.6.0.rc1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (76) hide show
  1. checksums.yaml +4 -4
  2. data/.console_irbrc +13 -0
  3. data/.github/ISSUE_TEMPLATE.md +2 -0
  4. data/.gitignore +1 -0
  5. data/CHANGELOG.md +59 -1
  6. data/CODE_OF_CONDUCT.md +46 -0
  7. data/CONTRIBUTING.md +67 -0
  8. data/Gemfile +2 -1
  9. data/Gemfile.lock +46 -147
  10. data/README.md +51 -952
  11. data/Rakefile +5 -14
  12. data/karafka.gemspec +19 -13
  13. data/lib/karafka.rb +7 -4
  14. data/lib/karafka/app.rb +10 -6
  15. data/lib/karafka/attributes_map.rb +67 -0
  16. data/lib/karafka/base_controller.rb +42 -52
  17. data/lib/karafka/base_responder.rb +30 -14
  18. data/lib/karafka/base_worker.rb +11 -26
  19. data/lib/karafka/cli.rb +2 -0
  20. data/lib/karafka/cli/base.rb +2 -0
  21. data/lib/karafka/cli/console.rb +7 -1
  22. data/lib/karafka/cli/flow.rb +13 -13
  23. data/lib/karafka/cli/info.rb +7 -4
  24. data/lib/karafka/cli/install.rb +4 -3
  25. data/lib/karafka/cli/server.rb +3 -1
  26. data/lib/karafka/cli/worker.rb +2 -0
  27. data/lib/karafka/connection/config_adapter.rb +103 -0
  28. data/lib/karafka/connection/listener.rb +16 -12
  29. data/lib/karafka/connection/messages_consumer.rb +86 -0
  30. data/lib/karafka/connection/messages_processor.rb +74 -0
  31. data/lib/karafka/errors.rb +15 -29
  32. data/lib/karafka/fetcher.rb +10 -8
  33. data/lib/karafka/helpers/class_matcher.rb +2 -0
  34. data/lib/karafka/helpers/config_retriever.rb +46 -0
  35. data/lib/karafka/helpers/multi_delegator.rb +2 -0
  36. data/lib/karafka/loader.rb +4 -2
  37. data/lib/karafka/logger.rb +37 -36
  38. data/lib/karafka/monitor.rb +3 -1
  39. data/lib/karafka/params/interchanger.rb +2 -0
  40. data/lib/karafka/params/params.rb +34 -41
  41. data/lib/karafka/params/params_batch.rb +46 -0
  42. data/lib/karafka/parsers/json.rb +4 -2
  43. data/lib/karafka/patches/dry_configurable.rb +2 -0
  44. data/lib/karafka/process.rb +4 -2
  45. data/lib/karafka/responders/builder.rb +2 -0
  46. data/lib/karafka/responders/topic.rb +14 -6
  47. data/lib/karafka/routing/builder.rb +22 -59
  48. data/lib/karafka/routing/consumer_group.rb +54 -0
  49. data/lib/karafka/routing/mapper.rb +2 -0
  50. data/lib/karafka/routing/proxy.rb +37 -0
  51. data/lib/karafka/routing/router.rb +18 -16
  52. data/lib/karafka/routing/topic.rb +78 -0
  53. data/lib/karafka/schemas/config.rb +36 -0
  54. data/lib/karafka/schemas/consumer_group.rb +56 -0
  55. data/lib/karafka/schemas/responder_usage.rb +38 -0
  56. data/lib/karafka/server.rb +5 -3
  57. data/lib/karafka/setup/config.rb +79 -32
  58. data/lib/karafka/setup/configurators/base.rb +2 -0
  59. data/lib/karafka/setup/configurators/celluloid.rb +2 -0
  60. data/lib/karafka/setup/configurators/sidekiq.rb +2 -0
  61. data/lib/karafka/setup/configurators/water_drop.rb +15 -3
  62. data/lib/karafka/status.rb +2 -0
  63. data/lib/karafka/templates/app.rb.example +15 -5
  64. data/lib/karafka/templates/application_worker.rb.example +0 -6
  65. data/lib/karafka/version.rb +2 -1
  66. data/lib/karafka/workers/builder.rb +2 -0
  67. metadata +109 -60
  68. data/lib/karafka/cli/routes.rb +0 -36
  69. data/lib/karafka/connection/consumer.rb +0 -33
  70. data/lib/karafka/connection/message.rb +0 -17
  71. data/lib/karafka/connection/topic_consumer.rb +0 -94
  72. data/lib/karafka/responders/usage_validator.rb +0 -60
  73. data/lib/karafka/routing/route.rb +0 -113
  74. data/lib/karafka/setup/config_schema.rb +0 -44
  75. data/lib/karafka/setup/configurators/worker_glass.rb +0 -13
  76. data/lib/karafka/templates/config.ru.example +0 -13
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 6d336fa4ee7c6d7a9b38ee1ea08e70a9f6208312
4
- data.tar.gz: 219b4f431dc21cbe403f2f8aa50b81eae850c93c
3
+ metadata.gz: 2b23b384c41e678138f2dec19e303e3cd62dc537
4
+ data.tar.gz: 794671bee86cd69916ae16f48111179be4e45228
5
5
  SHA512:
6
- metadata.gz: 288e9e7054f1716c9d2600fb572b4fd288c6d33a29df89b644d584fb91d410da40ace8628889d7d936bd0526b40f0ffcf75729a41826c1bd0b6ddd1e5262e5d1
7
- data.tar.gz: 00214b9cf81f378b42d9a3c78151f1a8f95cfe5a8110c7566ae2280edf41bbcd9cc527e586d7d3978195418c1b8d6e48821a7ac21855c1578ca193e78c484241
6
+ metadata.gz: 29f049589ec7f572b9de747c005522a2b40076b5fc8425f451f83f12d8eef549b6ce403cf2201068ca462dedae83df799735f4655df167714116a6990238a7df
7
+ data.tar.gz: 436c792d7b15fafd68754c75bc558559ed2d0828591aba5a0644a44a720dbf4bffeefa428d146517552ba6d66dfa266d76ab9b3a3fa1c6e3a19c685a4496eaf6
@@ -0,0 +1,13 @@
1
+ # irbrc for Karafka console
2
+ require 'karafka'
3
+ require Karafka.boot_file
4
+
5
+ IRB.conf[:AUTO_INDENT] = true
6
+ IRB.conf[:SAVE_HISTORY] = 1000
7
+ IRB.conf[:USE_READLINE] = true
8
+ IRB.conf[:HISTORY_FILE] = "#{Karafka::App.root}/.irb-history"
9
+ IRB.conf[:LOAD_MODULES] = [] unless IRB.conf.key?(:LOAD_MODULES)
10
+
11
+ unless IRB.conf[:LOAD_MODULES].include?('irb/completion')
12
+ IRB.conf[:LOAD_MODULES] << 'irb/completion'
13
+ end
@@ -0,0 +1,2 @@
1
+ <!-- Love karafka? Please consider supporting our collective:
2
+ 👉 https://opencollective.com/karafka/donate -->
data/.gitignore CHANGED
@@ -18,6 +18,7 @@ db/*.sqlite3
18
18
  **.war
19
19
  *.rbc
20
20
  *.sassc
21
+ .byebug_history
21
22
  .redcar/
22
23
  .capistrano/
23
24
  .sass-cache
@@ -1,5 +1,64 @@
1
1
  # Karafka framework changelog
2
2
 
3
+ ## 0.6.0.rc1
4
+
5
+ ### Closed issues:
6
+
7
+ - #103 - Env for logger is loaded 2 early (on gem load not on app init)
8
+ - #142 - Possibility to better control Kafka consumers (consumer groups management)
9
+ - #150 - Add support for start_from_beginning on a per topic basis
10
+ - #154 - Support for min_bytes and max_wait_time on messages consuming
11
+ - #160 - Reorganize settings to better resemble ruby-kafka requirements
12
+ - #164 - If we decide to have configuration per topic, topic uniqueness should be removed
13
+ - #165 - Router validator
14
+ - #166 - Params and route reorganization (new API)
15
+ - #167 - Remove Sidekiq UI from Karafka
16
+ - #168 - Introduce unique IDs of routes
17
+ - #171 - Add kafka message metadata to params
18
+ - #176 - Transform Karafka::Connection::Consumer into a module
19
+ - #177 - Monitor not reacting when kafka killed with -9
20
+ - #175 - Allow single consumer to subscribe to multiple topics
21
+ - #178 - Remove parsing failover when cannot unparse data
22
+ - #174 - Extended config validation
23
+ - #180 - Switch from JSON parser to yajl-ruby
24
+ - #181 - When responder is defined and not used due to ```respond_with``` not being triggered in the perform, it won't raise an exception.
25
+ - #188 - Rename name in config to client id
26
+ - #186 - Support ruby-kafka ```ssl_ca_cert_file_path``` config
27
+ - #189 - karafka console does not preserve history on exit
28
+
29
+ ### New features and improvements
30
+
31
+ - batch processing thanks to ```#batch_processing``` flag and ```#params_batch``` on controllers
32
+ - ```#topic``` method on an controller instance to make a clear distinction in between params and route details
33
+ - Changed routing model (still compatible with 0.5) to allow better resources management
34
+ - Lower memory requirements due to object creation limitation (2-3 times less objects on each new message)
35
+ - Introduced the ```#batch_processing``` config flag (config for #126) that can be set per each consumer_group
36
+ - Added support for partition, offset and partition key in the params hash
37
+ - ```name``` option in config renamed to ```client_id```
38
+
39
+ ### Incompatibilities
40
+
41
+ - Removed worker glass as dependency (now and independent gem)
42
+ - ```kafka.hosts``` option renamed to ```kafka.seed_brokers``` - you don't need to provide all the hosts to work with Kafka
43
+ - ```start_from_beginning``` moved into kafka scope (```kafka.start_from_beginning```)
44
+ - Router no longer checks for route uniqueness - now you can define same routes for multiple kafkas and do a lot of crazy stuff, so it's your responsibility to check uniqueness
45
+ - Change in the way we identify topics in between Karafka and Sidekiq workers. If you upgrade, please make sure, all the jobs scheduled in Sidekiq are finished before the upgrade.
46
+ - ```batch_mode``` renamed to ```batch_consuming```
47
+ - Renamed content to value to better resemble ruby-kafka internal messages naming convention
48
+ - When having a responder with ```required``` topics and not using ```#respond_with``` at all, it will raise an exception
49
+ - Renamed ```inline_mode``` to ```inline_processing``` to resemble other settings conventions
50
+
51
+ ### Other changes
52
+ - PolishGeeksDevTools removed (in favour of Coditsu)
53
+ - Waaaaaay better code quality thanks to switching from dev tools to Coditsu
54
+ - Gem bump
55
+ - Cleaner internal API
56
+ - SRP
57
+ - Better settings proxying and management between ruby-kafka and karafka
58
+ - All internal validations are now powered by dry-validation
59
+ - Better naming conventions to reflect Kafka reality
60
+ - Removed Karafka::Connection::Message in favour of direct message details extraction from Kafka::FetchedMessage
61
+
3
62
  ## 0.5.0.3
4
63
  - #132 - When Kafka is gone, should reconnect after a time period
5
64
  - #136 - new ruby-kafka version + other gem bumps
@@ -247,4 +306,3 @@
247
306
 
248
307
  ## 0.1.0
249
308
  - Initial framework code
250
-
@@ -0,0 +1,46 @@
1
+ # Contributor Covenant Code of Conduct
2
+
3
+ ## Our Pledge
4
+
5
+ In the interest of fostering an open and welcoming environment, we as contributors and maintainers pledge to making participation in our project and our community a harassment-free experience for everyone, regardless of age, body size, disability, ethnicity, gender identity and expression, level of experience, nationality, personal appearance, race, religion, or sexual identity and orientation.
6
+
7
+ ## Our Standards
8
+
9
+ Examples of behavior that contributes to creating a positive environment include:
10
+
11
+ * Using welcoming and inclusive language
12
+ * Being respectful of differing viewpoints and experiences
13
+ * Gracefully accepting constructive criticism
14
+ * Focusing on what is best for the community
15
+ * Showing empathy towards other community members
16
+
17
+ Examples of unacceptable behavior by participants include:
18
+
19
+ * The use of sexualized language or imagery and unwelcome sexual attention or advances
20
+ * Trolling, insulting/derogatory comments, and personal or political attacks
21
+ * Public or private harassment
22
+ * Publishing others' private information, such as a physical or electronic address, without explicit permission
23
+ * Other conduct which could reasonably be considered inappropriate in a professional setting
24
+
25
+ ## Our Responsibilities
26
+
27
+ Project maintainers are responsible for clarifying the standards of acceptable behavior and are expected to take appropriate and fair corrective action in response to any instances of unacceptable behavior.
28
+
29
+ Project maintainers have the right and responsibility to remove, edit, or reject comments, commits, code, wiki edits, issues, and other contributions that are not aligned to this Code of Conduct, or to ban temporarily or permanently any contributor for other behaviors that they deem inappropriate, threatening, offensive, or harmful.
30
+
31
+ ## Scope
32
+
33
+ This Code of Conduct applies both within project spaces and in public spaces when an individual is representing the project or its community. Examples of representing a project or community include using an official project e-mail address, posting via an official social media account, or acting as an appointed representative at an online or offline event. Representation of a project may be further defined and clarified by project maintainers.
34
+
35
+ ## Enforcement
36
+
37
+ Instances of abusive, harassing, or otherwise unacceptable behavior may be reported by contacting the project team at maciej@coditsu.io. The project team will review and investigate all complaints, and will respond in a way that it deems appropriate to the circumstances. The project team is obligated to maintain confidentiality with regard to the reporter of an incident. Further details of specific enforcement policies may be posted separately.
38
+
39
+ Project maintainers who do not follow or enforce the Code of Conduct in good faith may face temporary or permanent repercussions as determined by other members of the project's leadership.
40
+
41
+ ## Attribution
42
+
43
+ This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4, available at [http://contributor-covenant.org/version/1/4][version]
44
+
45
+ [homepage]: http://contributor-covenant.org
46
+ [version]: http://contributor-covenant.org/version/1/4/
@@ -0,0 +1,67 @@
1
+ # Contribute
2
+
3
+ ## Introduction
4
+
5
+ First, thank you for considering contributing to karafka! It's people like you that make the open source community such a great community! 😊
6
+
7
+ We welcome any type of contribution, not only code. You can help with
8
+ - **QA**: file bug reports, the more details you can give the better (e.g. screenshots with the console open)
9
+ - **Marketing**: writing blog posts, howto's, printing stickers, ...
10
+ - **Community**: presenting the project at meetups, organizing a dedicated meetup for the local community, ...
11
+ - **Code**: take a look at the [open issues](issues). Even if you can't write code, commenting on them, showing that you care about a given issue matters. It helps us triage them.
12
+ - **Money**: we welcome financial contributions in full transparency on our [open collective](https://opencollective.com/karafka).
13
+
14
+ ## Your First Contribution
15
+
16
+ Working on your first Pull Request? You can learn how from this *free* series, [How to Contribute to an Open Source Project on GitHub](https://egghead.io/series/how-to-contribute-to-an-open-source-project-on-github).
17
+
18
+ ## Submitting code
19
+
20
+ Any code change should be submitted as a pull request. The description should explain what the code does and give steps to execute it. The pull request should also contain tests.
21
+
22
+ ## Code review process
23
+
24
+ The bigger the pull request, the longer it will take to review and merge. Try to break down large pull requests in smaller chunks that are easier to review and merge.
25
+ It is also always helpful to have some context for your pull request. What was the purpose? Why does it matter to you?
26
+
27
+ ## Financial contributions
28
+
29
+ We also welcome financial contributions in full transparency on our [open collective](https://opencollective.com/karafka).
30
+ Anyone can file an expense. If the expense makes sense for the development of the community, it will be "merged" in the ledger of our open collective by the core contributors and the person who filed the expense will be reimbursed.
31
+
32
+ ## Questions
33
+
34
+ If you have any questions, create an [issue](issue) (protip: do a quick search first to see if someone else didn't ask the same question before!).
35
+ You can also reach us at hello@karafka.opencollective.com.
36
+
37
+ ## Credits
38
+
39
+ ### Contributors
40
+
41
+ Thank you to all the people who have already contributed to karafka!
42
+ <a href="graphs/contributors"><img src="https://opencollective.com/karafka/contributors.svg?width=890" /></a>
43
+
44
+
45
+ ### Backers
46
+
47
+ Thank you to all our backers! [[Become a backer](https://opencollective.com/karafka#backer)]
48
+
49
+ <a href="https://opencollective.com/karafka#backers" target="_blank"><img src="https://opencollective.com/karafka/backers.svg?width=890"></a>
50
+
51
+
52
+ ### Sponsors
53
+
54
+ Thank you to all our sponsors! (please ask your company to also support this open source project by [becoming a sponsor](https://opencollective.com/karafka#sponsor))
55
+
56
+ <a href="https://opencollective.com/karafka/sponsor/0/website" target="_blank"><img src="https://opencollective.com/karafka/sponsor/0/avatar.svg"></a>
57
+ <a href="https://opencollective.com/karafka/sponsor/1/website" target="_blank"><img src="https://opencollective.com/karafka/sponsor/1/avatar.svg"></a>
58
+ <a href="https://opencollective.com/karafka/sponsor/2/website" target="_blank"><img src="https://opencollective.com/karafka/sponsor/2/avatar.svg"></a>
59
+ <a href="https://opencollective.com/karafka/sponsor/3/website" target="_blank"><img src="https://opencollective.com/karafka/sponsor/3/avatar.svg"></a>
60
+ <a href="https://opencollective.com/karafka/sponsor/4/website" target="_blank"><img src="https://opencollective.com/karafka/sponsor/4/avatar.svg"></a>
61
+ <a href="https://opencollective.com/karafka/sponsor/5/website" target="_blank"><img src="https://opencollective.com/karafka/sponsor/5/avatar.svg"></a>
62
+ <a href="https://opencollective.com/karafka/sponsor/6/website" target="_blank"><img src="https://opencollective.com/karafka/sponsor/6/avatar.svg"></a>
63
+ <a href="https://opencollective.com/karafka/sponsor/7/website" target="_blank"><img src="https://opencollective.com/karafka/sponsor/7/avatar.svg"></a>
64
+ <a href="https://opencollective.com/karafka/sponsor/8/website" target="_blank"><img src="https://opencollective.com/karafka/sponsor/8/avatar.svg"></a>
65
+ <a href="https://opencollective.com/karafka/sponsor/9/website" target="_blank"><img src="https://opencollective.com/karafka/sponsor/9/avatar.svg"></a>
66
+
67
+ <!-- This `CONTRIBUTING.md` is based on @nayafia's template https://github.com/nayafia/contributing-template -->
data/Gemfile CHANGED
@@ -1,8 +1,9 @@
1
+ # frozen_string_literal: true
2
+
1
3
  source 'https://rubygems.org'
2
4
 
3
5
  gemspec
4
6
 
5
7
  group :development, :test do
6
- gem 'polishgeeks-dev-tools'
7
8
  gem 'timecop'
8
9
  end
@@ -1,37 +1,28 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- karafka (0.5.0.3)
5
- activesupport (~> 5.0)
6
- celluloid (~> 0.17)
4
+ karafka (0.6.0.rc1)
5
+ activesupport (>= 5.0)
6
+ celluloid
7
7
  dry-configurable (~> 0.7)
8
- dry-validation (~> 0.10.6)
8
+ dry-validation (~> 0.11)
9
9
  envlogic (~> 1.0)
10
- rake (~> 11.3)
11
- ruby-kafka (= 0.3.17)
10
+ rake (>= 11.3)
11
+ ruby-kafka (>= 0.4)
12
12
  sidekiq (>= 4.2)
13
13
  thor (~> 0.19)
14
- waterdrop (~> 0.3.2.4)
15
- worker-glass (~> 0.2)
14
+ waterdrop (>= 0.4)
15
+ yajl-ruby (>= 1.3.0)
16
16
 
17
17
  GEM
18
18
  remote: https://rubygems.org/
19
19
  specs:
20
- activesupport (5.0.2)
20
+ activesupport (5.1.3)
21
21
  concurrent-ruby (~> 1.0, >= 1.0.2)
22
22
  i18n (~> 0.7)
23
23
  minitest (~> 5.1)
24
24
  tzinfo (~> 1.1)
25
- addressable (2.4.0)
26
- ast (2.3.0)
27
- axiom-types (0.1.1)
28
- descendants_tracker (~> 0.0.4)
29
- ice_nine (~> 0.11.0)
30
- thread_safe (~> 0.3, >= 0.3.1)
31
- brakeman (3.3.3)
32
- bundler-audit (0.5.0)
33
- bundler (~> 1.2)
34
- thor (~> 0.18)
25
+ byebug (9.0.6)
35
26
  celluloid (0.17.3)
36
27
  celluloid-essentials
37
28
  celluloid-extras
@@ -49,17 +40,9 @@ GEM
49
40
  timers (>= 4.1.1)
50
41
  celluloid-supervision (0.20.6)
51
42
  timers (>= 4.1.1)
52
- codeclimate-engine-rb (0.3.1)
53
- virtus (~> 1.0)
54
- coderay (1.1.1)
55
- coercible (1.0.0)
56
- descendants_tracker (~> 0.0.1)
57
- colorize (0.8.1)
58
43
  concurrent-ruby (1.0.5)
59
44
  connection_pool (2.2.1)
60
- descendants_tracker (0.0.4)
61
- thread_safe (~> 0.3, >= 0.3.1)
62
- diff-lcs (1.2.5)
45
+ diff-lcs (1.3)
63
46
  docile (1.1.5)
64
47
  dry-configurable (0.7.0)
65
48
  concurrent-ruby (~> 1.0)
@@ -73,7 +56,7 @@ GEM
73
56
  dry-container (~> 0.2, >= 0.2.6)
74
57
  dry-core (~> 0.2)
75
58
  dry-equalizer (~> 0.2)
76
- dry-types (0.10.3)
59
+ dry-types (0.11.1)
77
60
  concurrent-ruby (~> 1.0)
78
61
  dry-configurable (~> 0.1)
79
62
  dry-container (~> 0.3)
@@ -81,163 +64,79 @@ GEM
81
64
  dry-equalizer (~> 0.2)
82
65
  dry-logic (~> 0.4, >= 0.4.0)
83
66
  inflecto (~> 0.0.0, >= 0.0.2)
84
- dry-validation (0.10.7)
67
+ dry-validation (0.11.0)
85
68
  concurrent-ruby (~> 1.0)
86
69
  dry-configurable (~> 0.1, >= 0.1.3)
87
70
  dry-core (~> 0.2, >= 0.2.1)
88
71
  dry-equalizer (~> 0.2)
89
72
  dry-logic (~> 0.4, >= 0.4.0)
90
- dry-types (~> 0.9, >= 0.9.0)
73
+ dry-types (~> 0.11.0)
91
74
  envlogic (1.0.3)
92
75
  activesupport
93
- equalizer (0.0.11)
94
- erubis (2.7.0)
95
- faker (1.6.6)
96
- i18n (~> 0.5)
97
- flay (2.8.0)
98
- erubis (~> 2.7.0)
99
- path_expander (~> 1.0)
100
- ruby_parser (~> 3.0)
101
- sexp_processor (~> 4.0)
102
- flog (4.4.0)
103
- path_expander (~> 1.0)
104
- ruby_parser (~> 3.1, > 3.1.0)
105
- sexp_processor (~> 4.4)
106
- haml (4.0.7)
107
- tilt
108
- haml_lint (0.18.1)
109
- haml (~> 4.0)
110
- rake (>= 10, < 12)
111
- rubocop (>= 0.36.0)
112
- sysexits (~> 1.1)
113
- hitimes (1.2.5)
114
- i18n (0.7.0)
115
- ice_nine (0.11.2)
76
+ ffi (1.9.18)
77
+ gssapi (1.2.0)
78
+ ffi (>= 1.0.1)
79
+ hitimes (1.2.6)
80
+ i18n (0.8.6)
116
81
  inflecto (0.0.2)
117
- json (2.0.2)
118
- launchy (2.4.3)
119
- addressable (~> 2.3)
120
- method_source (0.8.2)
121
- minitest (5.10.1)
82
+ json (2.1.0)
83
+ minitest (5.10.3)
122
84
  null-logger (0.1.4)
123
- parser (2.3.1.2)
124
- ast (~> 2.2)
125
- path_expander (1.0.0)
126
- polishgeeks-dev-tools (1.3.2)
127
- brakeman
128
- bundler-audit
129
- faker
130
- haml_lint
131
- pry
132
- rspec
133
- rubocop
134
- rubocop-rspec
135
- rubycritic
136
- shoulda
137
- simplecov
138
- timecop
139
- yard
140
- powerpack (0.1.1)
141
- pry (0.10.4)
142
- coderay (~> 1.1.0)
143
- method_source (~> 0.8.1)
144
- slop (~> 3.4)
145
85
  rack (2.0.3)
146
86
  rack-protection (2.0.0)
147
87
  rack
148
- rainbow (2.1.0)
149
- rake (11.3.0)
88
+ rake (12.0.0)
150
89
  redis (3.3.3)
151
- reek (4.1.0)
152
- codeclimate-engine-rb (~> 0.3.1)
153
- parser (~> 2.3.1, >= 2.3.1.2)
154
- rainbow (~> 2.0)
155
- rspec (3.5.0)
156
- rspec-core (~> 3.5.0)
157
- rspec-expectations (~> 3.5.0)
158
- rspec-mocks (~> 3.5.0)
159
- rspec-core (3.5.2)
160
- rspec-support (~> 3.5.0)
161
- rspec-expectations (3.5.0)
90
+ rspec (3.6.0)
91
+ rspec-core (~> 3.6.0)
92
+ rspec-expectations (~> 3.6.0)
93
+ rspec-mocks (~> 3.6.0)
94
+ rspec-core (3.6.0)
95
+ rspec-support (~> 3.6.0)
96
+ rspec-expectations (3.6.0)
162
97
  diff-lcs (>= 1.2.0, < 2.0)
163
- rspec-support (~> 3.5.0)
164
- rspec-mocks (3.5.0)
98
+ rspec-support (~> 3.6.0)
99
+ rspec-mocks (3.6.0)
165
100
  diff-lcs (>= 1.2.0, < 2.0)
166
- rspec-support (~> 3.5.0)
167
- rspec-support (3.5.0)
168
- rubocop (0.42.0)
169
- parser (>= 2.3.1.1, < 3.0)
170
- powerpack (~> 0.1)
171
- rainbow (>= 1.99.1, < 3.0)
172
- ruby-progressbar (~> 1.7)
173
- unicode-display_width (~> 1.0, >= 1.0.1)
174
- rubocop-rspec (1.5.3)
175
- rubocop (>= 0.42.0)
176
- ruby-kafka (0.3.17)
177
- ruby-progressbar (1.8.1)
178
- ruby_parser (3.8.2)
179
- sexp_processor (~> 4.1)
180
- rubycritic (2.9.2)
181
- colorize
182
- flay (= 2.8.0)
183
- flog (= 4.4.0)
184
- launchy (= 2.4.3)
185
- parser (= 2.3.1.2)
186
- reek (= 4.1.0)
187
- ruby_parser (~> 3.8)
188
- virtus (~> 1.0)
189
- sexp_processor (4.7.0)
190
- shoulda (3.5.0)
191
- shoulda-context (~> 1.0, >= 1.0.1)
192
- shoulda-matchers (>= 1.4.1, < 3.0)
193
- shoulda-context (1.2.1)
194
- shoulda-matchers (2.8.0)
195
- activesupport (>= 3.0.0)
196
- sidekiq (5.0.3)
101
+ rspec-support (~> 3.6.0)
102
+ rspec-support (3.6.0)
103
+ ruby-kafka (0.4.0)
104
+ gssapi (>= 1.2.0)
105
+ sidekiq (5.0.4)
197
106
  concurrent-ruby (~> 1.0)
198
107
  connection_pool (~> 2.2, >= 2.2.0)
199
108
  rack-protection (>= 1.5.0)
200
109
  redis (~> 3.3, >= 3.3.3)
201
- simplecov (0.12.0)
110
+ simplecov (0.15.0)
202
111
  docile (~> 1.1.0)
203
112
  json (>= 1.8, < 3)
204
113
  simplecov-html (~> 0.10.0)
205
- simplecov-html (0.10.0)
206
- slop (3.6.0)
207
- sysexits (1.2.0)
114
+ simplecov-html (0.10.2)
208
115
  thor (0.19.4)
209
- thread_safe (0.3.5)
210
- tilt (2.0.5)
211
- timecop (0.8.1)
116
+ thread_safe (0.3.6)
117
+ timecop (0.9.1)
212
118
  timers (4.1.2)
213
119
  hitimes
214
120
  tzinfo (1.2.3)
215
121
  thread_safe (~> 0.1)
216
- unicode-display_width (1.1.0)
217
- virtus (1.0.5)
218
- axiom-types (~> 0.1)
219
- coercible (~> 1.0)
220
- descendants_tracker (~> 0.0, >= 0.0.3)
221
- equalizer (~> 0.0, >= 0.0.9)
222
- waterdrop (0.3.2.4)
122
+ waterdrop (0.4.0)
223
123
  bundler
224
124
  connection_pool
225
125
  dry-configurable (~> 0.6)
226
126
  null-logger
227
127
  rake
228
- ruby-kafka
229
- worker-glass (0.2.3)
230
- activesupport
231
- null-logger
232
- yard (0.9.5)
128
+ ruby-kafka (~> 0.4)
129
+ yajl-ruby (1.3.0)
233
130
 
234
131
  PLATFORMS
235
132
  ruby
236
133
 
237
134
  DEPENDENCIES
238
135
  bundler (~> 1.2)
136
+ byebug
239
137
  karafka!
240
- polishgeeks-dev-tools
138
+ rspec (>= 3.6)
139
+ simplecov (>= 0.14)
241
140
  timecop
242
141
 
243
142
  BUNDLED WITH