gina-conveyor 0.2.3 → 0.2.4

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: b5e7532c41370b5895baf8dc2776eaef2531ce99
4
+ data.tar.gz: a2c2b104cd9ebbc166bc5d397cc4b0a93d660c13
5
+ SHA512:
6
+ metadata.gz: 3f310031700a8186a14dce0d7130898d3ada6bdaf0e27ea9db5d1223e654657ae7123d2d612bcf5961f7c8d48bd66ee9206042e0e1b1994a57d3517bc4bce22d
7
+ data.tar.gz: baacd19e877b28d60c7672b9f08123cadbb48bae2d694ba4b035a775cfd2d300a4e52f1778fb1dce8de6d312d4933bfffc6ab33c04f11b72de35e8592fed6920
data/Gemfile.lock CHANGED
@@ -1,23 +1,22 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- gina-conveyor (0.2.1)
4
+ gina-conveyor (0.2.3)
5
5
  activemodel (~> 4.1.0)
6
6
  activesupport (~> 4.1.0)
7
7
  em-websocket (~> 0.5.1)
8
8
  eventmachine (~> 1.0.0)
9
- listen (~> 2.7.11)
9
+ listen (~> 2.10)
10
10
  rainbow (~> 2.0.0)
11
11
  rb-readline (~> 0.5.0)
12
- tinder (= 1.10.0)
13
12
 
14
13
  GEM
15
14
  remote: http://rubygems.org/
16
15
  specs:
17
- activemodel (4.1.7)
18
- activesupport (= 4.1.7)
16
+ activemodel (4.1.12)
17
+ activesupport (= 4.1.12)
19
18
  builder (~> 3.1)
20
- activesupport (4.1.7)
19
+ activesupport (4.1.12)
21
20
  i18n (~> 0.6, >= 0.6.9)
22
21
  json (~> 1.7, >= 1.7.7)
23
22
  minitest (~> 5.1)
@@ -29,47 +28,26 @@ GEM
29
28
  em-websocket (0.5.1)
30
29
  eventmachine (>= 0.12.9)
31
30
  http_parser.rb (~> 0.6.0)
32
- eventmachine (1.0.3)
33
- faraday (0.9.0)
34
- multipart-post (>= 1.2, < 3)
35
- faraday_middleware (0.9.1)
36
- faraday (>= 0.7.4, < 0.10)
37
- ffi (1.9.6)
38
- hashie (2.1.2)
31
+ eventmachine (1.0.7)
32
+ ffi (1.9.10)
39
33
  hitimes (1.2.2)
40
34
  http_parser.rb (0.6.0)
41
- i18n (0.6.11)
42
- json (1.8.1)
43
- listen (2.7.11)
44
- celluloid (>= 0.15.2)
35
+ i18n (0.7.0)
36
+ json (1.8.3)
37
+ listen (2.10.1)
38
+ celluloid (~> 0.16.0)
45
39
  rb-fsevent (>= 0.9.3)
46
40
  rb-inotify (>= 0.9)
47
- mime-types (2.4.3)
48
- minitest (5.4.2)
49
- multi_json (1.10.1)
50
- multipart-post (2.0.0)
41
+ minitest (5.7.0)
51
42
  rainbow (2.0.0)
52
43
  rake (10.3.2)
53
- rb-fsevent (0.9.4)
44
+ rb-fsevent (0.9.5)
54
45
  rb-inotify (0.9.5)
55
46
  ffi (>= 0.5.0)
56
- rb-readline (0.5.1)
57
- roauth (0.0.8)
58
- thread_safe (0.3.4)
47
+ rb-readline (0.5.3)
48
+ thread_safe (0.3.5)
59
49
  timers (4.0.1)
60
50
  hitimes
61
- tinder (1.10.0)
62
- eventmachine (~> 1.0)
63
- faraday (~> 0.9.0)
64
- faraday_middleware (~> 0.9)
65
- hashie (>= 1.0, < 3)
66
- json (~> 1.8.0)
67
- mime-types
68
- multi_json (~> 1.7)
69
- twitter-stream (~> 0.1)
70
- twitter-stream (0.1.12)
71
- eventmachine (>= 0.12.8)
72
- roauth (>= 0.0.2)
73
51
  tzinfo (1.2.2)
74
52
  thread_safe (~> 0.1)
75
53
 
data/conveyor.gemspec CHANGED
@@ -22,10 +22,9 @@ Gem::Specification.new do |gem|
22
22
  gem.add_development_dependency('rake')
