orange_lib 0.1.0
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.
- checksums.yaml +7 -0
- data/lib/ojdbc14.jar +0 -0
- data/lib/orange_lib.rb +12 -0
- data/lib/orange_lib/cassandra_handler.rb +31 -0
- data/lib/orange_lib/command_line.rb +21 -0
- data/lib/orange_lib/oracle_handler.rb +148 -0
- data/lib/orange_lib/rest.rb +102 -0
- data/lib/orange_lib/vars.rb +74 -0
- data/lib/orange_lib/version.rb +3 -0
- metadata +212 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: f14d0448ea4ce673a6e577226fe7d948bbc01520
|
4
|
+
data.tar.gz: 05cdf17759eb28d8883e524382d71aba24e06a11
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: d0c112b747dc074614f126bc4301ba70f28549c96d14baae0045a0b2a43eed27ac47340afdabcf73828c9e2bdba8a1edaee420a4ab3ff5b48b7cf62010506f1a
|
7
|
+
data.tar.gz: 4e8a6c2d2e30abb88de70e8446a50cff122025a606943cb0099338542dd3ca09fee91e83ed9d4166bb19a1d7e0d51d9e8718eb5090b1804f076512f5d01ce557
|
data/lib/ojdbc14.jar
ADDED
Binary file
|
data/lib/orange_lib.rb
ADDED
@@ -0,0 +1,31 @@
|
|
1
|
+
require 'cassandra'
|
2
|
+
|
3
|
+
module OrangeLib
|
4
|
+
class CassandraHandler
|
5
|
+
|
6
|
+
# Initialize a connection to cassandra
|
7
|
+
# @param [String] host ip address of the cassandra host
|
8
|
+
# @param [String] key_space the key_space for connection to cassandra host
|
9
|
+
# @return [Session] Cassandra session.
|
10
|
+
# @example
|
11
|
+
# @__cassandra_handler ||= HMS::CassandraHandler.new('localhost', 'halo_test')
|
12
|
+
def initialize(host, key_space)
|
13
|
+
cluster = Cassandra.cluster(hosts: [host])
|
14
|
+
@session = cluster.connect(key_space)
|
15
|
+
end
|
16
|
+
|
17
|
+
# Execute a sql statement.
|
18
|
+
# @param [String] sql_string the sql statement you would like to execute
|
19
|
+
# @return [Cassandra::Result]
|
20
|
+
# @example
|
21
|
+
# cassandra_handler ||= HMS::CassandraHandler.new('localhost', 'halo_test')
|
22
|
+
# sql = "SELECT count(*) FROM data WHERE uid in ('#{items_list}')"
|
23
|
+
# result = cassandra_handler.execute(sql)
|
24
|
+
# result.rows.each do |row|
|
25
|
+
# num_rows = row["count"]
|
26
|
+
# end
|
27
|
+
def execute(sql_string)
|
28
|
+
@session.execute(sql_string)
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
@@ -0,0 +1,21 @@
|
|
1
|
+
require 'open3'
|
2
|
+
module OrangeLib
|
3
|
+
module CommandLine
|
4
|
+
|
5
|
+
# Execute a command line
|
6
|
+
# @param [String] command command
|
7
|
+
# @return [String] String of output which will be print on screen when we execute the comman
|
8
|
+
# @example
|
9
|
+
# execute_command('echo $PATH')
|
10
|
+
def execute_command(command)
|
11
|
+
output = ''
|
12
|
+
Open3.popen2e(command) {|stdin, stdout_and_stderr, wait_thr|
|
13
|
+
stdout_and_stderr.each{|line|
|
14
|
+
puts line
|
15
|
+
output << line
|
16
|
+
}
|
17
|
+
}
|
18
|
+
output
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
@@ -0,0 +1,148 @@
|
|
1
|
+
require 'java'
|
2
|
+
require_relative '../ojdbc14.jar'
|
3
|
+
|
4
|
+
java_import 'oracle.jdbc.OracleDriver'
|
5
|
+
java_import 'java.sql.DriverManager'
|
6
|
+
|
7
|
+
module OrangeLib
|
8
|
+
class OracleHandler
|
9
|
+
attr_reader :connection
|
10
|
+
|
11
|
+
# Initialize a connection to cassandra
|
12
|
+
# @param [String] user
|
13
|
+
# @param [String] password
|
14
|
+
# @param [String] host
|
15
|
+
# @param [String] service_name
|
16
|
+
# @example
|
17
|
+
# db = Orange::OracleHandler.new('audit_repo', 'audit_repo123', 'localhost', '1521', 'orclpmd')
|
18
|
+
def initialize(user, password, host, port, service_name)
|
19
|
+
oradriver = OracleDriver.new
|
20
|
+
DriverManager.registerDriver oradriver
|
21
|
+
@user = user
|
22
|
+
@password = password
|
23
|
+
@host = host
|
24
|
+
@port = port
|
25
|
+
@service_name = service_name
|
26
|
+
|
27
|
+
begin
|
28
|
+
@connection = DriverManager.get_connection("jdbc:oracle:thin:@#{@host}:#{@port.to_i}/#{@service_name}",
|
29
|
+
@user, @password)
|
30
|
+
@connection.auto_commit = false
|
31
|
+
rescue Exception => ex
|
32
|
+
raise "Connection failed! :X url=jdbc:oracle:thin:@#{host}:#{port}/#{service_name}\nException: #{ex}"
|
33
|
+
return
|
34
|
+
end
|
35
|
+
end
|
36
|
+
|
37
|
+
# Execute a sql statement.
|
38
|
+
# @param [String] sql_string the sql statement you would like to execute
|
39
|
+
# @return [Array]
|
40
|
+
# @example
|
41
|
+
# db = Orange::OracleHandler.new('audit_repo', 'audit_repo123', '192.168.40.50','orclpmd.Orangeonline.com')
|
42
|
+
# result = db.execute("SELECT MAX(ID) FROM AUDIT_REQUEST WHERE HMS_ID='piid_1438591533'")
|
43
|
+
# result.each do |row|
|
44
|
+
# puts row
|
45
|
+
# end
|
46
|
+
def execute(sql_string)
|
47
|
+
error_msg = nil
|
48
|
+
open_connection if @connection.is_closed
|
49
|
+
begin
|
50
|
+
stmt = @connection.prepare_statement(sql_string)
|
51
|
+
row_set = stmt.execute_query
|
52
|
+
meta_data = row_set.get_meta_data
|
53
|
+
column_count = meta_data.get_column_count
|
54
|
+
columns = {}
|
55
|
+
for index in 1..column_count do
|
56
|
+
label = meta_data.get_column_label(index)
|
57
|
+
columns[label] = {}
|
58
|
+
columns[label][:type] = meta_data.get_column_type_name(index).to_s.downcase
|
59
|
+
columns[label][:precision] = meta_data.get_precision(index)
|
60
|
+
columns[label][:scale] = meta_data.get_scale(index)
|
61
|
+
end
|
62
|
+
|
63
|
+
materias = []
|
64
|
+
while row_set.next
|
65
|
+
hash_materia = {}
|
66
|
+
columns.each do |column_name, column_type|
|
67
|
+
if column_type[:type] == 'blob'
|
68
|
+
value = row_set.get_blob(column_name.to_s)
|
69
|
+
else
|
70
|
+
value = row_set.get_string(column_name.to_s)
|
71
|
+
end
|
72
|
+
hash_materia[column_name] = convert_data_type(column_type, value)
|
73
|
+
end
|
74
|
+
materias << hash_materia
|
75
|
+
end
|
76
|
+
materias
|
77
|
+
rescue Exception => ex
|
78
|
+
error_msg = "Oracle query execution failed.\nException: #{ex}"
|
79
|
+
ensure
|
80
|
+
row_set.close unless row_set.nil?
|
81
|
+
stmt.close unless stmt.nil?
|
82
|
+
@connection.close unless (@connection.is_closed || @connection.nil?)
|
83
|
+
raise error_msg unless error_msg.nil?
|
84
|
+
end
|
85
|
+
end
|
86
|
+
|
87
|
+
|
88
|
+
# Execute a sql statement for updating.
|
89
|
+
# @param [String] sql_string the sql statement you would like to execute
|
90
|
+
# @return [Int] number of rows which are affected
|
91
|
+
# @example
|
92
|
+
# db = HMS::OracleHandler.new('audit_repo', 'audit_repo123', '192.168.40.50','orclpmd.hmsonline.com')
|
93
|
+
# result = db.execute_update("UPDATE user set username = 'user1' where id = 1")
|
94
|
+
# puts result
|
95
|
+
def execute_update(sql_string)
|
96
|
+
error_msg = nil
|
97
|
+
open_connection if @connection.is_closed
|
98
|
+
begin
|
99
|
+
stmt = @connection.prepare_statement(sql_string)
|
100
|
+
number_of_rows = stmt.execute_update
|
101
|
+
@connection.commit
|
102
|
+
number_of_rows
|
103
|
+
rescue Exception => ex
|
104
|
+
@connection.rollback
|
105
|
+
error_msg = "Oracle query execution failed.\nException: #{ex}"
|
106
|
+
ensure
|
107
|
+
stmt.close unless stmt.nil?
|
108
|
+
@connection.close unless (@connection.is_closed || @connection.nil?)
|
109
|
+
raise error_msg unless error_msg.nil?
|
110
|
+
end
|
111
|
+
end
|
112
|
+
|
113
|
+
private
|
114
|
+
def convert_data_type(orcl_data={}, value)
|
115
|
+
if value.nil?
|
116
|
+
nil
|
117
|
+
else
|
118
|
+
case orcl_data[:type]
|
119
|
+
when 'number' then
|
120
|
+
if orcl_data[:scale] > 0
|
121
|
+
value.to_f
|
122
|
+
else
|
123
|
+
value.to_i
|
124
|
+
end
|
125
|
+
when 'date' then Date.parse(value)
|
126
|
+
when 'timestamp' then
|
127
|
+
time_string = value.split('.').map(&:strip)
|
128
|
+
time_string = "#{time_string[0]} #{time_string[1]}:#{time_string[2]}:#{time_string[3]} #{time_string[4]}"
|
129
|
+
Time.parse(time_string)
|
130
|
+
else value
|
131
|
+
end
|
132
|
+
end
|
133
|
+
end
|
134
|
+
|
135
|
+
def open_connection
|
136
|
+
oradriver = OracleDriver.new
|
137
|
+
DriverManager.registerDriver oradriver
|
138
|
+
begin
|
139
|
+
@connection = DriverManager.get_connection("jdbc:oracle:thin:@#{@host}:#{@port.to_i}/#{@service_name}",
|
140
|
+
@user, @password)
|
141
|
+
@connection.auto_commit = false
|
142
|
+
rescue Exception => ex
|
143
|
+
raise "Connection failed! :X url=jdbc:oracle:thin:@#{host}:#{port}/#{service_name}\nException: #{ex}"
|
144
|
+
return
|
145
|
+
end
|
146
|
+
end
|
147
|
+
end
|
148
|
+
end
|
@@ -0,0 +1,102 @@
|
|
1
|
+
require 'httparty'
|
2
|
+
require_relative 'vars'
|
3
|
+
require_relative 'command_line'
|
4
|
+
|
5
|
+
module OrangeLib
|
6
|
+
class Error < StandardError; end
|
7
|
+
class Rest
|
8
|
+
include HTTParty
|
9
|
+
include OrangeLib::Variables
|
10
|
+
include OrangeLib::CommandLine
|
11
|
+
|
12
|
+
attr_reader :response
|
13
|
+
attr_reader :request
|
14
|
+
|
15
|
+
def initialize()
|
16
|
+
end
|
17
|
+
|
18
|
+
def initialize(opts={})
|
19
|
+
mergeOpt opts
|
20
|
+
end
|
21
|
+
|
22
|
+
def mergeOpt(opts={})
|
23
|
+
self.class.default_options = self.class.default_options.merge(opts.to_hash)
|
24
|
+
puts self.class.default_options
|
25
|
+
end
|
26
|
+
|
27
|
+
def perform_request(http_method, path, options={}, &block) #:nodoc:
|
28
|
+
method = eval("Net::HTTP::#{http_method.to_s.capitalize}")
|
29
|
+
options = ModuleInheritableAttributes.hash_deep_dup(self.class.default_options).merge(options.to_hash)
|
30
|
+
begin
|
31
|
+
if (!options[:debug_request].nil? && options[:debug_request].to_s.downcase.eql?("true"))
|
32
|
+
options = debugPass options
|
33
|
+
end
|
34
|
+
|
35
|
+
if (!options[:debug_request].nil? && options[:debug_request].to_s.downcase.eql?("false"))
|
36
|
+
options = debugErr options
|
37
|
+
end
|
38
|
+
|
39
|
+
process_headers(options)
|
40
|
+
process_cookies(options)
|
41
|
+
puts options
|
42
|
+
@response = HTTParty::Request.new(method, path, options).perform(&block)
|
43
|
+
|
44
|
+
rescue => e
|
45
|
+
puts "Rescued #{e.inspect}"
|
46
|
+
end
|
47
|
+
|
48
|
+
@response
|
49
|
+
|
50
|
+
end
|
51
|
+
|
52
|
+
def response
|
53
|
+
raise OrangeLib::Error.new('@response is null') if @response.nil?
|
54
|
+
@response
|
55
|
+
end
|
56
|
+
|
57
|
+
def process_headers(options)
|
58
|
+
if options[:headers] && headers.any?
|
59
|
+
options[:headers] = headers.merge(options[:headers])
|
60
|
+
end
|
61
|
+
end
|
62
|
+
|
63
|
+
def process_cookies(options) #:nodoc:
|
64
|
+
return unless options[:cookies] || self.class.default_cookies.any?
|
65
|
+
options[:headers] ||= headers.dup
|
66
|
+
options[:headers]['cookie'] = cookies.merge(options.delete(:cookies) || {}).to_cookie_string
|
67
|
+
end
|
68
|
+
|
69
|
+
def headers(h = {})
|
70
|
+
raise ArgumentError, 'Headers must an object which responds to #to_hash' unless h.respond_to?(:to_hash)
|
71
|
+
self.class.default_options[:headers] ||= {}
|
72
|
+
self.class.default_options[:headers].merge!(h.to_hash)
|
73
|
+
end
|
74
|
+
|
75
|
+
def setHost(host)
|
76
|
+
raise OrangeLib::Error.new('host param is null') if host.nil?
|
77
|
+
self.class.base_uri host
|
78
|
+
end
|
79
|
+
|
80
|
+
def Host
|
81
|
+
self.class.base_uri
|
82
|
+
end
|
83
|
+
|
84
|
+
def setFollowRedirect(flag)
|
85
|
+
self.class.follow_redirects flag
|
86
|
+
end
|
87
|
+
|
88
|
+
def debugPass(opts={})
|
89
|
+
raise ArgumentError, 'opts param must an object which responds to #to_hash' unless opts.respond_to?(:to_hash)
|
90
|
+
self.class.default_options[:debug_output] = $stdout
|
91
|
+
opts = ModuleInheritableAttributes.hash_deep_dup(self.class.default_options).merge(opts.to_hash)
|
92
|
+
opts
|
93
|
+
end
|
94
|
+
|
95
|
+
def debugErr(opts={})
|
96
|
+
raise ArgumentError, 'opts param must an object which responds to #to_hash' unless opts.respond_to?(:to_hash)
|
97
|
+
self.class.default_options[:debug_output] = $stderr
|
98
|
+
opts = ModuleInheritableAttributes.hash_deep_dup(self.class.default_options).merge(opts.to_hash)
|
99
|
+
opts
|
100
|
+
end
|
101
|
+
end
|
102
|
+
end
|
@@ -0,0 +1,74 @@
|
|
1
|
+
module OrangeLib
|
2
|
+
module Variables
|
3
|
+
|
4
|
+
# Create variable with input name and value. If input value is not passed, method will return value of variable
|
5
|
+
#(This function is used if we would like to store a value to a variable in cucumber)
|
6
|
+
# @param [String] name variable name
|
7
|
+
# @param [Object] value value of variable
|
8
|
+
# @return [Object] value of variable if input value is not passed.
|
9
|
+
# @example
|
10
|
+
# variable('REPORT_ID', 'c73f5f2a-d098-4d84-8831-35c704773747') => store report id as variable REPORT_ID
|
11
|
+
# variable('REPORT_ID') => return value of variable REPORT_ID
|
12
|
+
def variable(name, value = nil)
|
13
|
+
name = name.to_sym
|
14
|
+
return variables[name] if value.nil?
|
15
|
+
|
16
|
+
variables[name] = value
|
17
|
+
end
|
18
|
+
|
19
|
+
|
20
|
+
# Remove all of stored variables.
|
21
|
+
# @example
|
22
|
+
# clear_variables
|
23
|
+
def clear_variables
|
24
|
+
variables.clear
|
25
|
+
end
|
26
|
+
|
27
|
+
|
28
|
+
# Interpret an input string or hash by using the variable that set before that or the params argument
|
29
|
+
# @params [String] input the template string.
|
30
|
+
# @params [Hash] params the data is used for template
|
31
|
+
# @example
|
32
|
+
# app.variable('app', 'bdd-lib')
|
33
|
+
# model = { name: 'Chris', friends: [{fname: 'Hung'}, {fname: 'Aurora'}] }
|
34
|
+
# template = 'Hello %{name} from %{app}, your friends are %{friends[0].fname} and %{friends[1].fname}'
|
35
|
+
# output = app.interpret_string(template, model) # -> Hello Chris from bdd-lib, your friends are Hung and Aurora
|
36
|
+
def interpret_string(input, params = {})
|
37
|
+
# Merge optional parameters with global variables
|
38
|
+
params = variables.merge(params)
|
39
|
+
params = flatten_hash(params)
|
40
|
+
|
41
|
+
if input.class == Hash
|
42
|
+
input.each { |k, v| input[k] = interpret_string(v) }
|
43
|
+
elsif input.class == String && input =~ /(\%\{.+\})+/
|
44
|
+
input % params
|
45
|
+
else
|
46
|
+
input
|
47
|
+
end
|
48
|
+
end
|
49
|
+
|
50
|
+
private
|
51
|
+
def variables
|
52
|
+
@variables ||= {}
|
53
|
+
end
|
54
|
+
|
55
|
+
def flatten_hash(hash)
|
56
|
+
hash.each_with_object({}) do |(key, value), output|
|
57
|
+
if value.is_a? Hash
|
58
|
+
flatten_hash(value).map do |v_key, v_value|
|
59
|
+
output["#{key}.#{v_key}".to_sym] = v_value
|
60
|
+
end
|
61
|
+
elsif value.is_a? Array
|
62
|
+
value.each_with_index do |item, index|
|
63
|
+
v_hash = {"[#{index}]" => item}
|
64
|
+
flatten_hash(v_hash).map do |v_key, v_value|
|
65
|
+
output["#{key}#{v_key}".to_sym] = v_value
|
66
|
+
end
|
67
|
+
end
|
68
|
+
else
|
69
|
+
output[key.to_sym] = value.to_s
|
70
|
+
end
|
71
|
+
end
|
72
|
+
end
|
73
|
+
end
|
74
|
+
end
|
metadata
ADDED
@@ -0,0 +1,212 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: orange_lib
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.1.0
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Hung Thanh Nguyen
|
8
|
+
autorequire:
|
9
|
+
bindir: exe
|
10
|
+
cert_chain: []
|
11
|
+
date: 2016-06-30 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
requirement: !ruby/object:Gem::Requirement
|
15
|
+
requirements:
|
16
|
+
- - ~>
|
17
|
+
- !ruby/object:Gem::Version
|
18
|
+
version: '1.10'
|
19
|
+
name: bundler
|
20
|
+
prerelease: false
|
21
|
+
type: :runtime
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - ~>
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '1.10'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
requirement: !ruby/object:Gem::Requirement
|
29
|
+
requirements:
|
30
|
+
- - ~>
|
31
|
+
- !ruby/object:Gem::Version
|
32
|
+
version: '10.0'
|
33
|
+
name: rake
|
34
|
+
prerelease: false
|
35
|
+
type: :runtime
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - ~>
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '10.0'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
requirement: !ruby/object:Gem::Requirement
|
43
|
+
requirements:
|
44
|
+
- - ~>
|
45
|
+
- !ruby/object:Gem::Version
|
46
|
+
version: '3.2'
|
47
|
+
name: rspec
|
48
|
+
prerelease: false
|
49
|
+
type: :runtime
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - ~>
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '3.2'
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
requirement: !ruby/object:Gem::Requirement
|
57
|
+
requirements:
|
58
|
+
- - ~>
|
59
|
+
- !ruby/object:Gem::Version
|
60
|
+
version: '2.0'
|
61
|
+
name: cucumber
|
62
|
+
prerelease: false
|
63
|
+
type: :runtime
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - ~>
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '2.0'
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
requirement: !ruby/object:Gem::Requirement
|
71
|
+
requirements:
|
72
|
+
- - ~>
|
73
|
+
- !ruby/object:Gem::Version
|
74
|
+
version: '0.3'
|
75
|
+
name: httmultiparty
|
76
|
+
prerelease: false
|
77
|
+
type: :runtime
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - ~>
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: '0.3'
|
83
|
+
- !ruby/object:Gem::Dependency
|
84
|
+
requirement: !ruby/object:Gem::Requirement
|
85
|
+
requirements:
|
86
|
+
- - ~>
|
87
|
+
- !ruby/object:Gem::Version
|
88
|
+
version: '0.13'
|
89
|
+
name: httparty
|
90
|
+
prerelease: false
|
91
|
+
type: :runtime
|
92
|
+
version_requirements: !ruby/object:Gem::Requirement
|
93
|
+
requirements:
|
94
|
+
- - ~>
|
95
|
+
- !ruby/object:Gem::Version
|
96
|
+
version: '0.13'
|
97
|
+
- !ruby/object:Gem::Dependency
|
98
|
+
requirement: !ruby/object:Gem::Requirement
|
99
|
+
requirements:
|
100
|
+
- - ~>
|
101
|
+
- !ruby/object:Gem::Version
|
102
|
+
version: '0.5'
|
103
|
+
name: jsonpath
|
104
|
+
prerelease: false
|
105
|
+
type: :runtime
|
106
|
+
version_requirements: !ruby/object:Gem::Requirement
|
107
|
+
requirements:
|
108
|
+
- - ~>
|
109
|
+
- !ruby/object:Gem::Version
|
110
|
+
version: '0.5'
|
111
|
+
- !ruby/object:Gem::Dependency
|
112
|
+
requirement: !ruby/object:Gem::Requirement
|
113
|
+
requirements:
|
114
|
+
- - ~>
|
115
|
+
- !ruby/object:Gem::Version
|
116
|
+
version: '0.6'
|
117
|
+
name: rack-test
|
118
|
+
prerelease: false
|
119
|
+
type: :runtime
|
120
|
+
version_requirements: !ruby/object:Gem::Requirement
|
121
|
+
requirements:
|
122
|
+
- - ~>
|
123
|
+
- !ruby/object:Gem::Version
|
124
|
+
version: '0.6'
|
125
|
+
- !ruby/object:Gem::Dependency
|
126
|
+
requirement: !ruby/object:Gem::Requirement
|
127
|
+
requirements:
|
128
|
+
- - '>='
|
129
|
+
- !ruby/object:Gem::Version
|
130
|
+
version: '0.3'
|
131
|
+
- - '>='
|
132
|
+
- !ruby/object:Gem::Version
|
133
|
+
version: 3.0.0.rc.1
|
134
|
+
name: cassandra-driver
|
135
|
+
prerelease: false
|
136
|
+
type: :runtime
|
137
|
+
version_requirements: !ruby/object:Gem::Requirement
|
138
|
+
requirements:
|
139
|
+
- - '>='
|
140
|
+
- !ruby/object:Gem::Version
|
141
|
+
version: '0.3'
|
142
|
+
- - '>='
|
143
|
+
- !ruby/object:Gem::Version
|
144
|
+
version: 3.0.0.rc.1
|
145
|
+
- !ruby/object:Gem::Dependency
|
146
|
+
requirement: !ruby/object:Gem::Requirement
|
147
|
+
requirements:
|
148
|
+
- - ~>
|
149
|
+
- !ruby/object:Gem::Version
|
150
|
+
version: '2.0'
|
151
|
+
name: rubysl-base64
|
152
|
+
prerelease: false
|
153
|
+
type: :runtime
|
154
|
+
version_requirements: !ruby/object:Gem::Requirement
|
155
|
+
requirements:
|
156
|
+
- - ~>
|
157
|
+
- !ruby/object:Gem::Version
|
158
|
+
version: '2.0'
|
159
|
+
- !ruby/object:Gem::Dependency
|
160
|
+
requirement: !ruby/object:Gem::Requirement
|
161
|
+
requirements:
|
162
|
+
- - ~>
|
163
|
+
- !ruby/object:Gem::Version
|
164
|
+
version: '1.6'
|
165
|
+
name: nokogiri
|
166
|
+
prerelease: false
|
167
|
+
type: :runtime
|
168
|
+
version_requirements: !ruby/object:Gem::Requirement
|
169
|
+
requirements:
|
170
|
+
- - ~>
|
171
|
+
- !ruby/object:Gem::Version
|
172
|
+
version: '1.6'
|
173
|
+
description: A set of rest lib utilizing HTTParty that ease basic testing of Restful APIs
|
174
|
+
email:
|
175
|
+
- hungtnguyen@kms-technology.com
|
176
|
+
executables: []
|
177
|
+
extensions: []
|
178
|
+
extra_rdoc_files: []
|
179
|
+
files:
|
180
|
+
- lib/ojdbc14.jar
|
181
|
+
- lib/orange_lib.rb
|
182
|
+
- lib/orange_lib/cassandra_handler.rb
|
183
|
+
- lib/orange_lib/command_line.rb
|
184
|
+
- lib/orange_lib/oracle_handler.rb
|
185
|
+
- lib/orange_lib/rest.rb
|
186
|
+
- lib/orange_lib/vars.rb
|
187
|
+
- lib/orange_lib/version.rb
|
188
|
+
homepage: https://rubygems.org/gems/orange
|
189
|
+
licenses:
|
190
|
+
- Aurora
|
191
|
+
metadata: {}
|
192
|
+
post_install_message:
|
193
|
+
rdoc_options: []
|
194
|
+
require_paths:
|
195
|
+
- lib
|
196
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
197
|
+
requirements:
|
198
|
+
- - '>='
|
199
|
+
- !ruby/object:Gem::Version
|
200
|
+
version: '0'
|
201
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
202
|
+
requirements:
|
203
|
+
- - '>='
|
204
|
+
- !ruby/object:Gem::Version
|
205
|
+
version: '0'
|
206
|
+
requirements: []
|
207
|
+
rubyforge_project:
|
208
|
+
rubygems_version: 2.4.5
|
209
|
+
signing_key:
|
210
|
+
specification_version: 4
|
211
|
+
summary: Rest lib support to create cucumber step definitions
|
212
|
+
test_files: []
|