toot 0.3.0 → 0.4.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +5 -5
- data/.gitignore +3 -0
- data/.rubocop.yml +197 -0
- data/.rubocop_todo.yml +19 -0
- data/.ruby-version +1 -0
- data/.travis.yml +21 -2
- data/Appraisals +19 -0
- data/Gemfile +2 -0
- data/Guardfile +53 -0
- data/Rakefile +6 -4
- data/gemfiles/rails_4.2.gemfile +11 -0
- data/gemfiles/rails_5.2.gemfile +11 -0
- data/gemfiles/rails_6.gemfile +11 -0
- data/gemfiles/rails_6.x.gemfile +11 -0
- data/lib/toot/event.rb +10 -1
- data/lib/toot/subscriptions_service.rb +60 -6
- data/lib/toot/version.rb +1 -1
- data/toot.gemspec +24 -17
- metadata +108 -15
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 6f559238d804f77517ddeea5ff60ac9800253ee9e8d7e4884385166f6a337759
|
4
|
+
data.tar.gz: 05c0be1075dfb4854cc5c029b21986496e951f3cc47e6fc26c4ad4c4464fa1dc
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 41dbf57c0c7a091aca9ee850c9d74e7818757483a92c10609142bd6fc0d6a1bae5250eb317ca55fa9e563bc5c007ce8581c185514c160cefde17baff6f7026d3
|
7
|
+
data.tar.gz: ca1187b893dbcd997a4b62246ee6ab336471ce35b180ef715e6a2b743e3e87ac708a62cf80d5afab50b555606796eb0a9a06cf946e528821c06f13f83979ce16
|
data/.gitignore
CHANGED
data/.rubocop.yml
ADDED
@@ -0,0 +1,197 @@
|
|
1
|
+
inherit_from: .rubocop_todo.yml
|
2
|
+
|
3
|
+
AllCops:
|
4
|
+
DisplayCopNames: true
|
5
|
+
TargetRubyVersion: 2.3
|
6
|
+
Exclude:
|
7
|
+
# generated by rails/binstubs
|
8
|
+
- 'bin/**/*'
|
9
|
+
|
10
|
+
# auto generated by rails
|
11
|
+
- 'db/migrate/**/*'
|
12
|
+
- 'db/schema.rb'
|
13
|
+
|
14
|
+
# generated by guard
|
15
|
+
- 'Guardfile'
|
16
|
+
|
17
|
+
# 3rd party
|
18
|
+
- 'vendor/**/*'
|
19
|
+
- 'lib/**/*'
|
20
|
+
# Appraisal gem re-creates these occasionally
|
21
|
+
- gemfiles/*.gemfile
|
22
|
+
|
23
|
+
Style/Documentation:
|
24
|
+
Enabled: false
|
25
|
+
|
26
|
+
Style/BlockDelimiters:
|
27
|
+
Exclude:
|
28
|
+
# we like the `let(:foo) {}` syntax in specs
|
29
|
+
- 'spec/**/*.rb'
|
30
|
+
|
31
|
+
|
32
|
+
Style/ClassAndModuleChildren:
|
33
|
+
EnforcedStyle: compact
|
34
|
+
Exclude:
|
35
|
+
- 'config/application.rb'
|
36
|
+
|
37
|
+
Style/FormatStringToken:
|
38
|
+
EnforcedStyle: template
|
39
|
+
|
40
|
+
Style/RegexpLiteral:
|
41
|
+
Enabled: false
|
42
|
+
|
43
|
+
Metrics/BlockLength:
|
44
|
+
Exclude:
|
45
|
+
# config files where we expect long blocks
|
46
|
+
- 'config/routes.rb'
|
47
|
+
- 'config/initializers/**/*.rb'
|
48
|
+
- 'config/environments/**/*.rb'
|
49
|
+
# spec files that might have a big describe
|
50
|
+
- 'spec/**/*.rb'
|
51
|
+
# jbuilder DSL files
|
52
|
+
- '**/*.jbuilder'
|
53
|
+
|
54
|
+
Style/BracesAroundHashParameters:
|
55
|
+
Enabled: false
|
56
|
+
|
57
|
+
Lint/AssignmentInCondition:
|
58
|
+
Enabled: false
|
59
|
+
|
60
|
+
Style/EmptyMethod:
|
61
|
+
EnforcedStyle: expanded
|
62
|
+
|
63
|
+
Style/Alias:
|
64
|
+
EnforcedStyle: prefer_alias_method
|
65
|
+
|
66
|
+
Style/NumericPredicate:
|
67
|
+
EnforcedStyle: comparison
|
68
|
+
|
69
|
+
Layout/AlignParameters:
|
70
|
+
EnforcedStyle: with_fixed_indentation
|
71
|
+
|
72
|
+
Layout/IndentFirstHashElement:
|
73
|
+
EnforcedStyle: consistent
|
74
|
+
|
75
|
+
Layout/AlignHash:
|
76
|
+
# allow coder to get around alignment rules by explicitly defining the hash param
|
77
|
+
EnforcedLastArgumentHashStyle: ignore_explicit
|
78
|
+
|
79
|
+
Layout/MultilineMethodCallIndentation:
|
80
|
+
EnforcedStyle: indented
|
81
|
+
|
82
|
+
Layout/MultilineOperationIndentation:
|
83
|
+
EnforcedStyle: indented
|
84
|
+
|
85
|
+
# These are all the cops that are disabled in the default configuration.
|
86
|
+
|
87
|
+
Layout/FirstArrayElementLineBreak:
|
88
|
+
Description: >-
|
89
|
+
Checks for a line break before the first element in a
|
90
|
+
multi-line array.
|
91
|
+
Enabled: true
|
92
|
+
|
93
|
+
Layout/FirstHashElementLineBreak:
|
94
|
+
Description: >-
|
95
|
+
Checks for a line break before the first element in a
|
96
|
+
multi-line hash.
|
97
|
+
Enabled: true
|
98
|
+
|
99
|
+
Layout/FirstMethodArgumentLineBreak:
|
100
|
+
Description: >-
|
101
|
+
Checks for a line break before the first argument in a
|
102
|
+
multi-line method call.
|
103
|
+
Enabled: false
|
104
|
+
|
105
|
+
Layout/FirstMethodParameterLineBreak:
|
106
|
+
Description: >-
|
107
|
+
Checks for a line break before the first parameter in a
|
108
|
+
multi-line method parameter definition.
|
109
|
+
Enabled: true
|
110
|
+
|
111
|
+
Layout/MultilineAssignmentLayout:
|
112
|
+
Description: 'Check for a newline after the assignment operator in multi-line assignments.'
|
113
|
+
StyleGuide: '#indent-conditional-assignment'
|
114
|
+
Enabled: true
|
115
|
+
|
116
|
+
Style/AutoResourceCleanup:
|
117
|
+
Description: 'Suggests the usage of an auto resource cleanup version of a method (if available).'
|
118
|
+
Enabled: true
|
119
|
+
|
120
|
+
Style/CollectionMethods:
|
121
|
+
Description: 'Preferred collection methods.'
|
122
|
+
StyleGuide: '#map-find-select-reduce-size'
|
123
|
+
Enabled: true
|
124
|
+
|
125
|
+
Style/Copyright:
|
126
|
+
Description: 'Include a copyright notice in each file before any code.'
|
127
|
+
Enabled: false
|
128
|
+
|
129
|
+
Style/DocumentationMethod:
|
130
|
+
Description: 'Public methods.'
|
131
|
+
Enabled: false
|
132
|
+
Exclude:
|
133
|
+
- 'spec/**/*'
|
134
|
+
- 'test/**/*'
|
135
|
+
|
136
|
+
Style/ImplicitRuntimeError:
|
137
|
+
Description: >-
|
138
|
+
Use `raise` or `fail` with an explicit exception class and
|
139
|
+
message, rather than just a message.
|
140
|
+
Enabled: true
|
141
|
+
|
142
|
+
Style/InlineComment:
|
143
|
+
Description: 'Avoid trailing inline comments.'
|
144
|
+
Enabled: true
|
145
|
+
|
146
|
+
Style/MethodCallWithArgsParentheses:
|
147
|
+
Description: 'Use parentheses for method calls with arguments.'
|
148
|
+
StyleGuide: '#method-invocation-parens'
|
149
|
+
Enabled: false
|
150
|
+
|
151
|
+
Style/MethodCalledOnDoEndBlock:
|
152
|
+
Description: 'Avoid chaining a method call on a do...end block.'
|
153
|
+
StyleGuide: '#single-line-blocks'
|
154
|
+
# TODO: enable after fixing todos
|
155
|
+
Enabled: false
|
156
|
+
Exclude:
|
157
|
+
- 'spec/**/*'
|
158
|
+
|
159
|
+
Style/MissingElse:
|
160
|
+
Description: >-
|
161
|
+
Require if/case expressions to have an else branches.
|
162
|
+
If enabled, it is recommended that
|
163
|
+
Style/UnlessElse and Style/EmptyElse be enabled.
|
164
|
+
This will conflict with Style/EmptyElse if
|
165
|
+
Style/EmptyElse is configured to style "both"
|
166
|
+
Enabled: false
|
167
|
+
EnforcedStyle: both
|
168
|
+
SupportedStyles:
|
169
|
+
# if - warn when an if expression is missing an else branch
|
170
|
+
# case - warn when a case expression is missing an else branch
|
171
|
+
# both - warn when an if or case expression is missing an else branch
|
172
|
+
- if
|
173
|
+
- case
|
174
|
+
- both
|
175
|
+
|
176
|
+
Style/OptionHash:
|
177
|
+
Description: "Don't use option hashes when you can use keyword arguments."
|
178
|
+
Enabled: true
|
179
|
+
|
180
|
+
Style/ReturnNil:
|
181
|
+
Description: 'Use return instead of return nil.'
|
182
|
+
Enabled: true
|
183
|
+
|
184
|
+
Style/Send:
|
185
|
+
Description: 'Prefer `Object#__send__` or `Object#public_send` to `send`, as `send` may overlap with existing methods.'
|
186
|
+
StyleGuide: '#prefer-public-send'
|
187
|
+
Enabled: true
|
188
|
+
Exclude:
|
189
|
+
- 'spec/**/*'
|
190
|
+
|
191
|
+
Style/StringMethods:
|
192
|
+
Description: 'Checks if configured preferred methods are used over non-preferred.'
|
193
|
+
Enabled: false
|
194
|
+
|
195
|
+
Style/SingleLineBlockParams:
|
196
|
+
Description: 'Enforces the names of some block params.'
|
197
|
+
Enabled: false
|
data/.rubocop_todo.yml
ADDED
@@ -0,0 +1,19 @@
|
|
1
|
+
# This configuration was generated by
|
2
|
+
# `rubocop --auto-gen-config`
|
3
|
+
# on 2019-10-10 10:48:09 -0500 using RuboCop version 0.75.0.
|
4
|
+
# The point is for the user to remove these configuration records
|
5
|
+
# one by one as the offenses are removed from the code base.
|
6
|
+
# Note that changes in the inspected code, or installation of new
|
7
|
+
# versions of RuboCop, may require this file to be generated again.
|
8
|
+
|
9
|
+
# Offense count: 2
|
10
|
+
Lint/AmbiguousBlockAssociation:
|
11
|
+
Exclude:
|
12
|
+
- 'spec/toot/registers_subscriptions_spec.rb'
|
13
|
+
|
14
|
+
# Offense count: 23
|
15
|
+
# Cop supports --auto-correct.
|
16
|
+
# Configuration parameters: AutoCorrect, AllowHeredoc, AllowURI, URISchemes, IgnoreCopDirectives, IgnoredPatterns.
|
17
|
+
# URISchemes: http, https
|
18
|
+
Metrics/LineLength:
|
19
|
+
Max: 116
|
data/.ruby-version
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
2.5.7
|
data/.travis.yml
CHANGED
@@ -1,4 +1,23 @@
|
|
1
1
|
language: ruby
|
2
|
+
services:
|
3
|
+
- redis-server
|
2
4
|
rvm:
|
3
|
-
- 2.
|
4
|
-
|
5
|
+
- 2.3.8
|
6
|
+
- 2.5.7
|
7
|
+
gemfile:
|
8
|
+
- gemfiles/rails_6.x.gemfile
|
9
|
+
- gemfiles/rails_5.2.gemfile
|
10
|
+
- gemfiles/rails_4.2.gemfile
|
11
|
+
matrix:
|
12
|
+
exclude:
|
13
|
+
# Rails 6 & sidekiq 6 incompatible with ruby 2.3
|
14
|
+
- rvm: 2.3.8
|
15
|
+
gemfile: gemfiles/rails_6.x.gemfile
|
16
|
+
jobs:
|
17
|
+
include:
|
18
|
+
- stage: lint
|
19
|
+
script:
|
20
|
+
- bundle exec rubocop
|
21
|
+
# Keep in mind to overwrite these here
|
22
|
+
rvm: 2.5
|
23
|
+
gemfile: gemfiles/rails_5.2.gemfile
|
data/Appraisals
ADDED
@@ -0,0 +1,19 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
appraise 'rails-6.x' do
|
4
|
+
gem 'rails', '~> 6.0'
|
5
|
+
gem 'railties', '~> 6.0'
|
6
|
+
gem 'sidekiq', '>= 6'
|
7
|
+
end
|
8
|
+
|
9
|
+
appraise 'rails-5.2' do
|
10
|
+
gem 'rails', '~> 5.2.0'
|
11
|
+
gem 'railties', '~> 5.2.0'
|
12
|
+
gem 'sidekiq', '< 6'
|
13
|
+
end
|
14
|
+
|
15
|
+
appraise 'rails-4.2' do
|
16
|
+
gem 'rails', '~> 4.2'
|
17
|
+
gem 'railties', '~> 4.2'
|
18
|
+
gem 'sidekiq', '< 6'
|
19
|
+
end
|
data/Gemfile
CHANGED
data/Guardfile
ADDED
@@ -0,0 +1,53 @@
|
|
1
|
+
group :red_green_refactor, halt_on_fail: true do
|
2
|
+
guard :rspec, cmd: 'bundle exec rspec' do
|
3
|
+
require 'guard/rspec/dsl'
|
4
|
+
dsl = Guard::RSpec::Dsl.new(self)
|
5
|
+
|
6
|
+
# RSpec files
|
7
|
+
rspec = dsl.rspec
|
8
|
+
watch(rspec.spec_helper) { rspec.spec_dir }
|
9
|
+
# watch(rspec.spec_support) { rspec.spec_dir }
|
10
|
+
watch(rspec.spec_files)
|
11
|
+
|
12
|
+
# Ruby files
|
13
|
+
ruby = dsl.ruby
|
14
|
+
watch(%r{lib/wcc/(.+)\.rb$}) { |m| rspec.spec.call("wcc/#{m[1]}") }
|
15
|
+
watch(%r{lib/generators/(.+)\.rb$}) { |m| rspec.spec.call("generators/#{m[1]}") }
|
16
|
+
|
17
|
+
# Rails files
|
18
|
+
rails = dsl.rails(view_extensions: %w[erb haml slim])
|
19
|
+
dsl.watch_spec_files_for(rails.app_files)
|
20
|
+
dsl.watch_spec_files_for(rails.views)
|
21
|
+
|
22
|
+
watch(rails.controllers) do |m|
|
23
|
+
[
|
24
|
+
rspec.spec.call("routing/#{m[1]}_routing"),
|
25
|
+
rspec.spec.call("controllers/#{m[1]}_controller"),
|
26
|
+
rspec.spec.call("acceptance/#{m[1]}")
|
27
|
+
]
|
28
|
+
end
|
29
|
+
|
30
|
+
# Rails config changes
|
31
|
+
watch(rails.spec_helper) { rspec.spec_dir }
|
32
|
+
watch(rails.routes) { "#{rspec.spec_dir}/routing" }
|
33
|
+
watch(rails.app_controller) { "#{rspec.spec_dir}/controllers" }
|
34
|
+
|
35
|
+
# Capybara features specs
|
36
|
+
watch(rails.view_dirs) { |m| rspec.spec.call("features/#{m[1]}") }
|
37
|
+
watch(rails.layouts) { |m| rspec.spec.call("features/#{m[1]}") }
|
38
|
+
end
|
39
|
+
|
40
|
+
guard :rubocop, cli: ['--display-cop-names'] do
|
41
|
+
watch(%r{.+\.rb$})
|
42
|
+
watch(%r{(?:.+/)?\.rubocop(?:_todo)?\.yml$}) { |m| File.dirname(m[0]) }
|
43
|
+
end
|
44
|
+
end
|
45
|
+
|
46
|
+
group :autofix do
|
47
|
+
guard :rubocop, all_on_start: false, cli: ['--auto-correct', '--display-cop-names'] do
|
48
|
+
watch(%r{.+\.rb$})
|
49
|
+
watch(%r{(?:.+/)?\.rubocop(?:_todo)?\.yml$}) { |m| File.dirname(m[0]) }
|
50
|
+
end
|
51
|
+
end
|
52
|
+
|
53
|
+
scope group: :red_green_refactor
|
data/Rakefile
CHANGED
@@ -1,12 +1,14 @@
|
|
1
|
-
|
2
|
-
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'bundler/gem_tasks'
|
4
|
+
require 'rspec/core/rake_task'
|
3
5
|
|
4
6
|
RSpec::Core::RakeTask.new(:spec)
|
5
7
|
|
6
|
-
task :
|
8
|
+
task default: :spec
|
7
9
|
|
8
10
|
task :environment do
|
9
|
-
$LOAD_PATH.unshift File.expand_path('
|
11
|
+
$LOAD_PATH.unshift File.expand_path('lib', __dir__)
|
10
12
|
require 'toot'
|
11
13
|
end
|
12
14
|
|
data/lib/toot/event.rb
CHANGED
@@ -14,7 +14,7 @@ module Toot
|
|
14
14
|
}
|
15
15
|
|
16
16
|
def initialize(args={})
|
17
|
-
args = DEFAULTS.().merge(args
|
17
|
+
args = DEFAULTS.().merge(_symbolize_keys(args))
|
18
18
|
@id = args[:id]
|
19
19
|
@timestamp = args[:timestamp]
|
20
20
|
@payload = args[:payload]
|
@@ -42,5 +42,14 @@ module Toot
|
|
42
42
|
def [](key)
|
43
43
|
payload[key]
|
44
44
|
end
|
45
|
+
|
46
|
+
private
|
47
|
+
|
48
|
+
def _symbolize_keys(h)
|
49
|
+
h.inject({}) do |options, (key, value)|
|
50
|
+
options[(key.to_sym rescue key) || key] = value
|
51
|
+
options
|
52
|
+
end
|
53
|
+
end
|
45
54
|
end
|
46
55
|
end
|
@@ -1,9 +1,43 @@
|
|
1
1
|
module Toot
|
2
2
|
class SubscriptionsService
|
3
3
|
|
4
|
-
def call(env)
|
4
|
+
def self.call(env)
|
5
5
|
request = Rack::Request.new(env)
|
6
6
|
response = Rack::Response.new
|
7
|
+
me = new(request, response)
|
8
|
+
|
9
|
+
if me.respond_to?(request.request_method.downcase)
|
10
|
+
me.public_send(request.request_method.downcase)
|
11
|
+
else
|
12
|
+
# Method not allowed
|
13
|
+
response.status = 405
|
14
|
+
end
|
15
|
+
|
16
|
+
response.finish
|
17
|
+
end
|
18
|
+
|
19
|
+
attr_reader :request, :response
|
20
|
+
def initialize(request, response)
|
21
|
+
@request = request
|
22
|
+
@response = response
|
23
|
+
end
|
24
|
+
|
25
|
+
def get
|
26
|
+
accept = request.env['HTTP_ACCEPT']
|
27
|
+
|
28
|
+
if accept.include?('application/json')
|
29
|
+
response.header['Content-Type'] = 'application/json'
|
30
|
+
response.write({
|
31
|
+
channels: channels,
|
32
|
+
subscriptions: subscriptions,
|
33
|
+
}.to_json)
|
34
|
+
return
|
35
|
+
end
|
36
|
+
|
37
|
+
response.status = 406
|
38
|
+
end
|
39
|
+
|
40
|
+
def post
|
7
41
|
json = parse_body_json(request)
|
8
42
|
|
9
43
|
if json["channel"] && json["callback_url"]
|
@@ -13,19 +47,39 @@ module Toot
|
|
13
47
|
else
|
14
48
|
response.status = 422
|
15
49
|
end
|
16
|
-
|
17
|
-
response.finish
|
18
50
|
end
|
19
51
|
|
20
|
-
def
|
21
|
-
|
52
|
+
def delete
|
53
|
+
channel = request.params['channel']
|
54
|
+
callback_url = request.params['callback_url']
|
55
|
+
if channel.blank? || callback_url.blank?
|
56
|
+
response.status = 400
|
57
|
+
return
|
58
|
+
end
|
59
|
+
|
60
|
+
result = Toot.redis do |r|
|
61
|
+
r.srem channel, callback_url
|
62
|
+
end
|
63
|
+
|
64
|
+
response.status = result ? 204 : 404
|
22
65
|
end
|
23
66
|
|
24
|
-
private
|
67
|
+
private
|
68
|
+
|
69
|
+
def parse_body_json(request)
|
25
70
|
JSON.parse(request.body.read)
|
26
71
|
rescue JSON::ParserError
|
27
72
|
{}
|
28
73
|
end
|
29
74
|
|
75
|
+
def channels
|
76
|
+
@channels ||= Toot.redis { |r| r.keys(Toot.config.channel_prefix + "*") }
|
77
|
+
end
|
78
|
+
|
79
|
+
def subscriptions
|
80
|
+
@subscriptions ||= channels.each_with_object({}) do |ch, h|
|
81
|
+
h[ch] = Toot.redis { |r| r.smembers ch }
|
82
|
+
end
|
83
|
+
end
|
30
84
|
end
|
31
85
|
end
|
data/lib/toot/version.rb
CHANGED
data/toot.gemspec
CHANGED
@@ -1,29 +1,36 @@
|
|
1
|
-
#
|
2
|
-
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
lib = File.expand_path('lib', __dir__)
|
3
4
|
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
4
5
|
require 'toot/version'
|
5
6
|
|
6
7
|
Gem::Specification.new do |spec|
|
7
|
-
spec.name =
|
8
|
+
spec.name = 'toot'
|
8
9
|
spec.version = Toot::VERSION
|
9
|
-
spec.authors = [
|
10
|
-
spec.email = [
|
10
|
+
spec.authors = ['Watermark Dev']
|
11
|
+
spec.email = ['dev@watermark.org']
|
11
12
|
|
12
|
-
spec.summary =
|
13
|
-
spec.description =
|
14
|
-
spec.homepage =
|
13
|
+
spec.summary = 'Send and receive events from remote services over HTTP.'
|
14
|
+
spec.description = 'Send and receive events from remote services over HTTP.'
|
15
|
+
spec.homepage = 'https://github.com/watermarkchurch/toot'
|
15
16
|
|
16
17
|
spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
|
17
|
-
spec.bindir =
|
18
|
+
spec.bindir = 'exe'
|
18
19
|
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
19
|
-
spec.require_paths = [
|
20
|
+
spec.require_paths = ['lib']
|
20
21
|
|
21
|
-
spec.add_dependency
|
22
|
-
spec.add_dependency
|
23
|
-
spec.add_dependency
|
22
|
+
spec.add_dependency 'faraday', '<1'
|
23
|
+
spec.add_dependency 'rack', '>=1'
|
24
|
+
spec.add_dependency 'sidekiq', '>=2'
|
24
25
|
|
25
|
-
spec.add_development_dependency
|
26
|
-
spec.add_development_dependency
|
27
|
-
spec.add_development_dependency
|
28
|
-
spec.add_development_dependency
|
26
|
+
spec.add_development_dependency 'appraisal'
|
27
|
+
spec.add_development_dependency 'bundler', '~> 1.10'
|
28
|
+
spec.add_development_dependency 'coveralls'
|
29
|
+
spec.add_development_dependency 'guard'
|
30
|
+
spec.add_development_dependency 'guard-rspec'
|
31
|
+
spec.add_development_dependency 'guard-rubocop'
|
32
|
+
spec.add_development_dependency 'rake', '~> 10.0'
|
33
|
+
spec.add_development_dependency 'rspec'
|
34
|
+
spec.add_development_dependency 'rubocop', '~> 0.75.0'
|
35
|
+
spec.add_development_dependency 'webmock'
|
29
36
|
end
|
metadata
CHANGED
@@ -1,29 +1,29 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: toot
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.4.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
|
-
-
|
7
|
+
- Watermark Dev
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2019-10-16 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
|
-
name:
|
14
|
+
name: faraday
|
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: rack
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
@@ -39,19 +39,33 @@ dependencies:
|
|
39
39
|
- !ruby/object:Gem::Version
|
40
40
|
version: '1'
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
|
-
name:
|
42
|
+
name: sidekiq
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
|
-
- - "
|
45
|
+
- - ">="
|
46
46
|
- !ruby/object:Gem::Version
|
47
|
-
version: '
|
47
|
+
version: '2'
|
48
48
|
type: :runtime
|
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: '2'
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: appraisal
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - ">="
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '0'
|
62
|
+
type: :development
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - ">="
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '0'
|
55
69
|
- !ruby/object:Gem::Dependency
|
56
70
|
name: bundler
|
57
71
|
requirement: !ruby/object:Gem::Requirement
|
@@ -66,6 +80,62 @@ dependencies:
|
|
66
80
|
- - "~>"
|
67
81
|
- !ruby/object:Gem::Version
|
68
82
|
version: '1.10'
|
83
|
+
- !ruby/object:Gem::Dependency
|
84
|
+
name: coveralls
|
85
|
+
requirement: !ruby/object:Gem::Requirement
|
86
|
+
requirements:
|
87
|
+
- - ">="
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
version: '0'
|
90
|
+
type: :development
|
91
|
+
prerelease: false
|
92
|
+
version_requirements: !ruby/object:Gem::Requirement
|
93
|
+
requirements:
|
94
|
+
- - ">="
|
95
|
+
- !ruby/object:Gem::Version
|
96
|
+
version: '0'
|
97
|
+
- !ruby/object:Gem::Dependency
|
98
|
+
name: guard
|
99
|
+
requirement: !ruby/object:Gem::Requirement
|
100
|
+
requirements:
|
101
|
+
- - ">="
|
102
|
+
- !ruby/object:Gem::Version
|
103
|
+
version: '0'
|
104
|
+
type: :development
|
105
|
+
prerelease: false
|
106
|
+
version_requirements: !ruby/object:Gem::Requirement
|
107
|
+
requirements:
|
108
|
+
- - ">="
|
109
|
+
- !ruby/object:Gem::Version
|
110
|
+
version: '0'
|
111
|
+
- !ruby/object:Gem::Dependency
|
112
|
+
name: guard-rspec
|
113
|
+
requirement: !ruby/object:Gem::Requirement
|
114
|
+
requirements:
|
115
|
+
- - ">="
|
116
|
+
- !ruby/object:Gem::Version
|
117
|
+
version: '0'
|
118
|
+
type: :development
|
119
|
+
prerelease: false
|
120
|
+
version_requirements: !ruby/object:Gem::Requirement
|
121
|
+
requirements:
|
122
|
+
- - ">="
|
123
|
+
- !ruby/object:Gem::Version
|
124
|
+
version: '0'
|
125
|
+
- !ruby/object:Gem::Dependency
|
126
|
+
name: guard-rubocop
|
127
|
+
requirement: !ruby/object:Gem::Requirement
|
128
|
+
requirements:
|
129
|
+
- - ">="
|
130
|
+
- !ruby/object:Gem::Version
|
131
|
+
version: '0'
|
132
|
+
type: :development
|
133
|
+
prerelease: false
|
134
|
+
version_requirements: !ruby/object:Gem::Requirement
|
135
|
+
requirements:
|
136
|
+
- - ">="
|
137
|
+
- !ruby/object:Gem::Version
|
138
|
+
version: '0'
|
69
139
|
- !ruby/object:Gem::Dependency
|
70
140
|
name: rake
|
71
141
|
requirement: !ruby/object:Gem::Requirement
|
@@ -94,6 +164,20 @@ dependencies:
|
|
94
164
|
- - ">="
|
95
165
|
- !ruby/object:Gem::Version
|
96
166
|
version: '0'
|
167
|
+
- !ruby/object:Gem::Dependency
|
168
|
+
name: rubocop
|
169
|
+
requirement: !ruby/object:Gem::Requirement
|
170
|
+
requirements:
|
171
|
+
- - "~>"
|
172
|
+
- !ruby/object:Gem::Version
|
173
|
+
version: 0.75.0
|
174
|
+
type: :development
|
175
|
+
prerelease: false
|
176
|
+
version_requirements: !ruby/object:Gem::Requirement
|
177
|
+
requirements:
|
178
|
+
- - "~>"
|
179
|
+
- !ruby/object:Gem::Version
|
180
|
+
version: 0.75.0
|
97
181
|
- !ruby/object:Gem::Dependency
|
98
182
|
name: webmock
|
99
183
|
requirement: !ruby/object:Gem::Requirement
|
@@ -110,21 +194,30 @@ dependencies:
|
|
110
194
|
version: '0'
|
111
195
|
description: Send and receive events from remote services over HTTP.
|
112
196
|
email:
|
113
|
-
-
|
197
|
+
- dev@watermark.org
|
114
198
|
executables: []
|
115
199
|
extensions: []
|
116
200
|
extra_rdoc_files: []
|
117
201
|
files:
|
118
202
|
- ".gitignore"
|
119
203
|
- ".rspec"
|
204
|
+
- ".rubocop.yml"
|
205
|
+
- ".rubocop_todo.yml"
|
206
|
+
- ".ruby-version"
|
120
207
|
- ".travis.yml"
|
208
|
+
- Appraisals
|
121
209
|
- Gemfile
|
210
|
+
- Guardfile
|
122
211
|
- README.md
|
123
212
|
- Rakefile
|
124
213
|
- bin/console
|
125
214
|
- bin/rspec
|
126
215
|
- bin/setup
|
127
216
|
- circle.yml
|
217
|
+
- gemfiles/rails_4.2.gemfile
|
218
|
+
- gemfiles/rails_5.2.gemfile
|
219
|
+
- gemfiles/rails_6.gemfile
|
220
|
+
- gemfiles/rails_6.x.gemfile
|
128
221
|
- lib/tasks/toot.rake
|
129
222
|
- lib/toot.rb
|
130
223
|
- lib/toot/calls_event_callback.rb
|
@@ -159,7 +252,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
159
252
|
version: '0'
|
160
253
|
requirements: []
|
161
254
|
rubyforge_project:
|
162
|
-
rubygems_version: 2.
|
255
|
+
rubygems_version: 2.7.6.2
|
163
256
|
signing_key:
|
164
257
|
specification_version: 4
|
165
258
|
summary: Send and receive events from remote services over HTTP.
|