iron_worker_ng 0.4.1 → 0.4.2

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.
data/README.md CHANGED
@@ -32,7 +32,6 @@ Each IronWorkerNG Ruby worker is just Ruby code. It can be as simple or as compl
32
32
  ```ruby
33
33
  puts "I'm worker"
34
34
  puts "My task_id is #{@iron_worker_task_id}"
35
- puts "I'm executing inside #{@iron_io_project_id} and was queued using #{@iron_io_token} token"
36
35
  puts "I got '#{params}' parameters"
37
36
  ```
38
37
 
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.4.1
1
+ 0.4.2
data/bin/iron_worker CHANGED
@@ -4,19 +4,36 @@ require 'optparse'
4
4
  require 'time'
5
5
  require 'iron_worker_ng'
6
6
 
7
- if $*.size == 0 || (not ['codes.create', 'tasks.create', 'schedules.create', 'tasks.log'].include?($*[0]))
7
+ if $*.size == 1 && ($*[0] == '-v' || $*[0] == '--version')
8
+ puts IronWorkerNG.full_version
9
+ exit 0
10
+ end
11
+
12
+ if $*.size == 0 || (not ['codes.create', 'upload', 'tasks.create', 'queue', 'schedules.create', 'schedule', 'tasks.log', 'log'].include?($*[0]))
8
13
  puts 'usage: iron_worker COMMAND [OPTIONS]'
9
- puts ' COMMAND: codes.create, tasks.create, schedules.create, tasks.log'
14
+ puts ' COMMAND: codes.create (upload), tasks.create (queue), schedules.create (schedule), tasks.log (log)'
10
15
  puts ' run iron_worker COMMAND --help to get more information about each command'
11
16
  exit 1
12
17
  end
13
18
 
14
- command = $*[0]
15
- $*.shift
19
+ command = $*.shift
20
+
21
+ command = 'codes.create' if command == 'upload'
22
+ command = 'tasks.create' if command == 'queue'
23
+ command = 'schedules.create' if command == 'schedule'
24
+ command = 'tasks.log' if command == 'log'
25
+
26
+ if level = ENV['LOG_LEVEL']
27
+ IronCore::Logger.logger.level = eval "::Logger::#{level}"
28
+ end
16
29
 
17
30
  client = IronWorkerNG::Client.new
18
31
 
19
32
  if command == 'codes.create'
33
+ if $*.size > 0 && $*[0][0] != '-'
34
+ $*.unshift('-n')
35
+ end
36
+
20
37
  runtimes = IronWorkerNG::Code::Base.registered_types
21
38
  runtimes_help = runtimes[0][:name] + ' (default)' + (runtimes.size == 1 ? '' : ', ') + runtimes.map { |r| r[:name] }[1 .. -1].join(', ')
22
39
 
@@ -57,7 +74,7 @@ if command == 'codes.create'
57
74
  exit 1
58
75
  end
59
76
 
60
- runtime = runtimes[0][:name] if runtime.nil?
77
+ runtime = 'ruby' if runtime.nil?
61
78
 
62
79
  code = runtimes.find { |r| r[:name] == runtime }[:klass].new(:name => name)
63
80
 
@@ -67,6 +84,10 @@ if command == 'codes.create'
67
84
 
68
85
  client.codes.create(code)
69
86
  elsif command == 'tasks.create' || command == 'schedules.create'
87
+ if $*.size > 0 && $*[0][0] != '-'
88
+ $*.unshift('-n')
89
+ end
90
+
70
91
  name = nil
71
92
  payload = nil
72
93
 
@@ -162,17 +183,21 @@ elsif command == 'tasks.create' || command == 'schedules.create'
162
183
 
163
184
  print id if print_id
164
185
  elsif command == 'tasks.log'
186
+ if $*.size > 0 && $*[0][0] != '-'
187
+ $*.unshift('-t')
188
+ end
189
+
165
190
  task_id = nil
