kimchi 0.0.12 → 0.0.13

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 50be63f68126fd189265feaeecfa47d6fd26fff4
4
- data.tar.gz: 517917d868b5133200cd51c167219dc0b85687f3
3
+ metadata.gz: 8d50d4f46433a4071a80b5fcf8be535a0c7a1b71
4
+ data.tar.gz: 0310d6289c82dceb4e8ac8e1a176ed3992992943
5
5
  SHA512:
6
- metadata.gz: d1914caa884c20a3842e0941a7e4b1acf4776819f66be697ec75724d0eb051b8b379792781e606ddcf6d86fd5177bf2dfa3f8d80eb3d2dd6266b3fb8c808e581
7
- data.tar.gz: a9683d576c905eb44ae74048cd16e206c88244a812d874f84dd960818ac88fce0f9897e50c3a3503a61040bb0e8c94e0b32ec0075aa8ba39d52080c47778d211
6
+ metadata.gz: 8cdccaf36078dc2f0d4ba0ca5d754322b3a461a2d4129edf69e62de2da9b09f4734cb38c276cef6ff27b8b0e75240a3cb117fa3afee4d159815798ec5c4d3b8f
7
+ data.tar.gz: 58d20f5e0145a38ffd35e59051313429d837dcf715e371dba9153a95cefda6bf71b3152199233e658cbe8d16292fed7bcaf70dcb980cca2796df0912a6c1341d
data/kimchi.gemspec CHANGED
@@ -4,23 +4,23 @@ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
4
  require 'kimchi/version'
5
5
 
6
6
  Gem::Specification.new do |spec|
7
- spec.name = "kimchi"
7
+ spec.name = 'kimchi'
8
8
  spec.version = Kimchi::VERSION
9
- spec.authors = ["Taylor Gautier", "David Berkman"]
10
- spec.email = ["robot@icix-usa.com"]
9
+ spec.authors = ['Taylor Gautier', 'David Berkman']
10
+ spec.email = ['robot@icix-usa.com']
11
11
  spec.summary = %q{Various frameworks and utilities to accelerate ICIX bdd tests}
12
12
  spec.description = %q{BDD testing frameworks and utilities}
13
- spec.homepage = "http://www.icix.com"
14
- spec.license = "MIT"
13
+ spec.homepage = 'http://www.icix.com'
14
+ spec.license = 'MIT'
15
15
 
16
16
  spec.files = `git ls-files`.split($/)
17
17
  spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
18
18
  spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
19
- spec.require_paths = ["lib"]
19
+ spec.require_paths = ['lib']
20
20
 
21
- spec.add_development_dependency "bundler", "~> 1.3"
22
- spec.add_development_dependency "rake"
21
+ spec.add_development_dependency 'bundler', '~> 1.3'
22
+ spec.add_development_dependency 'rake'
23
23
 
24
- spec.add_dependency "uuid"
25
- spec.add_dependency "bunny"
24
+ spec.add_dependency 'uuid'
25
+ spec.add_dependency 'bunny'
26
26
  end
@@ -1,3 +1,3 @@
1
1
  module Kimchi
2
- VERSION = "0.0.12"
2
+ VERSION = "0.0.13"
3
3
  end
data/lib/wire.rb CHANGED
@@ -1,8 +1,8 @@
1
- require "rubygems"
2
- require "fiber"
3
- require "uuid"
4
- require "bunny"
5
- require "net/http"
1
+ require 'rubygems'
2
+ require 'fiber'
3
+ require 'uuid'
4
+ require 'bunny'
5
+ require 'net/http'
6
6
 
7
7
  module Wire
8
8
 
@@ -15,17 +15,17 @@ module Wire
15
15
  end
16
16
 
17
17
  # ignore this for any real service call, the http endpoint is evidently incapable of getting this from a header
18
- def service= service
18
+ def service= (service)
19
19
  @service=service
20
20
  end
21
21
 
22
22
  # ignore this for any real service call, the http endpoint is evidently incapable of getting this from a header
23
- def version= version
23
+ def version= (version)
24
24
  @version=version
25
25
  end
26
26
 
27
27
  def to_json
28
- "{\"endpoint\": \"#{@name}\"" + ((@signature == nil) ? "" : ", \"signature\": #{@signature}") + ((@result_type == nil) ? "" : ", \"resultType\": \"#{@result_type}\"") + ((@native_type == nil) ? "" : ", \"nativeType\": \"#{@native_type}\"") + ((@service == nil) ? "" : ", \"service\": \"#{@service}\"") + ((@version == nil) ? "" : ", \"version\": \"#{@version}\"") + "}"
28
+ "{'endpoint': '#{@name}'" + ((@signature == nil) ? '' : ", 'signature': #{@signature}") + ((@result_type == nil) ? '' : ", 'resultType': '#{@result_type}'") + ((@native_type == nil) ? '' : ", 'nativeType': '#{@native_type}'") + ((@service == nil) ? '' : ", 'service': '#{@service}'") + ((@version == nil) ? '' : ", 'version': '#{@version}'") + '}'
29
29
  end
30
30
  end
31
31
 
