spout 0.14.0.beta1 → 0.14.0.beta2

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 70dea3c7337f2cfc3a38c1e59b5c8e9c94b7b009800b2680a3dcb06513331255
4
- data.tar.gz: 4e63bf76cdbf26f4c4f387f15b454457a3e8a85677215f226b9060de38623072
3
+ metadata.gz: 18d01986890a2541efb2384e382e786959e53618c65f5dbe5f75ac8ee0dd7e68
4
+ data.tar.gz: a2ea53c30b10f2f6a756a5ee8452bb9417ac7d8b5571f91fedf654a9eaa89914
5
5
  SHA512:
6
- metadata.gz: 542a18cc6f5e34c7df0f9ee1e7a848643bdb1e575176013fe1117becd81f715f32ca77ab150964b39aa66e3e76432d137e32b012680bc7d1f3b41e3435ac58f1
7
- data.tar.gz: b85ffc0d3bba23f6af803c9d99ca47da3ac517ec840fd3d33f3c08d2a393067e68198de02f458f45cc206138f024151290b943746748cc7c55b86e4766670a35
6
+ metadata.gz: 5e1a15e77e49767460be60264678e25629c35f904bb080fb744bbe3da423fe8f338d358d7aa77b30951f436d8abcc5f894e6bbe503d5a9b2991087736150497f
7
+ data.tar.gz: 68e75df0a0ebbdfeb9d15f08ecb2ae86591512bd3f4babd4ea4512a17fc161fc253ffbdc7678727bf1ae78416497117b7659e3160700daa839d7a07967b490d3
data/CHANGELOG.md CHANGED
@@ -4,6 +4,7 @@
4
4
  - **Framework Changes**
5
5
  - Spout data dictionaries can now specify gem dependencies using `gems.rb`
6
6
  instead of `Gemfile`
7
+ - Removed dependency on colorize gem
7
8
  - **Test Changes**
8
9
  - Improved the spout testing framework
9
10
  - Tests are now run excusively using `spout t` command
data/README.md CHANGED
@@ -188,9 +188,9 @@ class DictionaryTest < Minitest::Test
188
188
 
189
189
  @variables.select { |v| %w(numeric integer).include?(v.type) }.each do |variable|
190
190
  define_method("test_units: #{variable.path}") do
191
- message = "\"#{variable.units}\"".colorize(:red) + " invalid units.\n" +
191
+ message = "\"#{variable.units}\"".red + " invalid units.\n" +
192
192
  " Valid types: " +
193
- VALID_UNITS.sort_by(&:to_s).collect { |u| u.inspect.colorize(:white) }.join(", ")
193
+ VALID_UNITS.sort_by(&:to_s).collect { |u| u.inspect.white }.join(", ")
194
194
  assert VALID_UNITS.include?(variable.units), message
195
195
  end
196
196
  end