166
191
  live = false
167
192
 
168
193
  opts = OptionParser.new do |opts|
169
194
  opts.banner = "usage: iron_worker #{command} [OPTIONS]"
170
195
 
171
- opts.on('-t --task-id ID', 'task id') do |v|
196
+ opts.on('-t', '--task-id ID', 'task id') do |v|
172
197
  task_id = v
173
198
  end
174
199
 
175
- opts.on('--live', 'live log session') do |v|
200
+ opts.on('-w', '--wait', 'wait for task') do |v|
176
201
  live = true
177
202
  end
178
203
  end
@@ -0,0 +1,111 @@
1
+ # source: https://github.com/intridea/hashie/blob/6d21c6868512603e77a340827ec91ecd3bcef078/lib/hashie/extensions/indifferent_access.rb
2
+ module Hashie
3
+ module Extensions
4
+ # IndifferentAccess gives you the ability to not care
5
+ # whether your hash has string or symbol keys. Made famous
6
+ # in Rails for accessing query and POST parameters, this
7
+ # is a handy tool for making sure your hash has maximum
8
+ # utility.
9
+ #
10
+ # One unique feature of this mixin is that it will recursively
11
+ # inject itself into sub-hash instances without modifying
12
+ # the actual class of the sub-hash.
13
+ #
14
+ # @example
15
+ # class MyHash < Hash
16
+ # include Hashie::Extensions::MergeInitializer
17
+ # include Hashie::Extensions::IndifferentAccess
18
+ # end
19
+ #
20
+ # h = MyHash.new(:foo => 'bar', 'baz' => 'blip')
21
+ # h['foo'] # => 'bar'
22
+ # h[:foo] # => 'bar'
23
+ # h[:baz] # => 'blip'
24
+ # h['baz'] # => 'blip'
25
+ #
26
+ module IndifferentAccess
27
+ def self.included(base)
28
+ base.class_eval do
29
+ alias_method :regular_writer, :[]=
30
+ alias_method :[]=, :indifferent_writer
31
+ %w(default update fetch delete key? values_at).each do |m|
32
+ alias_method "regular_#{m}", m
33
+ alias_method m, "indifferent_#{m}"
34
+ end
35
+ end
36
+ end
37
+
38
+ # This will inject indifferent access into an instance of
39
+ # a hash without modifying the actual class. This is what
40
+ # allows IndifferentAccess to spread to sub-hashes.
41
+ def self.inject!(hash)
42
+ (class << hash; self; end).send :include, Hashie::Extensions::IndifferentAccess
43
+ hash.convert!
44
+ end
45
+
46
+ # Injects indifferent access into a duplicate of the hash
47
+ # provided. See #inject!
48
+ def self.inject(hash)
49
+ inject!(hash.dup)
50
+ end
51
+
52
+ def convert_key(key)
53
+ key.to_s
54
+ end
55
+
56
+ # Iterates through the keys and values, reconverting them to
57
+ # their proper indifferent state. Used when IndifferentAccess
58
+ # is injecting itself into member hashes.
59
+ def convert!
60
+ keys.each do |k|
61
+ regular_writer convert_key(k), convert_value(self.regular_delete(k))
62
+ end
63
+ self
64
+ end
65
+
66
+ def convert_value(value)
67
+ if hash_lacking_indifference?(value)
68
+ Hashie::Extensions::IndifferentAccess.inject(value.dup)
69
+ elsif value.is_a?(::Array)
70
+ value.dup.replace(value.map { |e| convert_value(e) })
71
+ else
72
+ value
73
+ end
74
+ end
75
+
76
+ def indifferent_default(key = nil)
77
+ return self[convert_key(key)] if key?(key)
78
+ regular_default(key)
79
+ end
80
+
81
+ def indifferent_update(other_hash)
82
+ return regular_update(other_hash) if hash_with_indifference?(other_hash)
83
+ other_hash.each_pair do |k,v|
84
+ self[k] = v
85
+ end
86
+ end
87
+
88
+ def indifferent_writer(key, value); regular_writer convert_key(key), convert_value(value) end
89
+ def indifferent_fetch(key, *args); regular_fetch convert_key(key), *args end
90
+ def indifferent_delete(key); regular_delete convert_key(key) end
91
+ def indifferent_key?(key); regular_key? convert_key(key) end
92
+ def indifferent_values_at(*indices); indices.map{|i| self[i] } end
93
+
94
+ def indifferent_access?; true end
95
+
96
+ protected
97
+
98
+ def hash_lacking_indifference?(other)
99
+ other.is_a?(::Hash) &&
100
+ !(other.respond_to?(:indifferent_access?) &&
101
+ other.indifferent_access?)
102
+ end
103
+
104
+ def hash_with_indifference?(other)
105
+ other.is_a?(::Hash) &&
106
+ other.respond_to?(:indifferent_access?) &&
107
+ other.indifferent_access?
108
+ end
109
+ end
110
+ end
111
+ end
@@ -0,0 +1,25 @@
1
+ # source: https://github.com/intridea/hashie/blob/6d21c6868512603e77a340827ec91ecd3bcef078/lib/hashie/extensions/merge_initializer.rb
2
+ module Hashie
3
+ module Extensions
4
+ # The MergeInitializer is a super-simple mixin that allows
5
+ # you to initialize a subclass of Hash with another Hash
6
+ # to give you faster startup time for Hash subclasses. Note
7
+ # that you can still provide a default value as a second
8
+ # argument to the initializer.
9
+ #
10
+ # @example
11
+ # class MyHash < Hash
12
+ # include Hashie::Extensions::MergeInitializer
13
+ # end
14
+ #
15
+ # h = MyHash.new(:abc => 'def')
16
+ # h[:abc] # => 'def'
17
+ #
18
+ module MergeInitializer
19
+ def initialize(hash = {}, default = nil, &block)
20
+ default ? super(default) : super(&block)
21
+ update(hash)
22
+ end
23
+ end
24
+ end
25
+ end
@@ -13,7 +13,7 @@ module IronWorkerNG
13
13
  :host => IronWorkerNG::APIClient::AWS_US_EAST_HOST,