23
23
  gem.add_dependency('activemodel', '~> 4.1.0')
24
24
  gem.add_dependency('activesupport', '~> 4.1.0')
25
- gem.add_dependency('listen', '~> 2.7.11')
25
+ gem.add_dependency('listen', '~> 2.10')
26
26
  gem.add_dependency('rainbow', '~> 2.0.0')
27
27
  gem.add_dependency('rb-readline', '~> 0.5.0')
28
28
  gem.add_dependency('eventmachine', '~> 1.0.0')
29
29
  gem.add_dependency('em-websocket', '~> 0.5.1')
30
- gem.add_dependency('tinder', '1.10.0')
31
30
  end
@@ -22,10 +22,10 @@ module Conveyor
22
22
  'Foreman'
23
23
  end
24
24
 
25
- def channel
25
+ def channel
26
26
  @channel ||= EM::Channel.new
27
27
  end
28
-
28
+
29
29
  def read_configs
30
30
  @config = {
31
31
  "worker_defs" => File.expand_path('.workers', Dir.pwd),
@@ -35,15 +35,9 @@ module Conveyor
35
35
  "disabled" => false,
36
36
  "host" => "0.0.0.0",
37
37
  "port" => 9876
38
- },
39
- "campfire" => {
40
- "subdomain" => "",
41
- "use_ssl" => true,
42
- "token" => "",
43
- "room" => ""
44
38
  }
45
39
  }
46
-
40
+
47
41
  @config_file = '.conveyor'
48
42
  if File.exists? @config_file
49
43
  @config.merge! YAML.load(File.open(@config_file))
@@ -53,7 +47,7 @@ module Conveyor
53
47
  else
54
48
  write_config(@config)
55
49
  end
56
-
50
+
57
51
  # New version of conveyor update config file with new params
58
52
  if !@config['version'] || @config['version'] != Conveyor::VERSION
59
53
  @config['version'] = Conveyor::VERSION
@@ -62,9 +56,8 @@ module Conveyor
62
56
 
63
57
  @config.symbolize_keys!
64
58
  @config[:websocket].symbolize_keys!
65
- @config[:campfire].symbolize_keys!
66
59
  end
67
-
60
+
68
61
  def write_config(config)
69
62
  File.open(@config_file, 'w') { |fp| fp << config.to_yaml }
70
63
  end
@@ -73,21 +66,21 @@ module Conveyor
73
66
  @listener_opts = args.extract_options!
74
67
  @listener_dir = File.expand_path(args.first)
75
68
  raise "Directory #{@listener_dir} not found" unless File.directory? @listener_dir
76
-
69
+
77
70
  @listener_opts[:latency] ||= 1
78
71
  # Set a large latency if we force polling, prevents high cpu usage
79
72
  @listener_opts[:latency] = 1 if @listener_opts[:latency] < 1 and @listener_opts[:force_polling]
80
-
73
+
81
74
  yield
82
75
  end
83
-
76
+
84
77
  def match(*args, &block)
85
78
  opts = args.extract_options!
86
79
  debug "Filters: #{args.inspect}"
87
-
80
+
88
81
  debug "Force polling" if @listener_opts[:force_polling]
89
82
  listener_opts = { latency: @listener_opts[:latency] || 0.5, force_polling: @listener_opts[:force_polling] }
90
-
83
+
91
84
  b = @belts[@listener_dir] = Belt.new(@listener_dir, @current_worker)
92
85
  callback = lambda do |modified, added, removed|
93
86
  begin
@@ -108,11 +101,11 @@ module Conveyor
108
101
  error "ERROR: #{e.message}"
109
102
  error e.backtrace
110
103
  end
111
-
104
+
112
105
  def file(glob)
113
106
  /#{glob}$/
114
107
  end
115
-
108
+
116
109
  def extension(glob)
117
110
  /\.#{glob}$/
118
111
  end
@@ -120,7 +113,7 @@ module Conveyor
120
113
  def any
121
114
  '*'
122
115
  end
123
-
116
+
124
117
  def notify_list
125
118
  @notify_list.flatten!
126
119
  @notify_list.uniq!
@@ -130,12 +123,12 @@ module Conveyor
130
123
  def stop!
131
124
  @listeners.each { |dir,l| info "Stopping #{dir} listener"; l.stop }
132
125
  @listeners = {}