@@ -40,7 +40,7 @@ module Wire
40
40
  @function
41
41
  end
42
42
 
43
- def contexts= contexts
43
+ def contexts= (contexts)
44
44
  @contexts=contexts
45
45
  end
46
46
 
@@ -49,7 +49,7 @@ module Wire
49
49
  end
50
50
 
51
51
  def to_json
52
- "{\"address\": #{@function.to_json}, \"body\": #{@arguments.to_json}, \"contexts\": #{@contexts.to_json}}"
52
+ "{'address': #{@function.to_json}, 'body': #{@arguments.to_json}, 'contexts': #{@contexts.to_json}}"
53
53
  end
54
54
  end
55
55
 
@@ -94,7 +94,7 @@ module Wire
94
94
  @result = result
95
95
  end
96
96
 
97
- def timeout ()
97
+ def timeout
98
98
  raise Timeout::Error.new
99
99
  end
100
100
  end
@@ -139,13 +139,13 @@ module Wire
139
139
  end
140
140
 
141
141
  def transmit_in_only(service_name, version, invocation_signal)
142
- initialize_service(service_name).publish(invocation_signal.to_json, :routing_key => "#{version}.2", :headers => {"x-opt-callerId" => "#{@caller_id}"}, :content_type => "application/json", :message_id => "#{@uuid.generate}", :timestamp => Time.new.to_i)
142
+ initialize_service(service_name).publish(invocation_signal.to_json, :routing_key => "#{version}.2", :headers => {'x-opt-callerId' => "#{@caller_id}"}, :content_type => 'application/json', :message_id => "#{@uuid.generate}", :timestamp => Time.new.to_i)
143
143
  end
144
144
 
145
145
  def transmit(service_name, version, invocation_signal, timeout_seconds)
146
146
  message_id = "#{@uuid.generate}".freeze
147
147
  @message_hash[message_id] = MessageCallback.new(@message_hash, message_id, message = Message.new, timeout_seconds)
148
- initialize_service(service_name).publish(invocation_signal.to_json, :routing_key => "#{version}.2", :headers => {"x-opt-callerId" => "#{@caller_id}"}, :content_type => "application/json", :message_id => "#{message_id}", :timestamp => Time.new.to_i)
148
+ initialize_service(service_name).publish(invocation_signal.to_json, :routing_key => "#{version}.2", :headers => {'x-opt-callerId' => "#{@caller_id}"}, :content_type => 'application/json', :message_id => "#{message_id}", :timestamp => Time.new.to_i)
149
149
 
150
150
  message
151
151
  end
@@ -153,9 +153,11 @@ module Wire
153
153
 
154
154
  class HttpTransport
155
155
  def initialize (host, port = nil)
156
+ @type_signatures = {'Fixnum'.freeze => 'I', 'String'.freeze => 'G', 'Array'.freeze => '!Enumerable', 'Hash'.freeze => '!Dictionary'}
157
+
156
158
  @host = host
157
- if !port.nil?
158
- @host += ":" + port
159
+ if port != nil
160
+ @host += ':' + port
159
161
  end
160
162
  end
161
163
 
@@ -164,7 +166,7 @@ module Wire
164
166
 
165
167
  begin
166
168
  uri = URI("#{@host}/api/message")
167
- headers = {"Content-Type" => "application/json"}
169
+ headers = {'Content-Type' => 'application/json'}
168
170
  http = Net::HTTP.new(uri.host, uri.port)
169
171
  http.read_timeout = timeout_seconds
170
172
 
@@ -190,5 +192,32 @@ module Wire
190
192
 
191
193
  message
192
194
  end
195
+
196
+ # call a service method
197
+ def call(service, method, args = nil, result_type = nil)
198
+ function = Function.new(method, (args == nil) ? nil : get_signature(args), result_type)
199
+ contexts = [
200
+ {'auth'.freeze => {'user'.freeze => {'id'.freeze => '1'}, 'organization'.freeze => {'id'.freeze => '1'}, 'proxy'.freeze => {'id'.freeze => '-1'}}},
201
+ {'core'.freeze => {'transaction'.freeze => {'id'.freeze => UUID.new.generate.to_s}, 'stream'.freeze => {'id'.freeze => UUID.new.generate.to_s}}}
202
+ ]
203
+
204
+ # puts 'Calling ' + service + '.' + method #+ signature.to_s
205
+ message = self.transmit(service, '1', InvocationSignal.new(function, args, contexts), 60)
206
+ result = message.result
207
+ return result['body']
208
+ end
209
+
210
+ # return array with the type of each argument
211
+ def get_signature(args)
212
+ arg_types=[]
213
+ args.each do |arg|
214
+ arg_types.push(get_type(arg))
215
+ end
216
+ return arg_types
217
+ end
218
+
219
+ def get_type (arg)
220
+ return @type_signatures[arg.class.to_s]
221
+ end
193
222
  end
194
223
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: kimchi
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.12
4
+ version: 0.0.13
5
5
  platform: ruby
6
6
  authors:
7
7
  - Taylor Gautier
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-11-22 00:00:00.000000000 Z
12
+ date: 2013-11-26 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: bundler