14
14
  :port => 443,
15
15
  :api_version => 2,
16
- :user_agent => 'iron_worker_ruby_ng-' + IronWorkerNG.version + ' (iron_core_ruby-' + IronCore.version + ')')
16
+ :user_agent => IronWorkerNG.full_version)
17
17
 
18
18
  if (not @token) || (not @project_id)
19
19
  IronCore::Logger.error 'IronWorkerNG', 'Both token and project_id must be specified'
@@ -31,6 +31,14 @@ module IronWorkerNG
31
31
  end
32
32
  end
33
33
 
34
+ def token
35
+ @api.token
36
+ end
37
+
38
+ def project_id
39
+ @api.project_id
40
+ end
41
+
34
42
  def method_missing(name, *args, &block)
35
43
  if args.length == 0
36
44
  IronWorkerNG::ClientProxyCaller.new(self, name)
@@ -49,10 +57,10 @@ module IronWorkerNG
49
57
 
50
58
  def codes_create(code)
51
59
  zip_file = code.create_zip
52
- @api.codes_create(code.name, zip_file, code.runtime, code.runner)
60
+ res = @api.codes_create(code.name, zip_file, code.runtime, code.runner)
53
61
  File.unlink(zip_file)
54
62
 
55
- true
63
+ OpenStruct.new(res)
56
64
  end
57
65
 
58
66
  def codes_delete(code_id)
@@ -8,8 +8,8 @@ require_relative '../feature/common/merge_dir'
8
8
  module IronWorkerNG
9
9
  module Code
10
10
  class Base
11
- attr_accessor :name
12
11
  attr_reader :features
12
+ attr_accessor :name
13
13
 
