flapjack 1.2.1 → 1.2.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.ruby-version +1 -1
- data/.travis.yml +11 -12
- data/CHANGELOG.md +10 -0
- data/Gemfile +0 -7
- data/Rakefile +0 -1
- data/bin/flapjack +2 -0
- data/etc/flapjack_config.yaml.example +20 -0
- data/features/ack_after_sched_maint.feature +1 -1
- data/features/cli.feature +1 -1
- data/features/notification_rules.feature +1 -1
- data/features/notifications.feature +0 -9
- data/features/rollup.feature +1 -1
- data/features/steps/events_steps.rb +20 -8
- data/features/steps/notifications_steps.rb +62 -75
- data/features/support/env.rb +17 -8
- data/flapjack.gemspec +4 -4
- data/lib/flapjack.rb +3 -0
- data/lib/flapjack/cli/import.rb +1 -0
- data/lib/flapjack/cli/maintenance.rb +1 -0
- data/lib/flapjack/cli/purge.rb +2 -0
- data/lib/flapjack/cli/receiver.rb +1 -0
- data/lib/flapjack/cli/simulate.rb +1 -0
- data/lib/flapjack/data/alert.rb +28 -1
- data/lib/flapjack/data/contact.rb +1 -1
- data/lib/flapjack/data/entity.rb +18 -8
- data/lib/flapjack/data/entity_check.rb +17 -0
- data/lib/flapjack/data/event.rb +33 -15
- data/lib/flapjack/data/migration.rb +46 -23
- data/lib/flapjack/filters/delays.rb +13 -6
- data/lib/flapjack/gateways/aws_sns.rb +115 -88
- data/lib/flapjack/gateways/aws_sns/alert.text.erb +2 -1
- data/lib/flapjack/gateways/email.rb +145 -135
- data/lib/flapjack/gateways/email/alert.html.erb +6 -4
- data/lib/flapjack/gateways/email/alert.text.erb +2 -0
- data/lib/flapjack/gateways/jabber.rb +61 -1
- data/lib/flapjack/gateways/jabber/alert.text.erb +1 -1
- data/lib/flapjack/gateways/pagerduty/alert.text.erb +1 -1
- data/lib/flapjack/gateways/sms_gammu.rb +119 -0
- data/lib/flapjack/gateways/sms_messagenet.rb +95 -67
- data/lib/flapjack/gateways/sms_messagenet/alert.text.erb +2 -1
- data/lib/flapjack/gateways/sms_twilio.rb +102 -74
- data/lib/flapjack/gateways/sms_twilio/alert.text.erb +2 -1
- data/lib/flapjack/logger.rb +1 -1
- data/lib/flapjack/notifier.rb +5 -14
- data/lib/flapjack/patches.rb +0 -58
- data/lib/flapjack/pikelet.rb +8 -78
- data/lib/flapjack/processor.rb +3 -1
- data/lib/flapjack/redis_pool.rb +2 -0
- data/lib/flapjack/version.rb +1 -1
- data/spec/lib/flapjack/data/contact_spec.rb +2 -2
- data/spec/lib/flapjack/data/entity_spec.rb +15 -0
- data/spec/lib/flapjack/data/event_spec.rb +2 -2
- data/spec/lib/flapjack/data/migration_spec.rb +11 -0
- data/spec/lib/flapjack/gateways/aws_sns_spec.rb +12 -8
- data/spec/lib/flapjack/gateways/email_spec.rb +56 -51
- data/spec/lib/flapjack/gateways/sms_messagenet_spec.rb +17 -12
- data/spec/lib/flapjack/gateways/sms_twilio_spec.rb +17 -12
- data/spec/lib/flapjack/pikelet_spec.rb +9 -23
- data/spec/lib/flapjack/redis_pool_spec.rb +1 -0
- data/tasks/profile.rake +25 -109
- metadata +37 -39
- data/Gemfile-ruby1.9 +0 -30
- data/Gemfile-ruby1.9.lock +0 -250
- data/tasks/benchmarks.rake +0 -237
@@ -12,10 +12,6 @@ describe Flapjack::Pikelet do
|
|
12
12
|
|
13
13
|
let(:time) { Time.now }
|
14
14
|
|
15
|
-
before do
|
16
|
-
Flapjack::Pikelet::Resque.class_variable_set(:@@resque_pool, nil)
|
17
|
-
end
|
18
|
-
|
19
15
|
it "creates and starts a processor pikelet" do
|
20
16
|
expect(Flapjack::Logger).to receive(:new).and_return(logger)
|
21
17
|
|
@@ -38,35 +34,25 @@ describe Flapjack::Pikelet do
|
|
38
34
|
pik.start
|
39
35
|
end
|
40
36
|
|
41
|
-
it "creates and starts a
|
37
|
+
it "creates and starts a generic worker gateway" do
|
42
38
|
expect(Flapjack::Logger).to receive(:new).and_return(logger)
|
43
39
|
|
44
40
|
expect(config).to receive(:[]).with('logger').and_return(nil)
|
45
|
-
expect(config).to receive(:[]).with('queue').and_return('email_notif')
|
46
|
-
|
47
|
-
resque_redis = double('resque_redis')
|
48
|
-
redis = double('redis')
|
49
|
-
expect(Flapjack::RedisPool).to receive(:new).twice.and_return(resque_redis, redis)
|
50
|
-
expect(Resque).to receive(:redis=).with(resque_redis)
|
51
41
|
|
52
|
-
|
53
|
-
with('@config', config)
|
54
|
-
expect(Flapjack::Gateways::Email).to receive(:instance_variable_set).
|
55
|
-
with('@redis', redis)
|
56
|
-
expect(Flapjack::Gateways::Email).to receive(:instance_variable_set).
|
57
|
-
with('@logger', logger)
|
42
|
+
fc = double('coordinator')
|
58
43
|
|
59
|
-
|
60
|
-
expect(
|
61
|
-
expect(Flapjack::Gateways::Email).to receive(:
|
62
|
-
|
44
|
+
email = double('email')
|
45
|
+
expect(email).to receive(:start)
|
46
|
+
expect(Flapjack::Gateways::Email).to receive(:new).with(:config => config,
|
47
|
+
:redis_config => redis_config, :boot_time => time, :logger => logger, :coordinator => fc).
|
48
|
+
and_return(email)
|
63
49
|
|
64
50
|
expect(fiber).to receive(:resume)
|
65
51
|
expect(Fiber).to receive(:new).and_yield.and_return(fiber)
|
66
52
|
|
67
53
|
pik = Flapjack::Pikelet.create('email', :config => config,
|
68
|
-
:redis_config => redis_config)
|
69
|
-
expect(pik).to be_a(Flapjack::Pikelet::
|
54
|
+
:redis_config => redis_config, :boot_time => time, :coordinator => fc)
|
55
|
+
expect(pik).to be_a(Flapjack::Pikelet::Generic)
|
70
56
|
pik.start
|
71
57
|
end
|
72
58
|
|
@@ -15,6 +15,7 @@ describe Flapjack::RedisPool do
|
|
15
15
|
expect(Flapjack::Data::Migration).to receive(:correct_notification_rule_contact_linkages).exactly(redis_count).times
|
16
16
|
expect(Flapjack::Data::Migration).to receive(:migrate_entity_check_data_if_required).exactly(redis_count).times
|
17
17
|
expect(Flapjack::Data::Migration).to receive(:create_entity_ids_if_required).exactly(redis_count).times
|
18
|
+
expect(Flapjack::Data::Migration).to receive(:clear_orphaned_entity_ids).exactly(redis_count).times
|
18
19
|
expect(Flapjack::Data::Migration).to receive(:refresh_archive_index).exactly(redis_count).times
|
19
20
|
expect(Flapjack::Data::Migration).to receive(:validate_scheduled_maintenance_periods).exactly(redis_count).times
|
20
21
|
|
data/tasks/profile.rake
CHANGED
@@ -11,7 +11,6 @@ namespace :profile do
|
|
11
11
|
FLAPJACK_PORT = ((port > 1024) && (port <= 65535)) ? port : 8075
|
12
12
|
|
13
13
|
REPETITIONS = 10
|
14
|
-
RESQUE_REPETITIONS = 2
|
15
14
|
|
16
15
|
require 'ruby-prof'
|
17
16
|
|
@@ -46,78 +45,6 @@ namespace :profile do
|
|
46
45
|
redis.quit
|
47
46
|
end
|
48
47
|
|
49
|
-
# rubyprof doesn't like the mail gem, possibly due to treetop -- crashes
|
50
|
-
# with "stack level too deep" errors when generating if the profiling
|
51
|
-
# runs over 3 or more mails.
|
52
|
-
def profile_resque(cfg_name, config, redis_options, &block)
|
53
|
-
redis = Redis.new(redis_options.merge(:driver => 'ruby'))
|
54
|
-
check_db_empty(:redis => redis, :redis_options => redis_options)
|
55
|
-
setup_baseline_data(:redis => redis)
|
56
|
-
|
57
|
-
::Resque.redis = redis
|
58
|
-
|
59
|
-
EM.synchrony do
|
60
|
-
FlapjackProfileResque.instance_eval {
|
61
|
-
|
62
|
-
class << self
|
63
|
-
|
64
|
-
alias_method :orig_perform, :perform
|
65
|
-
|
66
|
-
# NB: this is very brittle in the case of exceptions; Resque swallows them,
|
67
|
-
# so you'll need to turn on the worker's verbose switches below to see what's
|
68
|
-
# really going on
|
69
|
-
def perform(notification)
|
70
|
-
r = nil
|
71
|
-
begin
|
72
|
-
count = if FlapjackProfileResque.class_variable_defined?('@@profile_count')
|
73
|
-
FlapjackProfileResque.class_variable_get('@@profile_count')
|
74
|
-
else
|
75
|
-
FlapjackProfileResque.class_variable_set('@@profile_count', 0)
|
76
|
-
end
|
77
|
-
|
78
|
-
RubyProf.send( (count.zero? ? :start : :resume) )
|
79
|
-
r = orig_perform(notification)
|
80
|
-
RubyProf.pause
|
81
|
-
|
82
|
-
count += 1
|
83
|
-
FlapjackProfileResque.class_variable_set('@@profile_count', count)
|
84
|
-
rescue Exception => e
|
85
|
-
puts e.message
|
86
|
-
end
|
87
|
-
r
|
88
|
-
end
|
89
|
-
end
|
90
|
-
|
91
|
-
}
|
92
|
-
|
93
|
-
FlapjackProfileResque.bootstrap(:config => config)
|
94
|
-
|
95
|
-
worker = EM::Resque::Worker.new(config['queue'])
|
96
|
-
worker.verbose = true
|
97
|
-
worker.very_verbose = true
|
98
|
-
|
99
|
-
EM.defer(block)
|
100
|
-
|
101
|
-
worker.work(0.1) {|job|
|
102
|
-
if FlapjackProfileResque.class_variable_defined?('@@profile_count') &&
|
103
|
-
(FlapjackProfileResque.class_variable_get('@@profile_count') >= RESQUE_REPETITIONS)
|
104
|
-
job.worker.shutdown
|
105
|
-
end
|
106
|
-
}
|
107
|
-
|
108
|
-
result = RubyProf.stop
|
109
|
-
printer = RubyProf::MultiPrinter.new(result)
|
110
|
-
output_dir = File.join('tmp', 'profiles')
|
111
|
-
FileUtils.mkdir_p(output_dir)
|
112
|
-
printer.print(:path => output_dir, :profile => cfg_name)
|
113
|
-
|
114
|
-
EM.stop
|
115
|
-
end
|
116
|
-
|
117
|
-
empty_db(:redis => redis)
|
118
|
-
redis.quit
|
119
|
-
end
|
120
|
-
|
121
48
|
def profile_thin(klass, name, config, redis_options, &block)
|
122
49
|
redis = Redis.new(redis_options.merge(:driver => 'ruby'))
|
123
50
|
check_db_empty(:redis => redis, :redis_options => redis_options)
|
@@ -252,13 +179,14 @@ namespace :profile do
|
|
252
179
|
task :jabber do
|
253
180
|
|
254
181
|
require 'flapjack/jabber'
|
182
|
+
require 'flapjack/data/alert'
|
255
183
|
require 'flapjack/data/contact'
|
256
184
|
require 'flapjack/data/event'
|
257
185
|
require 'flapjack/data/notification'
|
258
186
|
|
259
187
|
FLAPJACK_ENV = ENV['FLAPJACK_ENV'] || 'profile'
|
260
188
|
config_env, redis_options = load_config
|
261
|
-
profile_pikelet(Flapjack::Jabber, 'jabber', config_env['jabber_gateway'],
|
189
|
+
profile_pikelet(Flapjack::Gateways::Jabber, 'jabber', config_env['jabber_gateway'],
|
262
190
|
redis_options) {
|
263
191
|
|
264
192
|
# this executes in a separate thread, so no Fibery stuff is allowed
|
@@ -277,8 +205,8 @@ namespace :profile do
|
|
277
205
|
notification.messages(:contacts => [contact]).each do |msg|
|
278
206
|
contents = msg.contents
|
279
207
|
contents['event_count'] = n
|
280
|
-
|
281
|
-
|
208
|
+
Flapjack::Data::Alert.add(config_env['jabber_gateway']['queue'],
|
209
|
+
contents)
|
282
210
|
end
|
283
211
|
end
|
284
212
|
|
@@ -291,51 +219,39 @@ namespace :profile do
|
|
291
219
|
desc "profile email notifier with rubyprof"
|
292
220
|
task :email do
|
293
221
|
|
294
|
-
require '
|
295
|
-
|
296
|
-
# the redis-rb README for details
|
297
|
-
require 'hiredis'
|
298
|
-
require 'em-synchrony'
|
299
|
-
require 'redis/connection/synchrony'
|
300
|
-
require 'redis'
|
301
|
-
require 'em-resque'
|
302
|
-
require 'em-resque/worker'
|
303
|
-
|
304
|
-
require 'flapjack/patches'
|
305
|
-
require 'flapjack/redis_pool'
|
306
|
-
require 'flapjack/notification/email'
|
307
|
-
|
222
|
+
require 'flapjack/email'
|
223
|
+
require 'flapjack/data/alert'
|
308
224
|
require 'flapjack/data/contact'
|
309
225
|
require 'flapjack/data/event'
|
310
226
|
require 'flapjack/data/notification'
|
311
227
|
|
312
228
|
FLAPJACK_ENV = ENV['FLAPJACK_ENV'] || 'profile'
|
313
229
|
config_env, redis_options = load_config
|
230
|
+
profile_pikelet(Flapjack::Gateways::Email, 'jabber', config_env['jabber_gateway'],
|
231
|
+
redis_options) {
|
314
232
|
|
315
|
-
|
316
|
-
|
317
|
-
profile_resque('email', config_env['email_notifier'], redis_options) {
|
318
|
-
|
319
|
-
# this executes in a separate thread, so no Fibery stuff is allowed
|
320
|
-
redis = Redis.new(redis_options.merge(:driver => 'ruby'))
|
233
|
+
# this executes in a separate thread, so no Fibery stuff is allowed
|
234
|
+
redis = Redis.new(redis_options.merge(:driver => 'ruby'))
|
321
235
|
|
322
|
-
|
323
|
-
|
324
|
-
|
325
|
-
|
326
|
-
|
327
|
-
|
236
|
+
event = Flapjack::Data::Event.new('type' => 'service',
|
237
|
+
'state' => 'critical',
|
238
|
+
'summary' => '100% packet loss',
|
239
|
+
'entity' => 'clientx-app-01',
|
240
|
+
'check' => 'ping')
|
241
|
+
notification = Flapjack::Data::Notification.for_event(event)
|
328
242
|
|
329
|
-
|
243
|
+
contact = Flapjack::Data::Contact.find_by_id('1000', :redis => redis)
|
330
244
|
|
331
|
-
|
332
|
-
|
333
|
-
|
334
|
-
|
245
|
+
REPETITIONS.times do |n|
|
246
|
+
notification.messages(:contacts => [contact]).each do |msg|
|
247
|
+
contents = msg.contents
|
248
|
+
contents['event_count'] = n
|
249
|
+
Flapjack::Data::Alert.add(config_env['email_gateway']['queue'],
|
250
|
+
contents)
|
251
|
+
end
|
335
252
|
end
|
336
|
-
end
|
337
253
|
|
338
|
-
|
254
|
+
redis.quit
|
339
255
|
}
|
340
256
|
end
|
341
257
|
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: flapjack
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.2.
|
4
|
+
version: 1.2.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Lindsay Holmwood
|
@@ -11,7 +11,7 @@ authors:
|
|
11
11
|
autorequire:
|
12
12
|
bindir: bin
|
13
13
|
cert_chain: []
|
14
|
-
date:
|
14
|
+
date: 2015-02-10 00:00:00.000000000 Z
|
15
15
|
dependencies:
|
16
16
|
- !ruby/object:Gem::Dependency
|
17
17
|
name: dante
|
@@ -84,21 +84,7 @@ dependencies:
|
|
84
84
|
- !ruby/object:Gem::Version
|
85
85
|
version: '0'
|
86
86
|
- !ruby/object:Gem::Dependency
|
87
|
-
name: em-
|
88
|
-
requirement: !ruby/object:Gem::Requirement
|
89
|
-
requirements:
|
90
|
-
- - "~>"
|
91
|
-
- !ruby/object:Gem::Version
|
92
|
-
version: 1.0.2
|
93
|
-
type: :runtime
|
94
|
-
prerelease: false
|
95
|
-
version_requirements: !ruby/object:Gem::Requirement
|
96
|
-
requirements:
|
97
|
-
- - "~>"
|
98
|
-
- !ruby/object:Gem::Version
|
99
|
-
version: 1.0.2
|
100
|
-
- !ruby/object:Gem::Dependency
|
101
|
-
name: em-http-request
|
87
|
+
name: em-hiredis
|
102
88
|
requirement: !ruby/object:Gem::Requirement
|
103
89
|
requirements:
|
104
90
|
- - ">="
|
@@ -112,33 +98,33 @@ dependencies:
|
|
112
98
|
- !ruby/object:Gem::Version
|
113
99
|
version: '0'
|
114
100
|
- !ruby/object:Gem::Dependency
|
115
|
-
name: em-
|
101
|
+
name: em-synchrony
|
116
102
|
requirement: !ruby/object:Gem::Requirement
|
117
103
|
requirements:
|
118
|
-
- - "
|
104
|
+
- - "~>"
|
119
105
|
- !ruby/object:Gem::Version
|
120
|
-
version:
|
106
|
+
version: 1.0.2
|
121
107
|
type: :runtime
|
122
108
|
prerelease: false
|
123
109
|
version_requirements: !ruby/object:Gem::Requirement
|
124
110
|
requirements:
|
125
|
-
- - "
|
111
|
+
- - "~>"
|
126
112
|
- !ruby/object:Gem::Version
|
127
|
-
version:
|
113
|
+
version: 1.0.2
|
128
114
|
- !ruby/object:Gem::Dependency
|
129
|
-
name:
|
115
|
+
name: em-http-request
|
130
116
|
requirement: !ruby/object:Gem::Requirement
|
131
117
|
requirements:
|
132
|
-
- - "
|
118
|
+
- - ">="
|
133
119
|
- !ruby/object:Gem::Version
|
134
|
-
version:
|
120
|
+
version: '0'
|
135
121
|
type: :runtime
|
136
122
|
prerelease: false
|
137
123
|
version_requirements: !ruby/object:Gem::Requirement
|
138
124
|
requirements:
|
139
|
-
- - "
|
125
|
+
- - ">="
|
140
126
|
- !ruby/object:Gem::Version
|
141
|
-
version:
|
127
|
+
version: '0'
|
142
128
|
- !ruby/object:Gem::Dependency
|
143
129
|
name: sinatra
|
144
130
|
requirement: !ruby/object:Gem::Requirement
|
@@ -255,16 +241,16 @@ dependencies:
|
|
255
241
|
name: activesupport
|
256
242
|
requirement: !ruby/object:Gem::Requirement
|
257
243
|
requirements:
|
258
|
-
- - "
|
244
|
+
- - ">="
|
259
245
|
- !ruby/object:Gem::Version
|
260
|
-
version:
|
246
|
+
version: '0'
|
261
247
|
type: :runtime
|
262
248
|
prerelease: false
|
263
249
|
version_requirements: !ruby/object:Gem::Requirement
|
264
250
|
requirements:
|
265
|
-
- - "
|
251
|
+
- - ">="
|
266
252
|
- !ruby/object:Gem::Version
|
267
|
-
version:
|
253
|
+
version: '0'
|
268
254
|
- !ruby/object:Gem::Dependency
|
269
255
|
name: ice_cube
|
270
256
|
requirement: !ruby/object:Gem::Requirement
|
@@ -283,16 +269,16 @@ dependencies:
|
|
283
269
|
name: tzinfo
|
284
270
|
requirement: !ruby/object:Gem::Requirement
|
285
271
|
requirements:
|
286
|
-
- - "
|
272
|
+
- - ">="
|
287
273
|
- !ruby/object:Gem::Version
|
288
|
-
version:
|
274
|
+
version: '0'
|
289
275
|
type: :runtime
|
290
276
|
prerelease: false
|
291
277
|
version_requirements: !ruby/object:Gem::Requirement
|
292
278
|
requirements:
|
293
|
-
- - "
|
279
|
+
- - ">="
|
294
280
|
- !ruby/object:Gem::Version
|
295
|
-
version:
|
281
|
+
version: '0'
|
296
282
|
- !ruby/object:Gem::Dependency
|
297
283
|
name: tzinfo-data
|
298
284
|
requirement: !ruby/object:Gem::Requirement
|
@@ -363,6 +349,20 @@ dependencies:
|
|
363
349
|
- - '='
|
364
350
|
- !ruby/object:Gem::Version
|
365
351
|
version: 1.6.2.1
|
352
|
+
- !ruby/object:Gem::Dependency
|
353
|
+
name: mysql2
|
354
|
+
requirement: !ruby/object:Gem::Requirement
|
355
|
+
requirements:
|
356
|
+
- - ">="
|
357
|
+
- !ruby/object:Gem::Version
|
358
|
+
version: '0'
|
359
|
+
type: :runtime
|
360
|
+
prerelease: false
|
361
|
+
version_requirements: !ruby/object:Gem::Requirement
|
362
|
+
requirements:
|
363
|
+
- - ">="
|
364
|
+
- !ruby/object:Gem::Version
|
365
|
+
version: '0'
|
366
366
|
description: Flapjack is a distributed monitoring notification system that provides
|
367
367
|
a scalable method for processing streams of events from Nagios and deciding who
|
368
368
|
should be notified
|
@@ -381,8 +381,6 @@ files:
|
|
381
381
|
- CONTRIBUTING.md
|
382
382
|
- Dockerfile
|
383
383
|
- Gemfile
|
384
|
-
- Gemfile-ruby1.9
|
385
|
-
- Gemfile-ruby1.9.lock
|
386
384
|
- Guardfile
|
387
385
|
- LICENCE
|
388
386
|
- README.md
|
@@ -472,6 +470,7 @@ files:
|
|
472
470
|
- lib/flapjack/gateways/oobetet.rb
|
473
471
|
- lib/flapjack/gateways/pagerduty.rb
|
474
472
|
- lib/flapjack/gateways/pagerduty/alert.text.erb
|
473
|
+
- lib/flapjack/gateways/sms_gammu.rb
|
475
474
|
- lib/flapjack/gateways/sms_messagenet.rb
|
476
475
|
- lib/flapjack/gateways/sms_messagenet/alert.text.erb
|
477
476
|
- lib/flapjack/gateways/sms_messagenet/rollup.text.erb
|
@@ -600,7 +599,6 @@ files:
|
|
600
599
|
- src/flapjack/event_test.go
|
601
600
|
- src/flapjack/transport.go
|
602
601
|
- src/flapjack/transport_test.go
|
603
|
-
- tasks/benchmarks.rake
|
604
602
|
- tasks/entities.rake
|
605
603
|
- tasks/events.rake
|
606
604
|
- tasks/profile.rake
|
@@ -642,7 +640,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
642
640
|
version: '0'
|
643
641
|
requirements: []
|
644
642
|
rubyforge_project:
|
645
|
-
rubygems_version: 2.
|
643
|
+
rubygems_version: 2.4.5
|
646
644
|
signing_key:
|
647
645
|
specification_version: 4
|
648
646
|
summary: Intelligent, scalable, distributed monitoring notification system.
|
data/Gemfile-ruby1.9
DELETED
@@ -1,30 +0,0 @@
|
|
1
|
-
source 'https://rubygems.org'
|
2
|
-
|
3
|
-
gemspec :name => 'flapjack'
|
4
|
-
|
5
|
-
group :development do
|
6
|
-
gem 'ruby-prof'
|
7
|
-
end
|
8
|
-
|
9
|
-
group :test do
|
10
|
-
gem 'rspec', '~> 3.0'
|
11
|
-
gem 'cucumber', '>= 2.0.0.beta.3'
|
12
|
-
gem 'delorean'
|
13
|
-
gem 'rack-test'
|
14
|
-
gem 'pact'
|
15
|
-
gem 'async_rack_test', '>= 0.0.5'
|
16
|
-
gem 'resque_spec'
|
17
|
-
gem 'webmock'
|
18
|
-
gem 'guard'
|
19
|
-
gem 'rb-fsevent'
|
20
|
-
gem 'guard-rspec'
|
21
|
-
gem 'guard-cucumber'
|
22
|
-
gem 'fuubar'
|
23
|
-
gem 'simplecov', :require => false
|
24
|
-
|
25
|
-
# # Not compiling under 1.9.3-p550 anyway
|
26
|
-
# if RUBY_VERSION.split('.')[0] == '1' && RUBY_VERSION.split('.')[1] == '9'
|
27
|
-
# gem 'debugger-ruby_core_source', '>= 1.3.4' # required for perftools.rb
|
28
|
-
# gem 'perftools.rb'
|
29
|
-
# end
|
30
|
-
end
|