toot 0.3.0 → 0.4.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/.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.
|