14
14
  @@registered_types = []
15
15
 
@@ -49,19 +49,35 @@ module IronWorkerNG
49
49
 
50
50
  if args.length == 1 && args[0].class == Hash && ((not args[0][:workerfile].nil?) || (not args[0]['workerfile'].nil?))
51
51
  eval(File.read(File.expand_path(args[0][:workerfile] || args[0]['workerfile'])))
52
- else
53
- if (not @name.nil?) && File.exists?(@name + '.worker')
54
- eval(File.read(@name + '.worker'))
55
- end
52
+ end
56
53
 
57
- if File.exists?('Workerfile')
58
- eval(File.read('Workerfile'))
59
- end
54
+ unless @exec.nil?
55
+ @name ||= guess_name(@exec.path)
56
+ end
57
+
58
+ if (not @name.nil?) && File.exists?(@name + '.worker')
59
+ eval(File.read(@name + '.worker'))
60
+ end
61
+
62
+ if (not @name.nil?) && File.exists?(@name + '.workerfile')
63
+ eval(File.read(@name + '.workerfile'))
64
+ end
65
+
66
+ if File.exists?('Workerfile')
67
+ eval(File.read('Workerfile'))
60
68
  end
61
69
 
62
70
  unless block.nil?
63
71
  instance_eval(&block)
64
72
  end
73
+
74
+ unless @exec.nil?
75
+ @name ||= guess_name(@exec.path)
76
+ end
77
+ end
78
+
79
+ def guess_name(path)
80
+ File.basename(path).gsub(/\..*$/, '').capitalize.gsub(/_./) { |x| x[1].upcase }
65
81
  end
66
82
 
67
83
  def fixate
@@ -92,6 +108,8 @@ module IronWorkerNG
92
108
 
93
109
  fixate
94
110
 
111
+ @name ||= guess_name(@exec.path)
112
+
95
113
  zip_name = Dir.tmpdir + '/' + Dir::Tmpname.make_tmpname("iron-worker-ng-", "code.zip")
96
114
 
97
115
  IronCore::Logger.debug 'IronWorkerNG', "Creating code zip '#{zip_name}'"
@@ -107,10 +125,6 @@ module IronWorkerNG
107
125
  def create_runner(zip)
108
126
  end
109
127
 
110
- def runtime
111
- nil
112
- end
113
-
114
128
  def runner
115
129
  nil
116
130
  end
@@ -9,7 +9,7 @@ module IronWorkerNG
9
9
  zip.get_output_stream(runner) do |runner|
10
10
  runner.write <<RUNNER
11
11
  #!/bin/sh
12
- # iron_worker_ng-#{IronWorkerNG.version}
12
+ # iron_worker_ng-#{IronWorkerNG.full_version}
13
13
 