@@ -0,0 +1,100 @@
1
+ # frozen_string_literal: true
2
+
3
+ # Adds ANSI colors to string class.
4
+ class String
5
+ def black
6
+ "\e[30m#{self}\e[0m"
7
+ end
8
+
9
+ def red
10
+ "\e[31m#{self}\e[0m"
11
+ end
12
+
13
+ def green
14
+ "\e[32m#{self}\e[0m"
15
+ end
16
+
17
+ def brown
18
+ "\e[33m#{self}\e[0m"
19
+ end
20
+
21
+ def yellow
22
+ brown
23
+ end
24
+
25
+ def blue
26
+ "\e[34m#{self}\e[0m"
27
+ end
28
+
29
+ def magenta
30
+ "\e[35m#{self}\e[0m"
31
+ end
32
+
33
+ def cyan
34
+ "\e[36m#{self}\e[0m"
35
+ end
36
+
37
+ def gray
38
+ "\e[37m#{self}\e[0m"
39
+ end
40
+
41
+ def white
42
+ "\e[39m#{bold}\e[0m"
43
+ end
44
+
45
+ def bg_black
46
+ "\e[40m#{self}\e[0m"
47
+ end
48
+
49
+ def bg_red
50
+ "\e[41m#{self}\e[0m"
51
+ end
52
+
53
+ def bg_green
54
+ "\e[42m#{self}\e[0m"
55
+ end
56
+
57
+ def bg_brown
58
+ "\e[43m#{self}\e[0m"
59
+ end
60
+
61
+ def bg_blue
62
+ "\e[44m#{self}\e[0m"
63
+ end
64
+
65
+ def bg_magenta
66
+ "\e[45m#{self}\e[0m"
67
+ end
68
+
69
+ def bg_cyan
70
+ "\e[46m#{self}\e[0m"
71
+ end
72
+
73
+ def bg_gray
74
+ "\e[47m#{self}\e[0m"
75
+ end
76
+
77
+ def bold
78
+ "\e[1m#{self}\e[22m"
79
+ end
80
+
81
+ def italic
82
+ "\e[3m#{self}\e[23m"
83
+ end
84
+
85
+ def underline
86
+ "\e[4m#{self}\e[24m"
87
+ end
88
+
89
+ def blink
90
+ "\e[5m#{self}\e[25m"
91
+ end
92
+
93
+ def reverse_color
94
+ "\e[7m#{self}\e[27m"
95
+ end
96
+
97
+ def colorless
98
+ gsub(/\e\[\d{1,2}m/, "")
99
+ end
100
+ end
@@ -1,6 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require "colorize"
4
3
  require "net/http"
5
4
  require "io/console"
6
5
 
@@ -77,7 +76,7 @@ module Spout
77
76
  begin
78
77
  run_all
79
78
  rescue Interrupt
80
- puts "\nINTERRUPTED".colorize(:red)
79
+ puts "\nINTERRUPTED".red
81
80
  end
82
81
  end
83
82
 
@@ -104,21 +103,21 @@ module Spout
104
103
  @slug = @config.slug
105
104
 
106
105
  if @slug == ""
107
- message = "#{INDENT}Please specify a dataset slug in your `.spout.yml` file!".colorize(:red) + " Ex:\n---\nslug: mydataset\n".colorize(:orange)
106
+ message = "#{INDENT}Please specify a dataset slug in your `.spout.yml` file!".red + " Ex:\n---\nslug: mydataset\n".gray
108
107
  failure(message)
109
108
  end
110
109
 
111
110
  if @config.webservers.empty?
112
- message = "#{INDENT}Please specify a webserver in your `.spout.yml` file!".colorize(:red) + " Ex:\n---\nwebservers:\n - name: production\n url: https://sleepdata.org\n - name: staging\n url: https://staging.sleepdata.org\n".colorize(:orange)
111
+ message = "#{INDENT}Please specify a webserver in your `.spout.yml` file!".red + " Ex:\n---\nwebservers:\n - name: production\n url: https://sleepdata.org\n - name: staging\n url: https://staging.sleepdata.org\n".gray
113
112
  failure(message)
114
113
  end
115
114
 
116
115
  matching_webservers = @config.webservers.select { |wh| /^#{@environment}/i =~ wh["name"].to_s.downcase }
117
116
  if matching_webservers.count == 0
118
- message = "#{INDENT}0 webservers match '#{@environment}'.".colorize(:red) + " The following webservers exist in your `.spout.yml` file:\n" + "#{INDENT}#{@config.webservers.collect{|wh| wh['name'].to_s.downcase}.join(', ')}".colorize(:white)
117
+ message = "#{INDENT}0 webservers match '#{@environment}'.".red + " The following webservers exist in your `.spout.yml` file:\n" + "#{INDENT}#{@config.webservers.collect{|wh| wh['name'].to_s.downcase}.join(', ')}".white
119
118
  failure(message)
120
119
  elsif matching_webservers.count > 1
121
- message = "#{INDENT}#{matching_webservers.count} webservers match '#{@environment}'.".colorize(:red) + " Did you mean one of the following?\n" + "#{INDENT}#{matching_webservers.collect{|wh| wh['name'].to_s.downcase}.join(', ')}".colorize(:white)
120
+ message = "#{INDENT}#{matching_webservers.count} webservers match '#{@environment}'.".red + " Did you mean one of the following?\n" + "#{INDENT}#{matching_webservers.collect{|wh| wh['name'].to_s.downcase}.join(', ')}".white
122
121
  failure(message)
123
122
  end
124
123
 
@@ -126,13 +125,13 @@ module Spout
126
125
  @url = URI.parse(matching_webservers.first["url"].to_s.strip) rescue @url = nil
127
126
 
128
127
  if @url.to_s == ""
129
- message = "#{INDENT}Invalid URL format for #{matching_webservers.first['name'].to_s.strip.downcase} webserver: ".colorize(:red) + "'#{matching_webservers.first['url'].to_s.strip}'".colorize(:white)
128
+ message = "#{INDENT}Invalid URL format for #{matching_webservers.first['name'].to_s.strip.downcase} webserver: ".red + "'#{matching_webservers.first['url'].to_s.strip}'".white
130
129
  failure(message)
131
130
  end
132
131
 
133
- puts "PASS".colorize(:green)
134
- puts " Target Server: " + "#{@url}".colorize(:white)
135
- puts " Target Dataset: " + "#{@slug}".colorize(:white)
132
+ puts "PASS".green
133
+ puts " Target Server: " + "#{@url}".white
134
+ puts " Target Dataset: " + "#{@slug}".white
136
135
  end
137
136
 
138
137
  # - **Version Check**
@@ -141,7 +140,7 @@ module Spout
141
140
  # - "v#{VERSION}" matches HEAD git tag annotation
142
141
  def version_check
143
142
  if @skip_checks
144
- puts " Version Check: " + "SKIP".colorize(:blue)
143
+ puts " Version Check: " + "SKIP".blue
145
144
  return
146
145
  end
147
146
 
@@ -151,19 +150,19 @@ module Spout
151
150
 
152
151
  print " Git Status Check: "
153
152
  if stdout.to_s.strip == ""
154
- puts "PASS".colorize(:green) + " " + "nothing to commit, working directory clean".colorize(:white)
153
+ puts "PASS".green + " " + "nothing to commit, working directory clean".white
155
154
  else
156
- message = "#{INDENT}working directory contains uncomitted changes\n#{INDENT}use `".colorize(:red) + "--skip-checks".colorize(:white) + "` to ignore this step".colorize(:red)
155
+ message = "#{INDENT}working directory contains uncomitted changes\n#{INDENT}use `".red + "--skip-checks".white + "` to ignore this step".red
157
156
  failure message
158
157
  end
159
158
 
160
159
  changelog = File.open("CHANGELOG.md", &:readline).strip rescue changelog = ""
161
160
  if changelog.match(/^## #{@version.split('.')[0..2].join('.')}/)
162
- puts " CHANGELOG.md: " + "PASS".colorize(:green) + " " + changelog.colorize(:white)
161
+ puts " CHANGELOG.md: " + "PASS".green + " " + changelog.white
163
162
  else
164
163
  print " CHANGELOG.md: "
165
- message = "#{INDENT}Expected: ".colorize(:red) + "## #{@version}".colorize(:white) +
166
- "\n#{INDENT} Actual: ".colorize(:red) + changelog.colorize(:white)
164
+ message = "#{INDENT}Expected: ".red + "## #{@version}".white +
165
+ "\n#{INDENT} Actual: ".red + changelog.white
167
166
  failure message
168
167
  end
169
168
 
@@ -174,16 +173,16 @@ module Spout
174
173
  print " Version Check: "
175
174
  tag = stdout.to_s.strip
176
175
  if "v#{@version}" != tag
177
- message = "#{INDENT}Version specified in `VERSION` file ".colorize(:red) + "'v#{@version}'".colorize(:white) + " does not match git tag on HEAD commit ".colorize(:red) + "'#{tag}'".colorize(:white)
176
+ message = "#{INDENT}Version specified in `VERSION` file ".red + "'v#{@version}'".white + " does not match git tag on HEAD commit ".red + "'#{tag}'".white
178
177
  failure message
179
178
  else
180
- puts "PASS".colorize(:green) + " VERSION " + "'v#{@version}'".colorize(:white) + " matches git tag " + "'#{tag}'".colorize(:white)
179
+ puts "PASS".green + " VERSION " + "'v#{@version}'".white + " matches git tag " + "'#{tag}'".white
181
180
  end
182
181
  end
183
182
 
184
183
  def test_check
185
184
  if @skip_tests
186
- puts " Spout Tests: " + "SKIP".colorize(:blue)
185
+ puts " Spout Tests: " + "SKIP".blue
187
186
  return
188
187
  end
189
188
 
@@ -194,31 +193,31 @@ module Spout
194
193
  end
195
194
 
196
195
  if stdout.match(/[^\d]0 failures, 0 errors,/)
197
- puts "PASS".colorize(:green)
196
+ puts "PASS".green
198
197
  else
199
- message = "#{INDENT}spout t".colorize(:white) + " had errors or failures".colorize(:red) + "\n#{INDENT}Please fix all errors and failures and then run spout deploy again."
198
+ message = "#{INDENT}spout t".white + " had errors or failures".red + "\n#{INDENT}Please fix all errors and failures and then run spout deploy again."
200
199
  failure message
201
200
  end
202
201
  end
203
202
 
204
203
  def coverage_check
205
204
  if @skip_coverage
206
- puts " Dataset Coverage: " + "SKIP".colorize(:blue)
205
+ puts " Dataset Coverage: " + "SKIP".blue
207
206
  return
208
207
  end
209
208
 
210
- puts " Dataset Coverage: " + "NOT IMPLEMENTED".colorize(:yellow)
209
+ puts " Dataset Coverage: " + "NOT IMPLEMENTED".yellow
211
210
  end
212
211
 
213
212
  def user_authorization
214
- puts " Get your token here: " + "#{@url}/token".colorize(:blue).on_white.underline
213
+ puts " Get your token here: " + "#{@url}/token".blue.bg_gray.underline
215
214
  print " Enter your token: "
216
215
  @token = STDIN.noecho(&:gets).chomp if @token.to_s.strip == ""
217
216
  (json, _status) = Spout::Helpers::JsonRequest.get("#{@url}/datasets/#{@slug}/a/#{@token}/editor.json")
218
217
  if json.is_a?(Hash) && json["editor"]
219
- puts "AUTHORIZED".colorize(:green)
218
+ puts "AUTHORIZED".green
220
219
  else
221
- puts "UNAUTHORIZED".colorize(:red)
220
+ puts "UNAUTHORIZED".red
222
221
  puts "#{INDENT}You are not set as an editor on the #{@slug} dataset or you mistyped your token."
223
222
  raise DeployError
224
223
  end
@@ -226,7 +225,7 @@ module Spout
226
225
 
227
226
  def upload_variables
228
227
  if @skip_variables
229
- puts " Upload Variables: " + "SKIP".colorize(:blue)
228
+ puts " Upload Variables: " + "SKIP".blue
230
229
  return
231
230
  end
232
231
  load_subjects_from_csvs
@@ -246,12 +245,12 @@ module Spout
246
245
  require "spout/commands/graphs"
247
246
  @argv << "--clean" if @clean
248
247
  Spout::Commands::Graphs.new(@argv, @version, true, @url, @slug, @token, @webserver_name, @subjects)
249
- puts "\r Upload Variables: " + "DONE ".colorize(:green)
248
+ puts "\r Upload Variables: " + "DONE ".green
250
249
  end
251
250
 
252
251
  def dataset_uploads
253
252
  if @skip_dataset
254
- puts " Dataset Uploads: " + "SKIP".colorize(:blue)
253
+ puts " Dataset Uploads: " + "SKIP".blue
255
254
  return
256
255
  end
257
256
 
@@ -261,7 +260,7 @@ module Spout
261
260
  csv_files = Dir.glob("csvs/#{csv_directory}/**/*.csv")
262
261
 
263
262
  csv_files.each_with_index do |csv_file, index|
264
- print "\r Dataset Uploads: " + "#{index + 1} of #{csv_files.count}".colorize(:green)
263
+ print "\r Dataset Uploads: " + "#{index + 1} of #{csv_files.count}".green
265
264
  folder = csv_file.gsub(%r{^csvs/#{csv_directory}}, "").gsub(/#{File.basename(csv_file)}$/, "")
266
265
  folder = folder.gsub(%r{/$}, "")
267
266
  @created_folders << "datasets#{folder}"
@@ -270,12 +269,12 @@ module Spout
270
269
  upload_file(csv_file, "datasets#{folder}") unless @archive_only
271
270
  upload_file(csv_file, "datasets/archive/#{@version}#{folder}")
272
271
  end
273
- puts "\r Dataset Uploads: " + "DONE ".colorize(:green)
272
+ puts "\r Dataset Uploads: " + "DONE ".green
274
273
  end
275
274
 
276
275
  def data_dictionary_uploads
277
276
  if @skip_dictionary
278
- puts " Dictionary Uploads: " + "SKIP".colorize(:blue)
277
+ puts " Dictionary Uploads: " + "SKIP".blue
279
278
  return
280
279
  end
281
280
 
@@ -286,38 +285,38 @@ module Spout
286
285
 
287
286
  csv_files = Dir.glob("exports/#{@version}/*.csv")
288
287
  csv_files.each_with_index do |csv_file, index|
289
- print "\r Dictionary Uploads: " + "#{index + 1} of #{csv_files.count}".colorize(:green)
288
+ print "\r Dictionary Uploads: " + "#{index + 1} of #{csv_files.count}".green
290
289
  @created_folders << "datasets"
291
290
  @created_folders << "datasets/archive"
292
291
  @created_folders << "datasets/archive/#{@version}"
293
292
  upload_file(csv_file, "datasets") unless @archive_only
294
293
  upload_file(csv_file, "datasets/archive/#{@version}")
295
294
  end
296
- puts "\r Dictionary Uploads: " + "DONE ".colorize(:green)
295
+ puts "\r Dictionary Uploads: " + "DONE ".green
297
296
  end
298
297
 
299
298
  def markdown_uploads
300
299
  if @skip_documentation
301
- puts "Documentation Uploads: " + "SKIP".colorize(:blue)
300
+ puts "Documentation Uploads: " + "SKIP".blue
302
301
  return
303
302
  end
304
303
 
305
304
  print "Documentation Uploads:"
306
305
  markdown_files = Dir.glob(%w(CHANGELOG.md KNOWNISSUES.md))
307
306
  markdown_files.each_with_index do |markdown_file, index|
308
- print "\rDocumentation Uploads: " + "#{index + 1} of #{markdown_files.count}".colorize(:green)
307
+ print "\rDocumentation Uploads: " + "#{index + 1} of #{markdown_files.count}".green
309
308
  @created_folders << "datasets"
310
309
  @created_folders << "datasets/archive"
311
310
  @created_folders << "datasets/archive/#{@version}"
312
311
  upload_file(markdown_file, "datasets") unless @archive_only
313
312
  upload_file(markdown_file, "datasets/archive/#{@version}")
314
313
  end
315
- puts "\rDocumentation Uploads: " + "DONE ".colorize(:green)
314
+ puts "\rDocumentation Uploads: " + "DONE ".green
316
315
  end
317
316
 
318
317
  def trigger_server_updates
319
318
  if @skip_server_scripts
320
- puts "Launch Server Scripts: " + "SKIP".colorize(:blue)
319
+ puts "Launch Server Scripts: " + "SKIP".blue
321
320
  return
322
321
  end
323
322
 
@@ -325,16 +324,16 @@ module Spout
325
324
  params = { auth_token: @token, dataset: @slug, version: @version, folders: @created_folders.compact.uniq }
326
325
  (json, _status) = Spout::Helpers::JsonRequest.post("#{@url}/api/v1/dictionary/refresh.json", params)
327
326
  if json.is_a?(Hash) && json["refresh"] == "success"
328
- puts "DONE".colorize(:green)
327
+ puts "DONE".green
329
328
  else
330
- puts "FAIL".colorize(:red)
329
+ puts "FAIL".red
331
330
  raise DeployError
332
331
  end
333
332
  end
334
333
 
335
334
  def set_default_dataset_version
336
335
  if @archive_only
337
- puts " Set Default Version: " + "SKIP".colorize(:blue)
336
+ puts " Set Default Version: " + "SKIP".blue
338
337
  return
339
338
  end
340
339
  print " Set Default Version: "
@@ -343,14 +342,14 @@ module Spout
343
342
  "#{@url}/api/v1/dictionary/update_default_version.json", params
344
343
  )
345
344
  if json.is_a?(Hash) && json["version_update"] == "success"
346
- puts @version.to_s.colorize(:green)
345
+ puts @version.to_s.green
347
346
  else
348
- failure("#{INDENT}Unable to set default version\n#{INDENT}to " + @version.to_s.colorize(:white) + " for " + @slug.to_s.colorize(:white) + " dataset.")
347
+ failure("#{INDENT}Unable to set default version\n#{INDENT}to " + @version.to_s.white + " for " + @slug.to_s.white + " dataset.")
349
348
  end
350
349
  end
351
350
 
352
351
  def failure(message)
353
- puts "FAIL".colorize(:red)
352
+ puts "FAIL".red
354
353
  puts message
355
354
  raise DeployError
356
355
  end
@@ -3,7 +3,6 @@
3
3
  require "csv"
4
4
  require "json"
5
5
  require "fileutils"
6
- require "colorize"
7
6
 
8
7
  require "spout/helpers/config_reader"
9
8
 
@@ -22,7 +21,7 @@ module Spout
22
21
 
23
22
  def expanded_export!
24
23
  folder = "exports/#{@standard_version}"
25
- puts " create".colorize(:green) + " #{folder}" unless @quiet
24
+ puts " create".green + " #{folder}" unless @quiet
26
25
  FileUtils.mkpath folder
27
26
  generic_export(
28
27
  folder,
@@ -38,7 +37,7 @@ module Spout
38
37
 
39
38
  def generic_export(folder, type, keys, include_domain_name = false)
40
39
  export_file = export_file_name(type)
41
- puts " export".colorize(:blue) + " #{folder}/#{export_file}" unless @quiet
40
+ puts " export".blue + " #{folder}/#{export_file}" unless @quiet
42
41
  CSV.open("#{folder}/#{export_file}", "wb") do |csv|
43
42
  csv << if include_domain_name
44
43
  %w(folder domain_id) + keys
@@ -5,7 +5,6 @@ require "fileutils"
5
5
  require "rubygems"
6
6
  require "json"
7
7
  require "yaml"
8
- require "colorize"
9
8
 
10
9
  require "spout/helpers/subject_loader"
11
10
  require "spout/helpers/chart_types"
@@ -109,7 +108,7 @@ module Spout
109
108
  next unless Spout::Models::Subject.method_defined?(variable.id)
110
109
 
111
110
  if @deploy_mode
112
- print "\r Upload Variables: " + "#{"% 3d" % ((file_index+1)*100/variable_files_count)}% Uploaded".colorize(:white)
111
+ print "\r Upload Variables: " + "#{"% 3d" % ((file_index+1)*100/variable_files_count)}% Uploaded".white
113
112
  else
114
113
  puts "#{file_index + 1} of #{variable_files_count}: #{variable.folder}#{variable.id}"
115
114
  end
@@ -180,7 +179,7 @@ module Spout
180
179
  if json.is_a?(Hash) && status.is_a?(Net::HTTPSuccess)
181
180
  @progress[variable.id]["uploaded"] << @webserver_name
182
181
  else
183
- puts "\nUPLOAD FAILED: ".colorize(:red) + variable.id
182
+ puts "\nUPLOAD FAILED: ".red + variable.id
184
183
  puts "- Error: #{json.inspect}"
185
184
  end
186
185
  end
@@ -1,7 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require "colorize"
4
-
5
3
  module Spout
6
4
  module Commands
7
5
  class Help
@@ -2,7 +2,6 @@
2
2
 
3
3
  require "json"
4
4
  require "fileutils"
5
- require "colorize"
6
5
 
7
6
  require "spout/helpers/csv_reader"
8
7
 
@@ -41,7 +40,7 @@ EOT
41
40
  def import_variables
42
41
  Spout::Helpers::CSVReader.read_csv(@csv_file) do |row|
43
42
  if not row.keys.include?("id")
44
- puts "\nMissing column header `".colorize( :red ) + "id".colorize( :light_cyan ) + "` in data dictionary.".colorize( :red ) + additional_csv_info
43
+ puts "\nMissing column header `".red + "id".cyan + "` in data dictionary.".red + additional_csv_info
45
44
  exit(1)
46
45
  end
47
46
  next if row["id"] == ""
@@ -70,7 +69,7 @@ EOT
70
69
  File.open(file_name, "w") do |file|
71
70
  file.write(JSON.pretty_generate(hash) + "\n")
72
71
  end
73
- puts " create".colorize( :green ) + " #{file_name}"
72
+ puts " create".green + " #{file_name}"
74
73
  end
75
74
  end
76
75
 
@@ -79,15 +78,15 @@ EOT
79
78
 
80
79
  Spout::Helpers::CSVReader.read_csv(@csv_file) do |row|
81
80
  if not row.keys.include?("domain_id")
82
- puts "\nMissing column header `".colorize( :red ) + "domain_id".colorize( :light_cyan ) + "` in data dictionary.".colorize( :red ) + additional_csv_info
81
+ puts "\nMissing column header `".red + "domain_id".cyan + "` in data dictionary.".red + additional_csv_info
83
82
  exit(1)
84
83
  end
85
84
  if not row.keys.include?("value")
86
- puts "\nMissing column header `".colorize( :red ) + "value".colorize( :light_cyan ) + "` in data dictionary.".colorize( :red ) + additional_csv_info
85
+ puts "\nMissing column header `".red + "value".cyan + "` in data dictionary.".red + additional_csv_info
87
86
  exit(1)
88
87
  end
89
88
  if not row.keys.include?("display_name")
90
- puts "\nMissing column header `".colorize( :red ) + "display_name".colorize( :light_cyan ) + "` in data dictionary.".colorize( :red ) + additional_csv_info
89
+ puts "\nMissing column header `".red + "display_name".cyan + "` in data dictionary.".red + additional_csv_info
91
90
  exit(1)
92
91
  end
93
92
 
@@ -116,23 +115,23 @@ EOT
116
115
  File.open(file_name, "w") do |file|
117
116
  file.write(JSON.pretty_generate(domain_hash["options"]) + "\n")
118
117
  end
119
- puts " create".colorize( :green ) + " #{file_name}"
118
+ puts " create".green + " #{file_name}"
120
119
  end
121
120
  end
122
121
 
123
122
  def import_forms
124
123
  Spout::Helpers::CSVReader.read_csv(@csv_file) do |row|
125
124
  unless row.keys.include?("id")
126
- puts "\nMissing column header `".colorize(:red) +
127
- "id".colorize(:light_cyan) +
128
- "` in data dictionary.".colorize(:red) +
125
+ puts "\nMissing column header `".red +
126
+ "id".cyan +
127
+ "` in data dictionary.".red +
129
128
  additional_csv_info
130
129
  exit(1)
131
130
  end
132
131
  unless row.keys.include?("display_name")
133
- puts "\nMissing column header `".colorize(:red) +
134
- "display_name".colorize(:light_cyan) +
135
- "` in data dictionary.".colorize(:red) +
132
+ puts "\nMissing column header `".red +
133
+ "display_name".cyan +
134
+ "` in data dictionary.".red +
136
135
  additional_csv_info
137
136
  exit(1)
138
137
  end
@@ -149,7 +148,7 @@ EOT
149
148
  File.open(file_name, "w") do |file|
150
149
  file.write(JSON.pretty_generate(hash) + "\n")
151
150
  end
152
- puts " create".colorize(:green) + " #{file_name}"
151
+ puts " create".green + " #{file_name}"
153
152
  end
154
153
  end
155
154
 
@@ -169,7 +168,7 @@ EOT
169
168
 
170
169
  def additional_csv_info
171
170
  "\n\nFor additional information on specifying CSV column headers before import see:\n\n " +
172
- "https://github.com/sleepepi/spout#generate-a-new-repository-from-an-existing-csv-file".colorize(:light_cyan) + "\n\n"
171
+ "https://github.com/sleepepi/spout#generate-a-new-repository-from-an-existing-csv-file".cyan + "\n\n"
173
172
  end
174
173
  end
175
174
  end
@@ -1,6 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require "colorize"
4
3
  require "fileutils"
5
4
 
6
5
  require "spout/helpers/framework"
@@ -49,7 +48,7 @@ EOT
49
48
  copy_file "test/dictionary_test.rb"
50
49
  copy_file "test/test_helper.rb"
51
50
  return if skip_gemfile
52
- puts " run".colorize(:green) + " bundle install".colorize(:light_cyan)
51
+ puts " run".green + " bundle install".cyan
53
52
  Dir.chdir(@full_path)
54
53
  system "bundle install"
55
54
  end
@@ -1,6 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require "colorize"
4
3
  require "spout/helpers/json_request"
5
4
  require "spout/helpers/framework"
6
5
 
@@ -24,19 +23,19 @@ module Spout
24
23
  (json, _status) = Spout::Helpers::JsonRequest.get("https://rubygems.org/api/v1/gems/spout.json")
25
24
  if json
26
25
  if json["version"] == Spout::VERSION::STRING
27
- puts "The spout gem is " + "up-to-date".colorize(:green) + "!"
26
+ puts "The spout gem is " + "up-to-date".green + "!"
28
27
  check_framework if File.exist?("Gemfile") || File.exist?("gems.rb")
29
28
  else
30
29
  puts "A newer version (v#{json["version"]}) is available!\n\n"
31
30
  if File.exist?("gems.rb")
32
- puts "Add the following to gems.rb and run " + "bundle update".colorize(:green) + ".\n\n"
33
- puts " gem \"spout\", \"~> #{json["version"]}\"\n".colorize(:white)
31
+ puts "Add the following to gems.rb and run " + "bundle update".green + ".\n\n"
32
+ puts " gem \"spout\", \"~> #{json["version"]}\"\n".white
34
33
  elsif File.exist?("Gemfile")
35
- puts "Add the following to Gemfile and run " + "bundle update".colorize(:green) + ".\n\n"
36
- puts " gem \"spout\", \"~> #{json["version"]}\"\n".colorize(:white)
34
+ puts "Add the following to Gemfile and run " + "bundle update".green + ".\n\n"
35
+ puts " gem \"spout\", \"~> #{json["version"]}\"\n".white
37
36
  else
38
37
  puts "Type the following command to update:\n\n"
39
- puts " gem install spout --no-document".colorize(:white) + "\n\n"
38
+ puts " gem install spout --no-document".white + "\n\n"
40
39
  end
41
40
  end
42
41
  else
@@ -58,13 +57,13 @@ module Spout
58
57
  addables = ["/coverage", "/csvs", "/exports", "/graphs"]
59
58
  removables = ["/dd", "/images"]
60
59
  unless ((removables & lines) | (addables - lines)).empty?
61
- puts "File: " + ".gitignore".colorize(:white)
60
+ puts "File: " + ".gitignore".white
62
61
  puts "----------------"
63
62
  (removables & lines).each do |removable|
64
- puts "REMOVE LINE ".colorize(:red) + removable.colorize(:white)
63
+ puts "REMOVE LINE ".red + removable.white
65
64
  end
66
65
  (addables - lines).each do |addable|
67
- puts " ADD LINE ".colorize(:green) + addable.colorize(:white)
66
+ puts " ADD LINE ".green + addable.white
68
67
  end
69
68
  puts
70
69
  end
@@ -78,10 +77,10 @@ module Spout
78
77
  lines = IO.readlines(".ruby-version").collect(&:strip)
79
78
  template_lines = IO.readlines(File.expand_path("../../templates/ruby-version", __FILE__)).collect(&:strip)
80
79
  if template_lines.first != lines.first
81
- puts "File: " + ".ruby-version".colorize(:white)
80
+ puts "File: " + ".ruby-version".white
82
81
  puts "-------------------"
83
- print "Update Ruby from " + lines.first.to_s.colorize(:red)
84
- print " to " + template_lines.first.to_s.colorize(:green)
82
+ print "Update Ruby from " + lines.first.to_s.red
83
+ print " to " + template_lines.first.to_s.green
85
84
  puts "\n\n"
86
85
  end
87
86
  else
@@ -1,6 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require "colorize"
4
3
  require "date"
5
4
  require "erb"
6
5
  require "fileutils"
@@ -15,7 +14,7 @@ module Spout
15
14
  file_name = template_file if file_name == ""
16
15
  file_path = File.join(@full_path, file_name)
17
16
  template_file_path = File.join(TEMPLATES_DIRECTORY, template_file)
18
- puts " create".colorize(:green) + " #{file_name}"
17
+ puts " create".green + " #{file_name}"
19
18
  FileUtils.copy(template_file_path, file_path)
20
19
  end
21
20
 
@@ -25,14 +24,14 @@ module Spout
25
24
  file_path = File.join(@full_path, file_name)
26
25
  file_out = File.new(file_path, "w")
27
26
  file_out.syswrite(template.result(binding))
28
- puts " create".colorize(:green) + " #{file_name}"
27
+ puts " create".green + " #{file_name}"
29
28
  ensure
30
29
  file_out.close if file_out
31
30
  end
32
31
 
33
32
  def directory(directory_name)
34
33
  directory_path = File.join(@full_path, directory_name)
35
- puts " create".colorize(:green) + " #{directory_name}"
34
+ puts " create".green + " #{directory_name}"
36
35
  FileUtils.mkpath(directory_path)
37
36
  end
38
37
  end
@@ -36,7 +36,7 @@ module Spout
36
36
  end
37
37
  rescue
38
38
  @error = "Invalid URL: #{url.inspect}"
39
- puts @error.colorize(:red)
39
+ puts @error.red
40
40
  end
41
41
 
42
42
  def get
@@ -49,7 +49,7 @@ module Spout
49
49
  end
50
50
  [JSON.parse(response.body), response]
51
51
  rescue => e
52
- puts "GET Error: #{e}".colorize(:red)
52
+ puts "GET Error: #{e}".red
53
53
  end
54
54
 
55
55
  def post
@@ -59,7 +59,7 @@ module Spout
59
59
  end
60
60
  [JSON.parse(response.body), response]
61
61
  rescue => e
62
- puts "POST ERROR: #{e}".colorize(:red)
62
+ puts "POST ERROR: #{e}".red
63
63
  nil
64
64
  end
65
65
 
@@ -1,6 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require "colorize"
4
3
  require "json"
5
4
 
6
5
  require "spout/helpers/csv_reader"
@@ -45,9 +44,9 @@ module Spout
45
44
  @csv_files = Dir.glob("#{csv_root}/**/*.csv").sort
46
45
 
47
46
  if @csv_directory != @standard_version
48
- puts "\n#{@csv_files.size == 0 ? 'No CSVs found' : 'Parsing files' } in " + "#{csv_root}".colorize(:white) + " for dictionary version " + @standard_version.to_s.colorize(:green) + "\n"
47
+ puts "\n#{@csv_files.size == 0 ? 'No CSVs found' : 'Parsing files' } in " + "#{csv_root}".white + " for dictionary version " + @standard_version.to_s.green + "\n"
49
48
  else
50
- puts "\n#{@csv_files.size == 0 ? 'No CSVs found' : 'Parsing files' } in " + "#{csv_root}".colorize(:white) + "\n"
49
+ puts "\n#{@csv_files.size == 0 ? 'No CSVs found' : 'Parsing files' } in " + "#{csv_root}".white + "\n"
51
50
  end
52
51
 
53
52
  last_folder = nil
@@ -56,13 +55,13 @@ module Spout
56
55
  current_file = File.basename(relative_path)
57
56
  current_folder = relative_path.gsub(/#{current_file}$/, "")
58
57
  count = 1 # Includes counting the header row
59
- puts " #{current_folder}".colorize(:white) if current_folder.to_s != "" && current_folder != last_folder
58
+ puts " #{current_folder}".white if current_folder.to_s != "" && current_folder != last_folder
60
59
  print " #{current_file}"
61
60
  last_folder = current_folder
62
61
 
63
62
  Spout::Helpers::CSVReader.read_csv(csv_file) do |row|
64
63
  count += 1
65
- print "\r #{current_file} " + "##{count}".colorize(:yellow) if (count % 10 == 0)
64
+ print "\r #{current_file} " + "##{count}".yellow if (count % 10 == 0)
66
65
  @subjects << Spout::Models::Subject.create do |t|
67
66
  t._visit = row[@visit]
68
67
  t._csv = File.basename(csv_file)
@@ -70,7 +69,7 @@ module Spout
70
69
  row.each_with_index do |(key, value), index|
71
70
  method = key.to_s.downcase.strip
72
71
  if method == ""
73
- puts "\nSkipping column #{index + 1} due to blank header.".colorize(:red) if count == 2
72
+ puts "\nSkipping column #{index + 1} due to blank header.".red if count == 2
74
73
  next
75
74
  end
76
75
  next unless @valid_ids.include?(method) || @valid_ids.size == 0
@@ -91,7 +90,7 @@ module Spout
91
90
  break if !@number_of_rows.nil? && count - 1 >= @number_of_rows
92
91
  end
93
92
 
94
- print "\r #{current_file} " + "##{count}".colorize(:green)
93
+ print "\r #{current_file} " + "##{count}".green
95
94
  puts "\n"
96
95
  end
97
96
  end
@@ -17,9 +17,9 @@ class DictionaryTest < Minitest::Test
17
17
  # VALID_UNITS = ["minutes", "hours"]
18
18
  # @variables.select { |v| %w(numeric integer).include?(v.type) }.each do |variable|
19
19
  # define_method("test_units: #{variable.path}") do
20
- # message = "\"#{variable.units}\"".colorize(:red) + " invalid units.\n" +
20
+ # message = "\"#{variable.units}\"".red + " invalid units.\n" +
21
21
  # " Valid types: " +
22
- # VALID_UNITS.sort_by(&:to_s).collect { |u| u.inspect.colorize(:white) }.join(", ")
22
+ # VALID_UNITS.sort_by(&:to_s).collect { |u| u.inspect.white }.join(", ")
23
23
  # assert VALID_UNITS.include?(variable.units), message
24
24
  # end
25
25
  # end
data/lib/spout/tests.rb CHANGED
@@ -5,7 +5,6 @@ require "json"
5
5
 
6
6
  require "minitest/autorun"
7
7
  require "minitest/reporters"
8
- require "colorize"
9
8
 
10
9
  module Minitest
11
10
  module Reporters
@@ -14,10 +13,7 @@ module Minitest
14
13
 
15
14
  def start
16
15
  super
17
- print "Loaded Suite test".colorize(:white)
18
- puts
19
- puts
20
- puts "Started"
16
+ puts "Started spout tests".white
21
17
  puts
22
18
  end
23
19
 
@@ -25,11 +21,11 @@ module Minitest
25
21
  super
26
22
  puts format("Finished in %.5f seconds.", total_time)
27
23
  puts
28
- print format("%d tests", count).colorize(:white)
24
+ print format("%d tests", count).white
29
25
  print format(", %d assertions, ", assertions)
30
26
  color = failures.zero? && errors.zero? ? :green : :red
31
- print format("%d failures, %d errors, ", failures, errors).colorize(color)
32
- print format("%d skips", skips).colorize(:yellow)
27
+ print format("%d failures, %d errors, ", failures, errors).send(color)
28
+ print format("%d skips", skips).yellow
33
29
  puts
34
30
  puts
35
31
  end
@@ -58,7 +54,7 @@ module Minitest
58
54
  else
59
55
  :red
60
56
  end
61
- print pad_mark(result(test).to_s.upcase).colorize(color)
57
+ print pad_mark(result(test).to_s.upcase).send(color)
62
58
  end
63
59
 
64
60
  def before_suite(suite)
@@ -111,6 +107,3 @@ module Spout
111
107
  include Spout::Tests::VariableTypeValidation
112
108
  end
113
109
  end
114
-
115
- # Initialize the String class `@disable_colorization` instance variable
116
- String.disable_colorization = false
data/lib/spout/version.rb CHANGED
@@ -5,7 +5,7 @@ module Spout
5
5
  MAJOR = 0
6
6
  MINOR = 14
7
7
  TINY = 0
8
- BUILD = "beta1" # "pre", "rc", "rc2", nil
8
+ BUILD = "beta2" # "pre", "rc", "rc2", nil
9
9
 
10
10
  STRING = [MAJOR, MINOR, TINY, BUILD].compact.join(".").freeze
11
11
  end
data/lib/spout.rb CHANGED
@@ -1,6 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  require "spout/version"
4
+ require "spout/color"
4
5
 
5
6
  require "spout/models/dictionary"
6
7
 
data/spout.gemspec CHANGED
@@ -40,5 +40,4 @@ Gem::Specification.new do |spec|
40
40
  spec.add_dependency "minitest"
41
41
  spec.add_dependency "minitest-reporters"
42
42
  spec.add_dependency "json"
43
- spec.add_dependency "colorize", "~> 0.8.1"
44
43
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: spout
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.14.0.beta1
4
+ version: 0.14.0.beta2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Remo Mueller
@@ -66,20 +66,6 @@ dependencies:
66
66
  - - ">="
67
67
  - !ruby/object:Gem::Version
68
68
  version: '0'
69
- - !ruby/object:Gem::Dependency
70
- name: colorize
71
- requirement: !ruby/object:Gem::Requirement
72
- requirements:
73
- - - "~>"
74
- - !ruby/object:Gem::Version
75
- version: 0.8.1
76
- type: :runtime
77
- prerelease: false
78
- version_requirements: !ruby/object:Gem::Requirement
79
- requirements:
80
- - - "~>"
81
- - !ruby/object:Gem::Version
82
- version: 0.8.1
83
69
  description: Manage your data dictionary as a JSON repository, and easily export back
84
70
  to CSV.
85
71
  email:
@@ -95,6 +81,7 @@ files:
95
81
  - Rakefile
96
82
  - bin/spout
97
83
  - lib/spout.rb
84
+ - lib/spout/color.rb
98
85
  - lib/spout/commands/coverage.rb
99
86
  - lib/spout/commands/deploy.rb
100
87
  - lib/spout/commands/exporter.rb