stddtool 0.3.1.1 → 0.5.0.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/stddtool.rb +210 -227
- metadata +17 -4
- data/lib/objects.rb +0 -94
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: a76f2860a1034d498debff40c95430820672f253
|
4
|
+
data.tar.gz: 763ba36d5c0b9ade26fc7ce5065d635c96853fb5
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 762a58b64e6446448b45b6484ee534e071f9ecf4a03dace0bbcf4dda2ec6b64000c0bab46e8b799df29d27e2e5388c8c0d580d91b5b095b59d7dc44a70b90eff
|
7
|
+
data.tar.gz: 775638653d5391ef5121b53701ff25e0d1f15f4181c71fba1bed095821e5c32f03e013e5dbf6a7f2444aa8043b4a0eb070240ee30b4a399d59fc746f1ca7ede2
|
data/lib/stddtool.rb
CHANGED
@@ -6,268 +6,251 @@ require 'ostruct'
|
|
6
6
|
require 'cucumber/formatter/io'
|
7
7
|
require 'gherkin/formatter/argument'
|
8
8
|
require 'base64'
|
9
|
-
require 'objects'
|
10
9
|
require 'cucumber/ast/scenario_outline'
|
11
10
|
require 'cucumber/ast/scenario'
|
11
|
+
require 'stdd_api'
|
12
12
|
|
13
|
-
class STDDTool
|
14
|
-
AST_CLASSES = {
|
15
|
-
Cucumber::Ast::Scenario => 'scenario',
|
16
|
-
Cucumber::Ast::ScenarioOutline => 'scenario_outline'
|
17
|
-
}
|
18
|
-
|
19
|
-
def initialize(step_mother, io, options)
|
20
|
-
@buildnr = ENV['BUILD']
|
21
|
-
@job = ENV['JOB']
|
22
|
-
@url = ENV['STDD_URL'] ? ENV['STDD_URL'] : ['http://www.stddtool.se']
|
23
|
-
@proxy = ENV['http_proxy'] ? URI.parse('http://'+ENV['http_proxy']) : OpenStruct.new
|
24
|
-
# Generate string as runId
|
25
|
-
o = [('a'..'z'), ('A'..'Z')].map { |i| i.to_a }.flatten
|
26
|
-
@runID = (0...50).map{ o[rand(o.length)] }.join
|
27
|
-
@delayed_messages = []
|
28
|
-
p @runID
|
29
|
-
@connectionError = nil
|
30
|
-
p "Initiating STDDTool(#{@url}) formatter for #{@job} : #{@buildnr}"
|
31
|
-
@inside_outline = false
|
32
|
-
end
|
33
13
|
|
34
|
-
def embed(src, mime_type, label)
|
35
|
-
p "got embedding"
|
36
|
-
case(mime_type)
|
37
|
-
when /^image\/(png|gif|jpg|jpeg)/
|
38
|
-
p "Encoding image from #{src}"
|
39
|
-
buf = Base64.encode64(open(src,'rb') { |io| io.read })
|
40
|
-
embeddingObj=EmbeddingObj.new(mime_type,buf)
|
41
|
-
|
42
|
-
p "starts to post embedding"
|
43
|
-
postEmbedding(@scenarioID,embeddingObj)
|
44
|
-
p "posted embedding to scenario with id : #{@scenarioID}"
|
45
|
-
end
|
46
|
-
end
|
47
14
|
|
48
|
-
def puts(message)
|
49
|
-
@delayed_messages << message
|
50
|
-
end
|
51
15
|
|
16
|
+
module Cucumber
|
17
|
+
module Formatter
|
18
|
+
class STDDTool
|
19
|
+
include Io
|
20
|
+
attr_reader :runtime
|
52
21
|
|
22
|
+
AST_CLASSES = {
|
23
|
+
Cucumber::Ast::Scenario => 'scenario',
|
24
|
+
Cucumber::Ast::ScenarioOutline => 'scenario_outline'
|
25
|
+
}
|
53
26
|
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
27
|
+
def initialize(runtime, path_or_io, options)
|
28
|
+
@runtime, @io, @options = runtime, ensure_io(path_or_io, "stddtool"), options
|
29
|
+
@delayed_messages = []
|
30
|
+
@io.puts @runID
|
31
|
+
@connection_error = nil
|
32
|
+
@io.puts "Initiating STDDTool(#{@url}) formatter for #{@project} : #{@module}"
|
33
|
+
@inside_outline = false
|
34
|
+
@io.flush
|
58
35
|
|
59
|
-
|
60
|
-
@feature_element.tags = Array.new
|
61
|
-
@feature_element.feature_ID = @featureID
|
36
|
+
@stdd_client = STDDAPI::Client.new(ENV['STDD_URL'],ENV['http_proxy'])
|
62
37
|
|
63
|
-
|
38
|
+
#Collect all enviroment-variables
|
39
|
+
@customer_name = ENV['CUSTOMER']
|
40
|
+
@project_name = ENV['PROJECT']
|
64
41
|
|
65
|
-
|
66
|
-
|
67
|
-
|
42
|
+
@run_name = ENV['RUN']
|
43
|
+
@run_source = ENV['SOURCE']
|
44
|
+
@run_revision = ENV['REV']
|
68
45
|
|
69
|
-
|
70
|
-
# @in_background = true
|
71
|
-
end
|
46
|
+
init_customer_project_and_run(@customer_name,@project_name,@run_name,@run_source,@run_revision)
|
72
47
|
|
73
|
-
|
74
|
-
|
75
|
-
end
|
48
|
+
@module_name = ENV['MODULE']
|
49
|
+
init_module(@module_name)
|
76
50
|
|
77
|
-
|
78
|
-
@delayed_messages = []
|
79
|
-
@start_time = Time.now
|
80
|
-
end
|
51
|
+
end
|
81
52
|
|
82
|
-
|
83
|
-
|
84
|
-
|
53
|
+
def init_module name
|
54
|
+
return if @connection_error
|
55
|
+
valid,response = @stdd_client.create_module(@run.id,name,'cucumber',Time.now)
|
56
|
+
if(valid)
|
57
|
+
@module = response
|
58
|
+
else
|
59
|
+
@connection_error = response
|
60
|
+
puts @connection_error
|
61
|
+
end
|
62
|
+
end
|
85
63
|
|
86
|
-
|
87
|
-
|
88
|
-
|
64
|
+
def init_customer_project_and_run customer_name, project_name, run_name, run_source, run_revision
|
65
|
+
return if @connection_error
|
66
|
+
#Customer
|
67
|
+
create_customer_if_not_exist(customer_name)
|
68
|
+
|
69
|
+
#Project
|
70
|
+
create_project_if_not_exists(@customer.id,project_name)
|
71
|
+
|
72
|
+
#Run
|
73
|
+
valid, response = @stdd_client.create_run(@project.id,run_name,run_source,run_revision)
|
74
|
+
if(valid)
|
75
|
+
@run = response
|
76
|
+
else
|
77
|
+
@connection_error = response
|
78
|
+
puts @connection_error
|
79
|
+
end
|
89
80
|
|
90
|
-
|
91
|
-
p "Background #{name}"
|
92
|
-
@feature_element.name=name
|
93
|
-
@feature_element.keyword = keyword
|
94
|
-
postFeatureElement(@feature_element)
|
95
|
-
end
|
81
|
+
end
|
96
82
|
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
postFeatureElement(@feature_element)
|
102
|
-
end
|
83
|
+
def create_customer_if_not_exist customer_name
|
84
|
+
return if @connection_error
|
85
|
+
# Kontrollera om kunden finns
|
86
|
+
valid, response = @stdd_client.get_customer customer_name
|
103
87
|
|
104
|
-
|
105
|
-
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
|
88
|
+
# Om kunden finns
|
89
|
+
if(valid && response)
|
90
|
+
puts "Customer already exists"
|
91
|
+
else
|
92
|
+
puts "Customer does not exist, creating new.."
|
93
|
+
# Skapa en kund
|
94
|
+
valid, response = @stdd_client.create_customer customer_name
|
95
|
+
end
|
96
|
+
|
97
|
+
if(valid)
|
98
|
+
@customer = response
|
99
|
+
return true
|
100
|
+
else
|
101
|
+
@connection_error = response
|
102
|
+
puts @connection_error
|
103
|
+
return false
|
104
|
+
end
|
105
|
+
|
106
|
+
end
|
107
|
+
|
108
|
+
def create_project_if_not_exists customer_id,project_name
|
109
|
+
return if @connection_error
|
110
|
+
# Kontrollera om projektet finns
|
111
|
+
valid, response = @stdd_client.get_project customer_id, project_name
|
112
|
+
|
113
|
+
# Om projektet finns
|
114
|
+
if(valid)
|
115
|
+
puts "Project already exists"
|
116
|
+
@project = response
|
117
|
+
return true
|
118
|
+
end
|
119
|
+
|
120
|
+
puts "Project does not exist, creating new.."
|
121
|
+
# Skapa ett projekt
|
122
|
+
valid, response = @stdd_client.create_project customer_id, project_name
|
123
|
+
if valid
|
124
|
+
@project = response
|
125
|
+
return true
|
126
|
+
else
|
127
|
+
@connection_error = response
|
128
|
+
puts @connection_error
|
129
|
+
return false
|
130
|
+
end
|
110
131
|
|
111
|
-
def postFeature(featureObj)
|
112
|
-
if @connectionError
|
113
|
-
p "FEATURE WILL NOT BE REPORTED TO STDDTOOL DUE TO : #{@connectionError}"
|
114
|
-
return
|
115
132
|
end
|
116
133
|
|
117
|
-
|
118
|
-
|
119
|
-
|
120
|
-
|
121
|
-
|
122
|
-
|
123
|
-
|
124
|
-
|
125
|
-
|
126
|
-
|
134
|
+
def embed(src, mime_type, label)
|
135
|
+
return if @connection_error
|
136
|
+
@io.puts "got embedding"
|
137
|
+
case mime_type
|
138
|
+
when /^image\/(png|gif|jpg|jpeg)/
|
139
|
+
buf = Base64.encode64(open(src,'rb') { |io| io.read })
|
140
|
+
embedding=STDDAPI::Objects::Embedding.new(@scenario.id,mime_type,buf)
|
141
|
+
|
142
|
+
valid,response = @stdd_client.add_embedding_to_scenario(embedding)
|
143
|
+
if(valid)
|
127
144
|
#success
|
128
145
|
else
|
129
|
-
|
130
|
-
@
|
131
|
-
|
146
|
+
@connection_error = response
|
147
|
+
puts @connection_error
|
148
|
+
end
|
132
149
|
end
|
150
|
+
end
|
133
151
|
|
134
|
-
|
152
|
+
def before_feature(feature)
|
153
|
+
return if @connection_error
|
154
|
+
# puts feature.source_tag_names
|
155
|
+
@feature = STDDAPI::Objects::Feature.new(@module.id,feature.title,Time.now)
|
156
|
+
@feature.description = feature.description
|
157
|
+
@feature.tags = feature.source_tag_names
|
158
|
+
@feature.file = feature.file
|
159
|
+
|
160
|
+
valid,response = @stdd_client.create_feature(@feature)
|
161
|
+
if(valid)
|
162
|
+
@feature.id = response
|
163
|
+
else
|
164
|
+
@connection_error = response
|
165
|
+
puts @connection_error
|
166
|
+
end
|
167
|
+
|
168
|
+
# @feature_element = FeatureElement.new
|
169
|
+
# @feature_element.tags = Array.new
|
170
|
+
# @feature_element.feature_ID = @featureID
|
171
|
+
@scenario = STDDAPI::Objects::Scenario.new(@feature.id, "",'scenario','Scenario')
|
172
|
+
@scenario.tags=Array.new
|
135
173
|
|
136
|
-
if parsed["error"]
|
137
|
-
p parsed["error"]
|
138
174
|
end
|
139
|
-
@featureID = parsed["_id"]
|
140
175
|
|
141
|
-
|
176
|
+
def tag_name(tag_name)
|
177
|
+
return if @connection_error
|
178
|
+
@scenario ? @scenario.tags.push({'name' => tag_name}) : true
|
179
|
+
end
|
142
180
|
|
143
|
-
|
144
|
-
|
145
|
-
|
181
|
+
def before_step(step)
|
182
|
+
return if @connection_error
|
183
|
+
@delayed_messages = []
|
184
|
+
@step_start_time = Time.now
|
185
|
+
end
|
146
186
|
|
147
|
-
|
187
|
+
def before_step_result(*args)
|
188
|
+
return if @connection_error
|
189
|
+
@step_duration = Time.now - @step_start_time
|
190
|
+
end
|
148
191
|
|
192
|
+
def before_feature_element(feature_element)
|
193
|
+
return if @connection_error
|
194
|
+
@scenario.element_type = AST_CLASSES[feature_element.class]
|
195
|
+
end
|
149
196
|
|
150
|
-
|
151
|
-
|
152
|
-
#
|
153
|
-
|
154
|
-
|
155
|
-
|
156
|
-
# end
|
157
|
-
|
158
|
-
# def before_examples(examples)
|
159
|
-
# @inside_outline = true
|
160
|
-
# end
|
161
|
-
|
162
|
-
# def after_examples(examples)
|
163
|
-
# @inside_outline = false
|
164
|
-
# end
|
165
|
-
# def before_table_row(table_row)
|
166
|
-
# # @cellArray = Array.new
|
167
|
-
# end
|
168
|
-
|
169
|
-
# #additional code for scenario-outline
|
170
|
-
|
171
|
-
# def before_outline_table(outline_table)
|
172
|
-
# p "before outline table"
|
173
|
-
# @inside_outline = true
|
174
|
-
# @outline_row = 0
|
175
|
-
# end
|
176
|
-
|
177
|
-
# def after_outline_table(outline_table)
|
178
|
-
# p "after outline table"
|
179
|
-
# @outline_row = nil
|
180
|
-
# @inside_outline = false
|
181
|
-
# end
|
182
|
-
|
183
|
-
# def before_examples(examples)
|
184
|
-
# @examples_array = Array.new
|
185
|
-
# @examplesRowNumber=0;
|
186
|
-
# end
|
187
|
-
|
188
|
-
# def examples_name(keyword, name)
|
189
|
-
# p "keyword: #{keyword}"
|
190
|
-
# p "name: #{name}"
|
191
|
-
# end
|
192
|
-
|
193
|
-
# # def after_examples_array(arg1)
|
194
|
-
# # p "after examples array: #{arg1}"
|
195
|
-
# # end
|
196
|
-
# def before_table_row(table_row)
|
197
|
-
# # @cellArray = Array.new
|
198
|
-
# end
|
199
|
-
|
200
|
-
# def table_cell_value(value, status)
|
201
|
-
# scenarioExampleCell=ScenarioExampleCell.new(@examplesRowNumber,value,status)
|
202
|
-
# postScenarioExampleCell(@scenarioID,scenarioExampleCell)
|
203
|
-
# end
|
204
|
-
|
205
|
-
# def after_table_row(table_row)
|
206
|
-
|
207
|
-
# p @cellArray
|
208
|
-
# if table_row.exception
|
209
|
-
# p "tr exception: #{table_row.exception}"
|
210
|
-
|
211
|
-
# end
|
212
|
-
# p "after table row"
|
213
|
-
# if @outline_row
|
214
|
-
# @outline_row += 1
|
215
|
-
# end
|
216
|
-
# @examplesRowNumber = @examplesRowNumber +1
|
217
|
-
# end
|
218
|
-
|
219
|
-
# def after_examples(examples)
|
220
|
-
# p "after examples"
|
221
|
-
# end
|
222
|
-
|
223
|
-
|
224
|
-
|
225
|
-
|
226
|
-
def postStep(scenarioID,stepObj)
|
227
|
-
return if @connectionError
|
228
|
-
|
229
|
-
p "posting step #{stepObj.step_name}"
|
230
|
-
uri = URI.parse(@url)
|
231
|
-
path = "/collectionapi/scenarios/#{scenarioID}"
|
232
|
-
req = Net::HTTP::Put.new(path, initheader = { 'X-Auth-Token' => '97f0ad9e24ca5e0408a269748d7fe0a0'})
|
233
|
-
req.body = stepObj.to_json
|
234
|
-
response = Net::HTTP::Proxy(@proxy.host, @proxy.port).new(uri.host, uri.port).start {|http| http.request(req) }
|
235
|
-
end
|
197
|
+
def background_name(keyword, name, file_colon_line, source_indent)
|
198
|
+
return if @connection_error
|
199
|
+
@io.puts "Background #{name}"
|
200
|
+
@scenario.name=name
|
201
|
+
@scenario.keyword = keyword
|
202
|
+
post_scenario
|
236
203
|
|
237
|
-
|
238
|
-
return if @connectionError
|
204
|
+
end
|
239
205
|
|
240
|
-
|
241
|
-
|
242
|
-
|
243
|
-
|
244
|
-
|
245
|
-
|
206
|
+
def scenario_name(keyword, name, file_colon_line, source_indent)
|
207
|
+
return if @connection_error
|
208
|
+
@io.puts "scenario #{name}"
|
209
|
+
@scenario.name=name
|
210
|
+
@scenario.keyword = keyword
|
211
|
+
post_scenario
|
212
|
+
|
213
|
+
end
|
246
214
|
|
247
|
-
|
248
|
-
|
249
|
-
|
250
|
-
|
251
|
-
|
252
|
-
|
253
|
-
|
254
|
-
|
255
|
-
|
256
|
-
|
257
|
-
request.body = feature_element.to_json
|
258
|
-
response = http.request(request)
|
259
|
-
# puts response.body
|
260
|
-
parsed = JSON.parse(response.body)
|
261
|
-
@scenarioID = parsed["_id"]
|
262
|
-
end
|
215
|
+
def post_scenario
|
216
|
+
return if @connection_error
|
217
|
+
valid,response = @stdd_client.create_scenario(@scenario)
|
218
|
+
if(valid)
|
219
|
+
@scenario.id = response
|
220
|
+
else
|
221
|
+
@connection_error = response
|
222
|
+
puts @connection_error
|
223
|
+
end
|
224
|
+
end
|
263
225
|
|
264
|
-
|
265
|
-
|
266
|
-
|
267
|
-
|
268
|
-
|
269
|
-
|
270
|
-
|
271
|
-
|
226
|
+
def after_step_result(keyword, step_match, multiline_arg, status, exception, source_indent, background, file_colon_line)
|
227
|
+
return if @connection_error
|
228
|
+
step_name = step_match.format_args(lambda{|param| "*#{param}*"})
|
229
|
+
@step = STDDAPI::Objects::Step.new(@scenario.id,keyword, step_name)
|
230
|
+
@step.status=status
|
231
|
+
@step.error_message = exception
|
232
|
+
@step.duration = @step_duration
|
233
|
+
@step.messages = @delayed_messages
|
234
|
+
|
235
|
+
valid,response = @stdd_client.add_step_to_scenario(@step)
|
236
|
+
if(valid)
|
237
|
+
# success
|
238
|
+
else
|
239
|
+
@connection_error = response
|
240
|
+
puts @connection_error
|
241
|
+
end
|
242
|
+
end
|
272
243
|
|
273
|
-
|
244
|
+
def after_features(features)
|
245
|
+
return if @connection_error
|
246
|
+
valid, response = @stdd_client.update_module_stopTime(@module.id,Time.now)
|
247
|
+
if(valid)
|
248
|
+
@module = response
|
249
|
+
else
|
250
|
+
@connection_error = response
|
251
|
+
puts @connection_error
|
252
|
+
end
|
253
|
+
end
|
254
|
+
end
|
255
|
+
end
|
256
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: stddtool
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.5.0.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Anton Danielsson
|
@@ -11,15 +11,28 @@ autorequire:
|
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
13
|
date: 2014-02-05 00:00:00.000000000 Z
|
14
|
-
dependencies:
|
15
|
-
|
14
|
+
dependencies:
|
15
|
+
- !ruby/object:Gem::Dependency
|
16
|
+
name: stdd_api
|
17
|
+
requirement: !ruby/object:Gem::Requirement
|
18
|
+
requirements:
|
19
|
+
- - ~>
|
20
|
+
- !ruby/object:Gem::Version
|
21
|
+
version: 0.2.0.1
|
22
|
+
type: :runtime
|
23
|
+
prerelease: false
|
24
|
+
version_requirements: !ruby/object:Gem::Requirement
|
25
|
+
requirements:
|
26
|
+
- - ~>
|
27
|
+
- !ruby/object:Gem::Version
|
28
|
+
version: 0.2.0.1
|
29
|
+
description: Cucumber formatter that reports cucumber testresults to STDDTool
|
16
30
|
email: anton.danielsson@learningwell.se
|
17
31
|
executables: []
|
18
32
|
extensions: []
|
19
33
|
extra_rdoc_files: []
|
20
34
|
files:
|
21
35
|
- lib/stddtool.rb
|
22
|
-
- lib/objects.rb
|
23
36
|
homepage: https://github.com/antda/cucumber-stddtool
|
24
37
|
licenses:
|
25
38
|
- MIT
|
data/lib/objects.rb
DELETED
@@ -1,94 +0,0 @@
|
|
1
|
-
# encoding: utf-8
|
2
|
-
|
3
|
-
class FeatureObj
|
4
|
-
def initialize(job,build,title,description,file,tags,runId)
|
5
|
-
@id = title.downcase.gsub(' ', '-')
|
6
|
-
@job = job
|
7
|
-
@build = build
|
8
|
-
@feature_title=title
|
9
|
-
@feature_description = description
|
10
|
-
@feature_file = file
|
11
|
-
@runID = runId
|
12
|
-
|
13
|
-
tagArr = Array.new
|
14
|
-
tags.each do |tag|
|
15
|
-
tagArr.push({'name' => tag})
|
16
|
-
end
|
17
|
-
|
18
|
-
@feature_tags = tagArr
|
19
|
-
|
20
|
-
end
|
21
|
-
attr_accessor :feature_title
|
22
|
-
def to_json
|
23
|
-
{
|
24
|
-
'id' => @id,
|
25
|
-
'job' => @job,
|
26
|
-
'build' => @build,
|
27
|
-
'runID' => @runID,
|
28
|
-
'title' => @feature_title,
|
29
|
-
'description' => @feature_description ,
|
30
|
-
'file' => @feature_file,
|
31
|
-
'tags' => @feature_tags,
|
32
|
-
}.to_json
|
33
|
-
end
|
34
|
-
end
|
35
|
-
|
36
|
-
|
37
|
-
class StepObj
|
38
|
-
def initialize(keyword, name, status,exception,duration,messages)
|
39
|
-
@step_keyword=keyword
|
40
|
-
@step_name=name
|
41
|
-
@step_status=status
|
42
|
-
@step_exception = exception
|
43
|
-
@step_duration = duration
|
44
|
-
@step_messages = messages
|
45
|
-
end
|
46
|
-
attr_accessor :step_name
|
47
|
-
def to_json
|
48
|
-
{'$addToSet' =>
|
49
|
-
{'steps' =>{'keyword' => @step_keyword,
|
50
|
-
'name' => @step_name ,
|
51
|
-
'result' => {'status' =>@step_status,'error_message'=> @step_exception,'duration'=>@step_duration},
|
52
|
-
'messages' => @step_messages
|
53
|
-
}
|
54
|
-
}
|
55
|
-
}.to_json
|
56
|
-
end
|
57
|
-
end
|
58
|
-
|
59
|
-
class FeatureElement
|
60
|
-
def initialize()
|
61
|
-
tags = Array.new
|
62
|
-
end
|
63
|
-
attr_accessor :feature_ID,:keyword,:tags,:name,:element_type
|
64
|
-
def to_json
|
65
|
-
{'featureId' => @feature_ID,'keyword' => @keyword, 'name' => @name,'tags' => @tags,'element_type' => @element_type}.to_json
|
66
|
-
end
|
67
|
-
end
|
68
|
-
|
69
|
-
class EmbeddingObj
|
70
|
-
def initialize(mime_type,data)
|
71
|
-
@mime_type = mime_type
|
72
|
-
@data=data
|
73
|
-
end
|
74
|
-
def to_json
|
75
|
-
{'$addToSet' =>{'embeddings' =>{'mime_type' => @mime_type,'data' => @data}}}.to_json
|
76
|
-
end
|
77
|
-
end
|
78
|
-
|
79
|
-
# class ScenarioExampleCell
|
80
|
-
# def initialize(row,value,status)
|
81
|
-
# @row = row
|
82
|
-
# @value=value
|
83
|
-
# @status=status
|
84
|
-
# end
|
85
|
-
# def to_json
|
86
|
-
# {"$addToSet" =>
|
87
|
-
# {"outline.#{@row.to_s}" =>{
|
88
|
-
# "value" => @value,
|
89
|
-
# "status" => @status
|
90
|
-
# }
|
91
|
-
# }
|
92
|
-
# }.to_json
|
93
|
-
# end
|
94
|
-
# end
|