133
- @notify_list = []
126
+ @notify_list = []
134
127
  end
135
-
128
+
136
129
  def start
137
130
  load!
138
- @listeners.each do |k, listener|
131
+ @listeners.each do |k, listener|
139
132
  info "Watching #{k}"
140
133
  listener.start
141
134
  end
@@ -151,31 +144,31 @@ module Conveyor
151
144
  EM.defer do
152
145
  b.check
153
146
  end
154
- end
147
+ end
155
148
  end
156
149
 
157
150
  def load!
158
151
  stop!
159
-
160
- info "Loading workers from #{@config[:worker_defs]}"
152
+
153
+ info "Loading workers from #{@config[:worker_defs]}"
161
154
  FileUtils.mkdir_p(@config[:worker_defs])
162
-
155
+
163
156
  Dir.glob(File.join(@config[:worker_defs], '*.worker')) do |file|
164
157
  begin
165
158
  @current_worker = File.expand_path(file)
166
159
  instance_eval File.read(@current_worker)
167
160
  rescue => e
168
161
  error [
169
- "Error loading #{@current_worker}, skipping",
170
- e.message,
162
+ "Error loading #{@current_worker}, skipping",
163
+ e.message,
171
164
  e.backtrace
172
165
  ].flatten
173
166
  end
174
167
  end
175
168
  end
176
-
169
+
177
170
  def method_missing(method, value = nil)
178
171
  return method.to_s
179
- end
172
+ end
180
173
  end
181
174
  end
@@ -2,14 +2,13 @@ require 'conveyor/output/console'
2
2
  require 'conveyor/output/email'
3
3
  require 'conveyor/output/logfile'
4
4
  require 'conveyor/output/channel'
5
- require 'conveyor/output/campfire'
6
5
 
7
6
  module Conveyor
8
7
  module Output
9
8
  MSGLVLS = {
10
- :debug => 1,
11
- :info => 10,
12
- :warning => 20,
9
+ :debug => 1,
10
+ :info => 10,
11
+ :warning => 20,
13
12
  :error => 30,
14
13
  :announce => 40
15
14
  }
@@ -46,11 +45,11 @@ module Conveyor
46
45
  def info(*msg)
47
46
  output(:info, *msg)
48
47
  end
49
-
48
+
50
49
  def warning(*msg)
51
50
  output(:warning, *msg)
52
51
  end
53
-
52
+
54
53
  def error(*msg)
55
54
  output(:error, *msg)
56
55
  end
@@ -58,20 +57,19 @@ module Conveyor
58
57
  def debug(*msg)
59
58
  output(:debug, *msg)
60
59
  end
61
-
60
+
62
61
  def announce(*msg)
63
62
  output(:announce, *msg)
64
63
  end
65
-
64
+
66
65
  def output(msgtype, *msg)
67
66
  return false unless should_log?(msgtype)
68
67
  Console.write(msgtype, *msg)
69
68
  Logfile.write(logfile, name, msgtype, *msg)
70
- Email.write(msgtype, *msg)
69
+ Email.write(msgtype, *msg)
71
70
  Channel.instance.write(name, msgtype, *msg)
72
- Campfire.instance.write(name, msgtype, *msg)
73
71
  end
74
-
72
+
75
73
  def send_notifications
76
74
  Email.mail
77
75
  end
@@ -80,4 +78,4 @@ module Conveyor
80
78
  Conveyor::Foreman.instance.notify_list << emails
81
79
  end
82
80
  end
83
- end
81
+ end
@@ -1,3 +1,3 @@
1
1
  module Conveyor
2
- VERSION = "0.2.3"
2
+ VERSION = "0.2.4"
3
3
  end
data/lib/conveyor.rb CHANGED
@@ -15,12 +15,11 @@ require 'rb-readline'
15
15
  require 'fileutils'
16
16
  require 'eventmachine'
17
17
  require 'em-websocket'
18
- require 'tinder'
19
18
  require "conveyor/version"
20
19
 
21
20
  module Conveyor
22
21
  extend ActiveSupport::Autoload
23
-
22
+
24
23
  autoload :Output, 'conveyor/output'
25
24
  autoload :Foreman, 'conveyor/foreman'
26
25
  autoload :Belt, 'conveyor/belt'
metadata CHANGED
@@ -1,160 +1,127 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: gina-conveyor
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.3
5
- prerelease:
4
+ version: 0.2.4
6
5
  platform: ruby
