capistrano2-zabbix 0.1.2

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 40bb07fb11b83db26ea99ab1d6d585a926738fbb
4
+ data.tar.gz: e52966615eda20f05695fbdd07f0b11e4dae40b0
5
+ SHA512:
6
+ metadata.gz: 4c56384f0342832ad59cd5985cde5a794c01abb5cab32da2fb88adec0edbcc7334f0b19b91939496b6f40af11f8d63887c4a7834ca239bd78c3f4d7ee91f8480
7
+ data.tar.gz: 482f88799b86020281cd364c873f1ba4752d9e0c77fdb92023f86b9062a472b254fcb7babee9e4bf9def17dd57f98457d2302ba37e6c8f243d6eb90d92593160
@@ -0,0 +1,5 @@
1
+ lib/**/*.rb
2
+ bin/*
3
+ -
4
+ features/**/*.feature
5
+ LICENSE.txt
data/.rspec ADDED
@@ -0,0 +1 @@
1
+ --color
@@ -0,0 +1,8 @@
1
+ AllCops:
2
+ Exclude:
3
+ - 'capistrano2-zabbix.gemspec'
4
+
5
+ Style/FileName:
6
+ Exclude:
7
+ - 'spec/capistrano2-zabbix_spec.rb'
8
+ - 'lib/capistrano2-zabbix.rb'
@@ -0,0 +1 @@
1
+ ruby-2.2.0
data/Gemfile ADDED
@@ -0,0 +1,19 @@
1
+ source 'http://rubygems.org'
2
+
3
+ gem 'zabbixapi', ['>=2.2.0', '<2.3.0']
4
+ gem 'capistrano', '~> 2.0'
5
+
6
+ group :development do
7
+ gem 'rspec', '~> 3.2'
8
+ gem 'yard', '~> 0.7'
9
+ gem 'rdoc', '~> 3.12'
10
+ gem 'bundler', '~> 1.0'
11
+ gem 'jeweler', '~> 2.0'
12
+ gem 'simplecov', '~> 0.10'
13
+ gem 'vcr', '~> 2.9'
14
+ gem 'webmock', '~> 1.21'
15
+ gem 'pry', '~> 0.10'
16
+ gem 'guard-rubocop', '~> 1.2'
17
+ gem 'guard', '~> 2.12'
18
+ gem 'guard-rspec', '~> 4.5'
19
+ end
@@ -0,0 +1,169 @@
1
+ GEM
2
+ remote: http://rubygems.org/
3
+ specs:
4
+ addressable (2.3.8)
5
+ ast (2.0.0)
6
+ astrolabe (1.3.0)
7
+ parser (>= 2.2.0.pre.3, < 3.0)
8
+ builder (3.2.2)
9
+ capistrano (2.15.5)
10
+ highline
11
+ net-scp (>= 1.0.0)
12
+ net-sftp (>= 2.0.0)
13
+ net-ssh (>= 2.0.14)
14
+ net-ssh-gateway (>= 1.1.0)
15
+ celluloid (0.16.0)
16
+ timers (~> 4.0.0)
17
+ coderay (1.1.0)
18
+ crack (0.4.2)
19
+ safe_yaml (~> 1.0.0)
20
+ descendants_tracker (0.0.4)
21
+ thread_safe (~> 0.3, >= 0.3.1)
22
+ diff-lcs (1.2.5)
23
+ docile (1.1.5)
24
+ faraday (0.9.1)
25
+ multipart-post (>= 1.2, < 3)
26
+ ffi (1.9.8)
27
+ formatador (0.2.5)
28
+ git (1.2.9.1)
29
+ github_api (0.12.3)
30
+ addressable (~> 2.3)
31
+ descendants_tracker (~> 0.0.4)
32
+ faraday (~> 0.8, < 0.10)
33
+ hashie (>= 3.3)
34
+ multi_json (>= 1.7.5, < 2.0)
35
+ nokogiri (~> 1.6.3)
36
+ oauth2
37
+ guard (2.12.5)
38
+ formatador (>= 0.2.4)
39
+ listen (~> 2.7)
40
+ lumberjack (~> 1.0)
41
+ nenv (~> 0.1)
42
+ notiffany (~> 0.0)
43
+ pry (>= 0.9.12)
44
+ shellany (~> 0.0)
45
+ thor (>= 0.18.1)
46
+ guard-compat (1.2.1)
47
+ guard-rspec (4.5.0)
48
+ guard (~> 2.1)
49
+ guard-compat (~> 1.1)
50
+ rspec (>= 2.99.0, < 4.0)
51
+ guard-rubocop (1.2.0)
52
+ guard (~> 2.0)
53
+ rubocop (~> 0.20)
54
+ hashie (3.4.1)
55
+ highline (1.7.2)
56
+ hitimes (1.2.2)
57
+ jeweler (2.0.1)
58
+ builder
59
+ bundler (>= 1.0)
60
+ git (>= 1.2.5)
61
+ github_api
62
+ highline (>= 1.6.15)
63
+ nokogiri (>= 1.5.10)
64
+ rake
65
+ rdoc
66
+ json (1.8.2)
67
+ jwt (1.5.0)
68
+ listen (2.10.0)
69
+ celluloid (~> 0.16.0)
70
+ rb-fsevent (>= 0.9.3)
71
+ rb-inotify (>= 0.9)
72
+ lumberjack (1.0.9)
73
+ method_source (0.8.2)
74
+ mini_portile (0.6.2)
75
+ multi_json (1.11.0)
76
+ multi_xml (0.5.5)
77
+ multipart-post (2.0.0)
78
+ nenv (0.2.0)
79
+ net-scp (1.2.1)
80
+ net-ssh (>= 2.6.5)
81
+ net-sftp (2.1.2)
82
+ net-ssh (>= 2.6.5)
83
+ net-ssh (2.9.2)
84
+ net-ssh-gateway (1.2.0)
85
+ net-ssh (>= 2.6.5)
86
+ nokogiri (1.6.6.2)
87
+ mini_portile (~> 0.6.0)
88
+ notiffany (0.0.6)
89
+ nenv (~> 0.1)
90
+ shellany (~> 0.0)
91
+ oauth2 (1.0.0)
92
+ faraday (>= 0.8, < 0.10)
93
+ jwt (~> 1.0)
94
+ multi_json (~> 1.3)
95
+ multi_xml (~> 0.5)
96
+ rack (~> 1.2)
97
+ parser (2.2.2.2)
98
+ ast (>= 1.1, < 3.0)
99
+ powerpack (0.1.1)
100
+ pry (0.10.1)
101
+ coderay (~> 1.1.0)
102
+ method_source (~> 0.8.1)
103
+ slop (~> 3.4)
104
+ rack (1.6.1)
105
+ rainbow (2.0.0)
106
+ rake (10.4.2)
107
+ rb-fsevent (0.9.4)
108
+ rb-inotify (0.9.5)
109
+ ffi (>= 0.5.0)
110
+ rdoc (3.12.2)
111
+ json (~> 1.4)
112
+ rspec (3.2.0)
113
+ rspec-core (~> 3.2.0)
114
+ rspec-expectations (~> 3.2.0)
115
+ rspec-mocks (~> 3.2.0)
116
+ rspec-core (3.2.3)
117
+ rspec-support (~> 3.2.0)
118
+ rspec-expectations (3.2.1)
119
+ diff-lcs (>= 1.2.0, < 2.0)
120
+ rspec-support (~> 3.2.0)
121
+ rspec-mocks (3.2.1)
122
+ diff-lcs (>= 1.2.0, < 2.0)
123
+ rspec-support (~> 3.2.0)
124
+ rspec-support (3.2.2)
125
+ rubocop (0.31.0)
126
+ astrolabe (~> 1.3)
127
+ parser (>= 2.2.2.1, < 3.0)
128
+ powerpack (~> 0.1)
129
+ rainbow (>= 1.99.1, < 3.0)
130
+ ruby-progressbar (~> 1.4)
131
+ ruby-progressbar (1.7.5)
132
+ safe_yaml (1.0.4)
133
+ shellany (0.0.1)
134
+ simplecov (0.10.0)
135
+ docile (~> 1.1.0)
136
+ json (~> 1.8)
137
+ simplecov-html (~> 0.10.0)
138
+ simplecov-html (0.10.0)
139
+ slop (3.6.0)
140
+ thor (0.19.1)
141
+ thread_safe (0.3.5)
142
+ timers (4.0.1)
143
+ hitimes
144
+ vcr (2.9.3)
145
+ webmock (1.21.0)
146
+ addressable (>= 2.3.6)
147
+ crack (>= 0.3.2)
148
+ yard (0.8.7.6)
149
+ zabbixapi (2.2.2)
150
+ json (~> 1.6, >= 1.6.0)
151
+
152
+ PLATFORMS
153
+ ruby
154
+
155
+ DEPENDENCIES
156
+ bundler (~> 1.0)
157
+ capistrano (~> 2.0)
158
+ guard (~> 2.12)
159
+ guard-rspec (~> 4.5)
160
+ guard-rubocop (~> 1.2)
161
+ jeweler (~> 2.0)
162
+ pry (~> 0.10)
163
+ rdoc (~> 3.12)
164
+ rspec (~> 3.2)
165
+ simplecov (~> 0.10)
166
+ vcr (~> 2.9)
167
+ webmock (~> 1.21)
168
+ yard (~> 0.7)
169
+ zabbixapi (>= 2.2.0, < 2.3.0)
@@ -0,0 +1,55 @@
1
+ # A sample Guardfile
2
+ # More info at https://github.com/guard/guard#readme
3
+
4
+ ## Uncomment and set this to only include directories you want to watch
5
+ # directories %w(app lib config test spec features)
6
+
7
+ ## Uncomment to clear the screen before every task
8
+ # clearing :on
9
+
10
+ ## Guard internally checks for changes in the Guardfile and exits.
11
+ ## If you want Guard to automatically start up again, run guard in a
12
+ ## shell loop, e.g.:
13
+ ##
14
+ ## $ while bundle exec guard; do echo "Restarting Guard..."; done
15
+ ##
16
+ ## Note: if you are using the `directories` clause above and you are not
17
+ ## watching the project directory ('.'), then you will want to move
18
+ ## the Guardfile to a watched dir and symlink it back, e.g.
19
+ #
20
+ # $ mkdir config
21
+ # $ mv Guardfile config/
22
+ # $ ln -s config/Guardfile .
23
+ #
24
+ # and, you'll have to watch "config/Guardfile" instead of "Guardfile"
25
+
26
+ # Note: The cmd option is now required due to the increasing number of ways
27
+ # rspec may be run, below are examples of the most common uses.
28
+ # * bundler: 'bundle exec rspec'
29
+ # * bundler binstubs: 'bin/rspec'
30
+ # * spring: 'bin/rspec' (This will use spring if running and you have
31
+ # installed the spring binstubs per the docs)
32
+ # * zeus: 'zeus rspec' (requires the server to be started separately)
33
+ # * 'just' rspec: 'rspec'
34
+
35
+ guard :rspec, cmd: 'bundle exec rspec' do
36
+ require 'guard/rspec/dsl'
37
+ dsl = Guard::RSpec::Dsl.new(self)
38
+
39
+ # Feel free to open issues for suggestions and improvements
40
+
41
+ # RSpec files
42
+ rspec = dsl.rspec
43
+ watch(rspec.spec_helper) { rspec.spec_dir }
44
+ watch(rspec.spec_support) { rspec.spec_dir }
45
+ watch(rspec.spec_files)
46
+
47
+ # Ruby files
48
+ ruby = dsl.ruby
49
+ dsl.watch_spec_files_for(ruby.lib_files)
50
+ end
51
+
52
+ guard :rubocop do
53
+ watch(/.+\.rb$/)
54
+ watch(%r{(?:.+/)?\.rubocop\.yml$}) { |m| File.dirname(m[0]) }
55
+ end
@@ -0,0 +1,20 @@
1
+ Copyright (c) 2015 Marek Skrobacki
2
+
3
+ Permission is hereby granted, free of charge, to any person obtaining
4
+ a copy of this software and associated documentation files (the
5
+ "Software"), to deal in the Software without restriction, including
6
+ without limitation the rights to use, copy, modify, merge, publish,
7
+ distribute, sublicense, and/or sell copies of the Software, and to
8
+ permit persons to whom the Software is furnished to do so, subject to
9
+ the following conditions:
10
+
11
+ The above copyright notice and this permission notice shall be
12
+ included in all copies or substantial portions of the Software.
13
+
14
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
15
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
16
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
17
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
18
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
19
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
20
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
@@ -0,0 +1,75 @@
1
+ # capistrano2-zabbix
2
+
3
+ Tired of manually creating maintenance objects in your Zabbix monitoring
4
+ system for every new release of your application ? This gem is for you! It
5
+ automates creation and removal of necessary objects so that your code can be
6
+ released without unnecessary false alerts.
7
+
8
+
9
+ ## Compatibility
10
+ capistrano2-zabbix works only with Capistrano v2. The gem for version 3 has
11
+ not been released yet.
12
+
13
+ ## Installation
14
+ To install `capistrano2-zabbix` you need to add following to your `Gemfile`
15
+
16
+ `gem 'capistrano2-zabbix', '~> 0.1'`
17
+
18
+ Then in your `config/deploy.rb` you need to require the gem:
19
+
20
+ `require 'capistrano2-zabbix'`
21
+
22
+
23
+ ## Configuration
24
+
25
+ * `:zabbix_url` - address of the Zabbix API endpoint.
26
+ * `:zabbix_user` - user name that has permissions to edit maintenances
27
+ * `:zabbix_password` - self explanatory
28
+ * `:zabbix_period` - number of seconds that maintance is created for
29
+ * `:zabbix_groupid` - ID of server group included in the maintenace
30
+ * `:zabbix_auto_trigger` - if set to `true`, your deployment will
31
+ automatically execute `zabbix:create` before deploying code and
32
+ `zabbix:delete` when it's finished. If set to `false` (default) you have
33
+ to hook those tasks up where you think it's appropriate.
34
+
35
+ ### Configuration defaults
36
+ ```ruby
37
+ set :zabbix_url, 'http://192.168.56.2/zabbix/'
38
+ set :zabbix_user, 'Admin'
39
+ set :zabbix_password, 'zabbix'
40
+ set :zabbix_period, 60 * 60 * 10 # 10 hours
41
+ set :zabbix_groupid, 2
42
+ set :zabbix_auto_trigger, false
43
+ ```
44
+
45
+ ## Usage
46
+ As mentioned in 'Configuration' section you have at leasth three ways of using this
47
+ gem:
48
+ * automatically create maintenance before code deployment and delete it
49
+ afterwards. If this is what you want, set `:zabbix_auto_trigger` to
50
+ `true`.
51
+ * modify your `deploy.rb` to invoke `zabbix:create` and/or `zabbix:delete`
52
+ tasks anytime you want. For example, if you want to create maintenance
53
+ only after code has been copied over to your severs you would want
54
+ something like this:
55
+
56
+ ```ruby
57
+ set :zabbix_auto_trigger, false # This is default, can be skipped.
58
+ after 'deploy:update_code', 'zabbix:create'
59
+ ```
60
+
61
+
62
+ ## Contributing to capistrano2-zabbix
63
+
64
+ * Check out the latest master to make sure the feature hasn't been implemented or the bug hasn't been fixed yet.
65
+ * Check out the issue tracker to make sure someone already hasn't requested it and/or contributed it.
66
+ * Fork the project.
67
+ * Start a feature/bugfix branch.
68
+ * Commit and push until you are happy with your contribution.
69
+ * Feel free to submit PR :)
70
+
71
+ ## Copyright
72
+
73
+ Copyright (c) 2015 Marek Skrobacki. See LICENSE.txt for
74
+ further details.
75
+
@@ -0,0 +1,47 @@
1
+ # encoding: utf-8
2
+
3
+ require 'rubygems'
4
+ require 'bundler'
5
+ begin
6
+ Bundler.setup(:default, :development)
7
+ rescue Bundler::BundlerError => e
8
+ $stderr.puts e.message
9
+ $stderr.puts 'Run `bundle install` to install missing gems'
10
+ exit e.status_code
11
+ end
12
+ require 'rake'
13
+
14
+ require 'jeweler'
15
+ Jeweler::Tasks.new do |gem|
16
+ gem.name = 'capistrano2-zabbix'
17
+ gem.homepage = 'http://github.com/skrobul/capistrano2-zabbix'
18
+ gem.license = 'MIT'
19
+ gem.summary = 'Create maintenances in Zabbix through Capistrano deployment'
20
+ gem.description = %(
21
+ Tired of manually creating maintenance objects in your Zabbix monitoring
22
+ system for every new release of your application ? This gem is for you! It
23
+ automates creation and removal of necessary objects so that your code can be
24
+ released without unnecessary false alerts.
25
+ )
26
+ gem.email = 'skrobul@skrobul.com'
27
+ gem.authors = ['Marek Skrobacki']
28
+ # dependencies defined in Gemfile
29
+ end
30
+ Jeweler::RubygemsDotOrgTasks.new
31
+
32
+ require 'rspec/core'
33
+ require 'rspec/core/rake_task'
34
+ RSpec::Core::RakeTask.new(:spec) do |spec|
35
+ spec.pattern = FileList['spec/**/*_spec.rb']
36
+ end
37
+
38
+ desc 'Code coverage detail'
39
+ task :simplecov do
40
+ ENV['COVERAGE'] = 'true'
41
+ Rake::Task['spec'].execute
42
+ end
43
+
44
+ task default: :spec
45
+
46
+ require 'yard'
47
+ YARD::Rake::YardocTask.new
data/VERSION ADDED
@@ -0,0 +1 @@
1
+ 0.1.2
@@ -0,0 +1,105 @@
1
+ # Generated by jeweler
2
+ # DO NOT EDIT THIS FILE DIRECTLY
3
+ # Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
4
+ # -*- encoding: utf-8 -*-
5
+ # stub: capistrano2-zabbix 0.1.2 ruby lib
6
+
7
+ Gem::Specification.new do |s|
8
+ s.name = "capistrano2-zabbix"
9
+ s.version = "0.1.2"
10
+
11
+ s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
12
+ s.require_paths = ["lib"]
13
+ s.authors = ["Marek Skrobacki"]
14
+ s.date = "2015-05-14"
15
+ s.description = "\n Tired of manually creating maintenance objects in your Zabbix monitoring\n system for every new release of your application ? This gem is for you! It\n automates creation and removal of necessary objects so that your code can be\n released without unnecessary false alerts.\n "
16
+ s.email = "skrobul@skrobul.com"
17
+ s.extra_rdoc_files = [
18
+ "LICENSE.txt",
19
+ "README.md"
20
+ ]
21
+ s.files = [
22
+ ".document",
23
+ ".rspec",
24
+ ".rubocop.yml",
25
+ ".ruby-version",
26
+ "Gemfile",
27
+ "Gemfile.lock",
28
+ "Guardfile",
29
+ "LICENSE.txt",
30
+ "README.md",
31
+ "Rakefile",
32
+ "VERSION",
33
+ "capistrano2-zabbix.gemspec",
34
+ "lib/capistrano/tasks.rb",
35
+ "lib/capistrano2-zabbix.rb",
36
+ "lib/zabbix_maintenance.rb",
37
+ "spec/capistrano2-zabbix_spec.rb",
38
+ "spec/cassettes/ZabbixMaintenance/_authenticated_/when_authenticated/.yml",
39
+ "spec/cassettes/ZabbixMaintenance/_authenticated_/when_not_authenticated/returns_false.yml",
40
+ "spec/cassettes/ZabbixMaintenance/_create/with_valid_parameters/creates_maintenance_period_with_correct_groupid.yml",
41
+ "spec/cassettes/ZabbixMaintenance/_delete/removes_the_maintenance.yml",
42
+ "spec/cassettes/ZabbixMaintenance/_exists_/when_maintenance_does_not_exist_on_remote_server/.yml",
43
+ "spec/cassettes/ZabbixMaintenance/_exists_/when_maintenance_exists_on_remote_server/.yml",
44
+ "spec/cassettes/ZabbixMaintenance/_maint_id/when_maintenance_exsts/returns_correct_ID.yml",
45
+ "spec/cassettes/ZabbixMaintenance/_new/authenticates_with_correct_credentials.yml",
46
+ "spec/spec_helper.rb",
47
+ "spec/zabbix_maintenance_spec.rb"
48
+ ]
49
+ s.homepage = "http://github.com/skrobul/capistrano2-zabbix"
50
+ s.licenses = ["MIT"]
51
+ s.rubygems_version = "2.4.6"
52
+ s.summary = "Create maintenances in Zabbix through Capistrano deployment"
53
+
54
+ if s.respond_to? :specification_version then
55
+ s.specification_version = 4
56
+
57
+ if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
58
+ s.add_runtime_dependency(%q<zabbixapi>, ["< 2.3.0", ">= 2.2.0"])
59
+ s.add_runtime_dependency(%q<capistrano>, ["~> 2.0"])
60
+ s.add_development_dependency(%q<rspec>, ["~> 3.2"])
61
+ s.add_development_dependency(%q<yard>, ["~> 0.7"])
62
+ s.add_development_dependency(%q<rdoc>, ["~> 3.12"])
63
+ s.add_development_dependency(%q<bundler>, ["~> 1.0"])
64
+ s.add_development_dependency(%q<jeweler>, ["~> 2.0"])
65
+ s.add_development_dependency(%q<simplecov>, ["~> 0.10"])
66
+ s.add_development_dependency(%q<vcr>, ["~> 2.9"])
67
+ s.add_development_dependency(%q<webmock>, ["~> 1.21"])
68
+ s.add_development_dependency(%q<pry>, ["~> 0.10"])
69
+ s.add_development_dependency(%q<guard-rubocop>, ["~> 1.2"])
70
+ s.add_development_dependency(%q<guard>, ["~> 2.12"])
71
+ s.add_development_dependency(%q<guard-rspec>, ["~> 4.5"])
72
+ else
73
+ s.add_dependency(%q<zabbixapi>, ["< 2.3.0", ">= 2.2.0"])
74
+ s.add_dependency(%q<capistrano>, ["~> 2.0"])
75
+ s.add_dependency(%q<rspec>, ["~> 3.2"])
76
+ s.add_dependency(%q<yard>, ["~> 0.7"])
77
+ s.add_dependency(%q<rdoc>, ["~> 3.12"])
78
+ s.add_dependency(%q<bundler>, ["~> 1.0"])
79
+ s.add_dependency(%q<jeweler>, ["~> 2.0"])
80
+ s.add_dependency(%q<simplecov>, ["~> 0.10"])
81
+ s.add_dependency(%q<vcr>, ["~> 2.9"])
82
+ s.add_dependency(%q<webmock>, ["~> 1.21"])
83
+ s.add_dependency(%q<pry>, ["~> 0.10"])
84
+ s.add_dependency(%q<guard-rubocop>, ["~> 1.2"])
85
+ s.add_dependency(%q<guard>, ["~> 2.12"])
86
+ s.add_dependency(%q<guard-rspec>, ["~> 4.5"])
87
+ end
88
+ else
89
+ s.add_dependency(%q<zabbixapi>, ["< 2.3.0", ">= 2.2.0"])
90
+ s.add_dependency(%q<capistrano>, ["~> 2.0"])
91
+ s.add_dependency(%q<rspec>, ["~> 3.2"])
92
+ s.add_dependency(%q<yard>, ["~> 0.7"])
93
+ s.add_dependency(%q<rdoc>, ["~> 3.12"])
94
+ s.add_dependency(%q<bundler>, ["~> 1.0"])
95
+ s.add_dependency(%q<jeweler>, ["~> 2.0"])
96
+ s.add_dependency(%q<simplecov>, ["~> 0.10"])
97
+ s.add_dependency(%q<vcr>, ["~> 2.9"])
98
+ s.add_dependency(%q<webmock>, ["~> 1.21"])
99
+ s.add_dependency(%q<pry>, ["~> 0.10"])
100
+ s.add_dependency(%q<guard-rubocop>, ["~> 1.2"])
101
+ s.add_dependency(%q<guard>, ["~> 2.12"])
102
+ s.add_dependency(%q<guard-rspec>, ["~> 4.5"])
103
+ end
104
+ end
105
+