14
14
  root() {
15
15
  while [ $# -gt 0 ]; do
@@ -29,7 +29,7 @@ RUNNER
29
29
  end
30
30
  end
31
31
 
32
- def runtime
32
+ def runtime(runtime = nil)
33
33
  'sh'
34
34
  end
35
35
 
@@ -23,7 +23,7 @@ module IronWorkerNG
23
23
  zip.get_output_stream(runner) do |runner|
24
24
  runner.write <<RUNNER
25
25
  #!/bin/sh
26
- # iron_worker_ng-#{IronWorkerNG.version}
26
+ # iron_worker_ng-#{IronWorkerNG.full_version}
27
27
 
28
28
  root() {
29
29
  while [ $# -gt 0 ]; do
@@ -41,7 +41,7 @@ RUNNER
41
41
  end
42
42
  end
43
43
 
44
- def runtime
44
+ def runtime(runtime = nil)
45
45
  'sh'
46
46
  end
47
47
 
@@ -9,7 +9,7 @@ module IronWorkerNG
9
9
  zip.get_output_stream(runner) do |runner|
10
10
  runner.write <<RUNNER
11
11
  #!/bin/sh
12
- # iron_worker_ng-#{IronWorkerNG.version}
12
+ # iron_worker_ng-#{IronWorkerNG.full_version}
13
13
 
14
14
  root() {
15
15
  while [ $# -gt 0 ]; do
@@ -27,7 +27,7 @@ RUNNER
27
27
  end
28
28
  end
29
29
 
30
- def runtime
30
+ def runtime(runtime = nil)
31
31
  'sh'
32
32
  end
33
33
 
@@ -22,151 +22,16 @@ module IronWorkerNG
22
22
 
23
23
  zip.get_output_stream(runner) do |runner|
24
24
  runner.write <<RUNNER
25
- # iron_worker_ng-#{IronWorkerNG.version}
26
-
27
- # https://github.com/intridea/hashie/ 6d21c6868512603e77a340827ec91ecd3bcef078 START
28
-
29
- module Hashie
30
- module Extensions
31
- # The MergeInitializer is a super-simple mixin that allows
32
- # you to initialize a subclass of Hash with another Hash
33
- # to give you faster startup time for Hash subclasses. Note
34
- # that you can still provide a default value as a second
35
- # argument to the initializer.
36
- #
37
- # @example
38
- # class MyHash < Hash
39
- # include Hashie::Extensions::MergeInitializer
40
- # end
41
- #
42
- # h = MyHash.new(:abc => 'def')
43
- # h[:abc] # => 'def'
44
- #
45
- module MergeInitializer
46
- def initialize(hash = {}, default = nil, &block)
47
- default ? super(default) : super(&block)
48
- update(hash)
49
- end
50
- end
51
- end
52
- end
53
-
54
- module Hashie
55
- module Extensions
56
- # IndifferentAccess gives you the ability to not care
57
- # whether your hash has string or symbol keys. Made famous
58
- # in Rails for accessing query and POST parameters, this
59
- # is a handy tool for making sure your hash has maximum
60
- # utility.
61
- #
62
- # One unique feature of this mixin is that it will recursively
63
- # inject itself into sub-hash instances without modifying
64
- # the actual class of the sub-hash.
65
- #
66
- # @example
67
- # class MyHash < Hash
68
- # include Hashie::Extensions::MergeInitializer
69
- # include Hashie::Extensions::IndifferentAccess
70
- # end
71
- #
72
- # h = MyHash.new(:foo => 'bar', 'baz' => 'blip')
73
- # h['foo'] # => 'bar'
74
- # h[:foo] # => 'bar'
75
- # h[:baz] # => 'blip'
76
- # h['baz'] # => 'blip'
77
- #
78
- module IndifferentAccess
79
- def self.included(base)
80
- base.class_eval do
81
- alias_method :regular_writer, :[]=
82
- alias_method :[]=, :indifferent_writer
83
- %w(default update fetch delete key? values_at).each do |m|
84
- alias_method "regular_\#{m}", m
85
- alias_method m, "indifferent_\#{m}"
86
- end
87
- end
88
- end
89
-
90
- # This will inject indifferent access into an instance of
91
- # a hash without modifying the actual class. This is what
92
- # allows IndifferentAccess to spread to sub-hashes.
93
- def self.inject!(hash)
94
- (class << hash; self; end).send :include, Hashie::Extensions::IndifferentAccess
95
- hash.convert!
96
- end
97
-
98
- # Injects indifferent access into a duplicate of the hash
99
- # provided. See #inject!
100
- def self.inject(hash)
101
- inject!(hash.dup)
102
- end
103
-
104
- def convert_key(key)
105
- key.to_s
106
- end
107
-
108
- # Iterates through the keys and values, reconverting them to
109
- # their proper indifferent state. Used when IndifferentAccess
110
- # is injecting itself into member hashes.
111
- def convert!
112
- keys.each do |k|
113
- regular_writer convert_key(k), convert_value(self.regular_delete(k))
114
- end
115
- self
116
- end
117
-
118
- def convert_value(value)
119
- if hash_lacking_indifference?(value)
120
- Hashie::Extensions::IndifferentAccess.inject(value.dup)
121
- elsif value.is_a?(::Array)
122
- value.dup.replace(value.map { |e| convert_value(e) })
123
- else
124
- value
125
- end
126
- end
127
-
128
- def indifferent_default(key = nil)
129
- return self[convert_key(key)] if key?(key)
130
- regular_default(key)
131
- end
132
-
133
- def indifferent_update(other_hash)
134
- return regular_update(other_hash) if hash_with_indifference?(other_hash)
135
- other_hash.each_pair do |k,v|
136
- self[k] = v
137
- end
138
- end
139
-
140
- def indifferent_writer(key, value); regular_writer convert_key(key), convert_value(value) end
141
- def indifferent_fetch(key, *args); regular_fetch convert_key(key), *args end
142
- def indifferent_delete(key); regular_delete convert_key(key) end
143
- def indifferent_key?(key); regular_key? convert_key(key) end
144
- def indifferent_values_at(*indices); indices.map{|i| self[i] } end
145
-
146
- def indifferent_access?; true end
147
-
148
- protected
149
-
150
- def hash_lacking_indifference?(other)
151
- other.is_a?(::Hash) &&
152
- !(other.respond_to?(:indifferent_access?) &&
153
- other.indifferent_access?)
154
- end
25
+ # iron_worker_ng-#{IronWorkerNG.full_version}
155
26
 
156
- def hash_with_indifference?(other)
157
- other.is_a?(::Hash) &&
158
- other.respond_to?(:indifferent_access?) &&
159
- other.indifferent_access?
160
- end
161
- end
162
- end
27
+ module IronWorkerNG
28
+ #{File.read(File.dirname(__FILE__) + '/../../3rdparty/hashie/merge_initializer.rb')}
29
+ #{File.read(File.dirname(__FILE__) + '/../../3rdparty/hashie/indifferent_access.rb')}
163
30
  end
164
31
 
165
- # https://github.com/intridea/hashie/ 6d21c6868512603e77a340827ec91ecd3bcef078 END
166
-
167
32
  class IronWorkerNGHash < Hash
168
- include Hashie::Extensions::MergeInitializer
169
- include Hashie::Extensions::IndifferentAccess
33
+ include IronWorkerNG::Hashie::Extensions::MergeInitializer
34
+ include IronWorkerNG::Hashie::Extensions::IndifferentAccess
170
35
  end
171
36
 
172
37
  root = nil
@@ -212,14 +77,8 @@ end
212
77
 
213
78
  require '#{File.basename(@exec.path)}'
214
79
 
215
- exec_class = nil
216
-
217
- begin
80
+ unless #{@exec.klass == nil}
218
81
  exec_class = Kernel.const_get('#{@exec.klass}')
219
- rescue
220
- end
221
-
222
- unless exec_class.nil?
223
82
  exec_inst = exec_class.new
224
83
 
225
84
  params.keys.each do |param|
@@ -236,7 +95,7 @@ RUNNER
236
95
  end
237
96
  end
238
97
 
239
- def runtime
98
+ def runtime(runtime = nil)
240
99
  'ruby'
241
100
  end
242
101
 
@@ -6,6 +6,11 @@ module IronWorkerNG
6
6
  attr_reader :path
7
7
 
8
8
  def initialize(path)
9
+ unless File.exist?(path)
10
+ IronCore::Logger.error 'IronWorkerNG', "Can't find binary exec with path='#{path}'"
11
+ raise IronCore::IronError.new("Can't find binary exec with path='#{path}'")
12
+ end
13
+
9
14
  @path = File.expand_path(path)
10
15
  end
11
16
 
@@ -29,8 +34,6 @@ module IronWorkerNG
29
34
  return
30
35
  end
31
36
 
32
- @name ||= File.basename(path).gsub(/\..*$/, '').capitalize.gsub(/_./) { |x| x[1].upcase }
33
-
34
37
  @exec = IronWorkerNG::Feature::Binary::MergeExec::Feature.new(path)
35
38
 
36
39
  IronCore::Logger.info 'IronWorkerNG', "Merging binary exec with path='#{path}'"
@@ -7,6 +7,11 @@ module IronWorkerNG
7
7
  attr_reader :klass
8
8
 
9
9
  def initialize(path, klass)
10
+ unless File.exist?(path)
11
+ IronCore::Logger.error 'IronWorkerNG', "Can't find java exec with path='#{path}'"
12
+ raise IronCore::IronError.new("Can't find java exec with path='#{path}'")
13
+ end
14
+
10
15
  @path = File.expand_path(path)
11
16
  @klass = klass
12
17
  end
@@ -35,12 +40,6 @@ module IronWorkerNG
35
40
  return
36
41
  end
37
42
 
38
- if klass.nil?
39
- @name ||= File.basename(path).gsub(/\.jar$/, '').capitalize.gsub(/_./) { |x| x[1].upcase }
40
- else
41
- @name ||= klass.split('.')[-1]
42
- end
43
-
44
43
  @exec = IronWorkerNG::Feature::Java::MergeExec::Feature.new(path, klass)
45
44
 
46
45
  IronCore::Logger.info 'IronWorkerNG', "Merging java exec with path='#{path}' and class='#{klass}'"
@@ -6,6 +6,11 @@ module IronWorkerNG
6
6
  attr_reader :path
7
7
 
8
8
  def initialize(path)
9
+ unless File.exist?(path)
10
+ IronCore::Logger.error 'IronWorkerNG', "Can't find java jar with path='#{path}'"
11
+ raise IronCore::IronError.new("Can't find java jar with path='#{path}'")
12
+ end
13
+
9
14
  @path = File.expand_path(path)
10
15
  end
11
16
 
@@ -6,6 +6,11 @@ module IronWorkerNG
6
6
  attr_reader :path
7
7
 
8
8
  def initialize(path)
9
+ unless File.exist?(path)
10
+ IronCore::Logger.error 'IronWorkerNG', "Can't find node exec with path='#{path}'"
11
+ raise IronCore::IronError.new("Can't find node exec with path='#{path}'")
12
+ end
13
+
9
14
  @path = File.expand_path(path)
10
15
  end
11
16
 
@@ -29,8 +34,6 @@ module IronWorkerNG
29
34
  return
30
35
  end
31
36
 
32
- @name ||= File.basename(path).gsub(/\.js$/, '').capitalize.gsub(/_./) { |x| x[1].upcase }
33
-
34
37
  @exec = IronWorkerNG::Feature::Node::MergeExec::Feature.new(path)
35
38
 
36
39
  IronCore::Logger.info 'IronWorkerNG', "Merging node exec with path='#{path}'"
@@ -7,6 +7,11 @@ module IronWorkerNG
7
7
  attr_reader :klass
8
8
 
9
9
  def initialize(path, klass)
10
+ unless File.exist?(path)
11
+ IronCore::Logger.error 'IronWorkerNG', "Can't find ruby exec with path='#{path}'"
12
+ raise IronCore::IronError.new("Can't find ruby exec with path='#{path}'")
13
+ end
14
+
10
15
  @path = File.expand_path(path)
11
16
  @klass = klass
12
17
  end
@@ -26,17 +31,11 @@ module IronWorkerNG
26
31
  def merge_exec(path, klass = nil)
27
32
  @exec ||= nil
28
33
 
29
- if klass == nil
30
- klass = File.basename(path).gsub(/\.rb$/, '').capitalize.gsub(/_./) { |x| x[1].upcase }
31
- end
32
-
33
34
  unless @exec.nil?
34
35
  IronCore::Logger.warn 'IronWorkerNG', "Ignoring attempt to merge ruby exec with path='#{path}' and class='#{klass}'"
35
36
  return
36
37
  end
37
38
 
38
- @name ||= klass
39
-
40
39
  @exec = IronWorkerNG::Feature::Ruby::MergeExec::Feature.new(path, klass)
41
40
 
42
41
  IronCore::Logger.info 'IronWorkerNG', "Merging ruby exec with path='#{path}' and class='#{klass}'"
@@ -4,4 +4,8 @@ module IronWorkerNG
4
4
  def self.version
5
5
  @@version ||= File.read(File.dirname(__FILE__) + '/../../VERSION').strip
6
6
  end
7
+
8
+ def self.full_version
9
+ 'iron_worker_ruby_ng-' + IronWorkerNG.version + ' (iron_core_ruby-' + IronCore.version + ')'
10
+ end
7
11
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: iron_worker_ng
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.1
4
+ version: 0.4.2
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -10,7 +10,7 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2012-05-01 00:00:00.000000000 Z
13
+ date: 2012-05-18 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: iron_core
@@ -44,22 +44,6 @@ dependencies:
44
44
  - - ! '>='
45
45
  - !ruby/object:Gem::Version
46
46
  version: '0'
47
- - !ruby/object:Gem::Dependency
48
- name: json
49
- requirement: !ruby/object:Gem::Requirement
50
- none: false
51
- requirements:
52
- - - ! '>='
53
- - !ruby/object:Gem::Version
54
- version: '0'
55
- type: :runtime
56
- prerelease: false
57
- version_requirements: !ruby/object:Gem::Requirement
58
- none: false
59
- requirements:
60
- - - ! '>='
61
- - !ruby/object:Gem::Version
62
- version: '0'
63
47
  - !ruby/object:Gem::Dependency
64
48
  name: bundler
65
49
  requirement: !ruby/object:Gem::Requirement
@@ -77,21 +61,21 @@ dependencies:
77
61
  - !ruby/object:Gem::Version
78
62
  version: 1.0.0
79
63
  - !ruby/object:Gem::Dependency
80
- name: jeweler
64
+ name: jeweler2
81
65
  requirement: !ruby/object:Gem::Requirement
82
66
  none: false
83
67
  requirements:
84
- - - ~>
68
+ - - ! '>='
85
69
  - !ruby/object:Gem::Version
86
- version: 1.8.3
70
+ version: '0'
87
71
  type: :development
88
72
  prerelease: false
89
73
  version_requirements: !ruby/object:Gem::Requirement
90
74
  none: false
91
75
  requirements:
92
- - - ~>
76
+ - - ! '>='
93
77
  - !ruby/object:Gem::Version
94
- version: 1.8.3
78
+ version: '0'
95
79
  description: New generation ruby client for IronWorker
96
80
  email: info@iron.io
97
81
  executables:
@@ -105,6 +89,8 @@ files:
105
89
  - README.md
106
90
  - VERSION
107
91
  - bin/iron_worker
92
+ - lib/3rdparty/hashie/indifferent_access.rb
93
+ - lib/3rdparty/hashie/merge_initializer.rb
108
94
  - lib/iron_worker_ng.rb
109
95
  - lib/iron_worker_ng/api_client.rb
110
96
  - lib/iron_worker_ng/client.rb
@@ -138,7 +124,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
138
124
  version: '0'
139
125
  segments:
140
126
  - 0
141
- hash: -520853037
127
+ hash: -641630419
142
128
  required_rubygems_version: !ruby/object:Gem::Requirement
143
129
  none: false
144
130
  requirements:
@@ -147,7 +133,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
147
133
  version: '0'
148
134
  requirements: []
149
135
  rubyforge_project:
150
- rubygems_version: 1.8.19
136
+ rubygems_version: 1.8.24
151
137
  signing_key:
152
138
  specification_version: 3
153
139
  summary: New generation ruby client for IronWorker