7
6
  authors:
8
7
  - Will Fisher
9
8
  autorequire:
10
9
  bindir: bin
11
10
  cert_chain: []
12
- date: 2014-11-04 00:00:00.000000000 Z
11
+ date: 2015-07-24 00:00:00.000000000 Z
13
12
  dependencies:
14
13
  - !ruby/object:Gem::Dependency
15
14
  name: rake
16
15
  requirement: !ruby/object:Gem::Requirement
17
- none: false
18
16
  requirements:
19
- - - ! '>='
17
+ - - ">="
20
18
  - !ruby/object:Gem::Version
21
19
  version: '0'
22
20
  type: :development
23
21
  prerelease: false
24
22
  version_requirements: !ruby/object:Gem::Requirement
25
- none: false
26
23
  requirements:
27
- - - ! '>='
24
+ - - ">="
28
25
  - !ruby/object:Gem::Version
29
26
  version: '0'
30
27
  - !ruby/object:Gem::Dependency
31
28
  name: activemodel
32
29
  requirement: !ruby/object:Gem::Requirement
33
- none: false
34
30
  requirements:
35
- - - ~>
31
+ - - "~>"
36
32
  - !ruby/object:Gem::Version
37
33
  version: 4.1.0
38
34
  type: :runtime
39
35
  prerelease: false
40
36
  version_requirements: !ruby/object:Gem::Requirement
41
- none: false
42
37
  requirements:
43
- - - ~>
38
+ - - "~>"
44
39
  - !ruby/object:Gem::Version
45
40
  version: 4.1.0
46
41
  - !ruby/object:Gem::Dependency
47
42
  name: activesupport
48
43
  requirement: !ruby/object:Gem::Requirement
49
- none: false
50
44
  requirements:
51
- - - ~>
45
+ - - "~>"
52
46
  - !ruby/object:Gem::Version
53
47
  version: 4.1.0
54
48
  type: :runtime
55
49
  prerelease: false
56
50
  version_requirements: !ruby/object:Gem::Requirement
57
- none: false
58
51
  requirements:
59
- - - ~>
52
+ - - "~>"
60
53
  - !ruby/object:Gem::Version
61
54
  version: 4.1.0
62
55
  - !ruby/object:Gem::Dependency
63
56
  name: listen
64
57
  requirement: !ruby/object:Gem::Requirement
65
- none: false
66
58
  requirements:
67
- - - ~>
59
+ - - "~>"
68
60
  - !ruby/object:Gem::Version
69
- version: 2.7.11
61
+ version: '2.10'
70
62
  type: :runtime
71
63
  prerelease: false
72
64
  version_requirements: !ruby/object:Gem::Requirement
73
- none: false
74
65
  requirements:
75
- - - ~>
66
+ - - "~>"
76
67
  - !ruby/object:Gem::Version
77
- version: 2.7.11
68
+ version: '2.10'
78
69
  - !ruby/object:Gem::Dependency
79
70
  name: rainbow
80
71
  requirement: !ruby/object:Gem::Requirement
81
- none: false
82
72
  requirements:
83
- - - ~>
73
+ - - "~>"
84
74
  - !ruby/object:Gem::Version
85
75
  version: 2.0.0
86
76
  type: :runtime
87
77
  prerelease: false
88
78
  version_requirements: !ruby/object:Gem::Requirement
89
- none: false
90
79
  requirements:
91
- - - ~>
80
+ - - "~>"
92
81
  - !ruby/object:Gem::Version
93
82
  version: 2.0.0
94
83
  - !ruby/object:Gem::Dependency
95
84
  name: rb-readline
96
85
  requirement: !ruby/object:Gem::Requirement
97
- none: false
98
86
  requirements:
99
- - - ~>
87
+ - - "~>"
100
88
  - !ruby/object:Gem::Version
101
89
  version: 0.5.0
102
90
  type: :runtime
103
91
  prerelease: false
104
92
  version_requirements: !ruby/object:Gem::Requirement
105
- none: false
106
93
  requirements:
107
- - - ~>
94
+ - - "~>"
108
95
  - !ruby/object:Gem::Version
109
96
  version: 0.5.0
110
97
  - !ruby/object:Gem::Dependency
111
98
  name: eventmachine
112
99
  requirement: !ruby/object:Gem::Requirement
113
- none: false
114
100
  requirements:
115
- - - ~>
101
+ - - "~>"
116
102
  - !ruby/object:Gem::Version
117
103
  version: 1.0.0
118
104
  type: :runtime
119
105
  prerelease: false
120
106
  version_requirements: !ruby/object:Gem::Requirement
121
- none: false
122
107
  requirements:
123
- - - ~>
108
+ - - "~>"
124
109
  - !ruby/object:Gem::Version
125
110
  version: 1.0.0
126
111
  - !ruby/object:Gem::Dependency
127
112
  name: em-websocket
128
113
  requirement: !ruby/object:Gem::Requirement
129
- none: false
130
114
  requirements:
131
- - - ~>
115
+ - - "~>"
132
116
  - !ruby/object:Gem::Version
133
117
  version: 0.5.1
134
118
  type: :runtime
135
119
  prerelease: false
136
120
  version_requirements: !ruby/object:Gem::Requirement
137
- none: false
138
121
  requirements:
139
- - - ~>
122
+ - - "~>"
140
123
  - !ruby/object:Gem::Version
141
124
  version: 0.5.1
142
- - !ruby/object:Gem::Dependency
143
- name: tinder
144
- requirement: !ruby/object:Gem::Requirement
145
- none: false
146
- requirements:
147
- - - '='
148
- - !ruby/object:Gem::Version
149
- version: 1.10.0
150
- type: :runtime
151
- prerelease: false
152
- version_requirements: !ruby/object:Gem::Requirement
153
- none: false
154
- requirements:
155
- - - '='
156
- - !ruby/object:Gem::Version
157
- version: 1.10.0
158
125
  description: Conveyor is used for shuffling data around
159
126
  email:
160
127
  - will@gina.alaska.edu
@@ -163,7 +130,7 @@ executables:
163
130
  extensions: []
164
131
  extra_rdoc_files: []
165
132
  files:
166
- - .gitignore
133
+ - ".gitignore"
167
134
  - Gemfile
168
135
  - Gemfile.lock
169
136
  - LICENSE
@@ -179,7 +146,6 @@ files:
179
146
  - lib/conveyor/input/console.rb
180
147
  - lib/conveyor/job_state.rb
181
148
  - lib/conveyor/output.rb
182
- - lib/conveyor/output/campfire.rb
183
149
  - lib/conveyor/output/channel.rb
184
150
  - lib/conveyor/output/console.rb
185
151
  - lib/conveyor/output/email.rb
@@ -252,26 +218,25 @@ files:
252
218
  - worker-examples/devel.worker
253
219
  homepage: http://github.com/gina-alaska/conveyor.git
254
220
  licenses: []
221
+ metadata: {}
255
222
  post_install_message:
256
223
  rdoc_options: []
257
224
  require_paths:
258
225
  - lib
259
226
  required_ruby_version: !ruby/object:Gem::Requirement
260
- none: false
261
227
  requirements:
262
- - - ! '>='
228
+ - - ">="
263
229
  - !ruby/object:Gem::Version
264
230
  version: '0'
265
231
  required_rubygems_version: !ruby/object:Gem::Requirement
266
- none: false
267
232
  requirements:
268
- - - ! '>='
233
+ - - ">="
269
234
  - !ruby/object:Gem::Version
270
235
  version: '0'
271
236
  requirements: []
272
237
  rubyforge_project:
273
- rubygems_version: 1.8.23
238
+ rubygems_version: 2.4.5
274
239
  signing_key:
275
- specification_version: 3
240
+ specification_version: 4
276
241
  summary: GINA Data Conveyor
277
242
  test_files: []
@@ -1,29 +0,0 @@
1
- module Conveyor
2
- module Output
3
- class Campfire
4
- include Singleton
5
-
6
- def initialize
7
- @config = Conveyor::Foreman.instance.config[:campfire]
8
- @host = Socket.gethostname
9
-
10
- if enabled?
11
- @campfire = Tinder::Campfire.new @config[:subdomain], :token => @config[:token]
12
- end
13
- end
14
-
15
- def write(name, msgtype, *msg)
16
- return false if !enabled? or msgtype != :announce
17
-
18
- room = @campfire.find_room_by_name(@config[:room])
19
- Array(msg).each do |m|
20
- room.speak "[#{@host}::#{name}] #{m}"
21
- end
22
- end
23
-
24
- def enabled?
25
- !@config[:subdomain].empty? && !@config[:token].empty? && !@config[:room].empty?
26
- end
27
- end
28
- end
29
- end