spout 0.12.1 → 0.13.0.beta1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (75) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +7 -0
  3. data/README.md +5 -5
  4. data/Rakefile +4 -4
  5. data/bin/spout +1 -1
  6. data/lib/spout/commands/coverage.rb +18 -18
  7. data/lib/spout/commands/deploy.rb +89 -89
  8. data/lib/spout/commands/exporter.rb +16 -16
  9. data/lib/spout/commands/graphs.rb +37 -37
  10. data/lib/spout/commands/help.rb +1 -1
  11. data/lib/spout/commands/importer.rb +59 -57
  12. data/lib/spout/commands/outliers.rb +17 -17
  13. data/lib/spout/commands/project_generator.rb +25 -25
  14. data/lib/spout/commands/update.rb +38 -38
  15. data/lib/spout/helpers/array_statistics.rb +7 -7
  16. data/lib/spout/helpers/chart_types.rb +2 -2
  17. data/lib/spout/helpers/config_reader.rb +21 -20
  18. data/lib/spout/helpers/framework.rb +11 -11
  19. data/lib/spout/helpers/iterators.rb +1 -3
  20. data/lib/spout/helpers/json_loader.rb +2 -4
  21. data/lib/spout/helpers/json_request.rb +11 -11
  22. data/lib/spout/helpers/number_helper.rb +1 -1
  23. data/lib/spout/helpers/quietly.rb +1 -1
  24. data/lib/spout/helpers/semantic.rb +1 -1
  25. data/lib/spout/helpers/send_file.rb +14 -14
  26. data/lib/spout/helpers/subject_loader.rb +24 -24
  27. data/lib/spout/helpers/table_formatting.rb +12 -12
  28. data/lib/spout/models/coverage_result.rb +8 -8
  29. data/lib/spout/models/dictionary.rb +10 -10
  30. data/lib/spout/models/domain.rb +7 -7
  31. data/lib/spout/models/empty.rb +1 -1
  32. data/lib/spout/models/form.rb +6 -6
  33. data/lib/spout/models/graphables/choices_vs_choices.rb +3 -5
  34. data/lib/spout/models/graphables/choices_vs_numeric.rb +4 -6
  35. data/lib/spout/models/graphables/default.rb +6 -6
  36. data/lib/spout/models/graphables/histogram.rb +4 -4
  37. data/lib/spout/models/graphables/numeric_vs_choices.rb +1 -1
  38. data/lib/spout/models/graphables/numeric_vs_numeric.rb +6 -6
  39. data/lib/spout/models/graphables.rb +14 -14
  40. data/lib/spout/models/outlier_result.rb +16 -18
  41. data/lib/spout/models/record.rb +3 -3
  42. data/lib/spout/models/tables/choices_vs_choices.rb +11 -11
  43. data/lib/spout/models/tables/choices_vs_numeric.rb +8 -8
  44. data/lib/spout/models/tables/default.rb +5 -5
  45. data/lib/spout/models/tables/numeric_vs_choices.rb +7 -7
  46. data/lib/spout/models/tables/numeric_vs_numeric.rb +7 -7
  47. data/lib/spout/models/tables.rb +11 -11
  48. data/lib/spout/models/variable.rb +14 -14
  49. data/lib/spout/tasks/engine.rake +4 -4
  50. data/lib/spout/templates/CHANGELOG.md.erb +1 -1
  51. data/lib/spout/templates/Gemfile +2 -2
  52. data/lib/spout/templates/Rakefile +1 -1
  53. data/lib/spout/templates/test/dictionary_test.rb +3 -3
  54. data/lib/spout/templates/test/test_helper.rb +1 -1
  55. data/lib/spout/tests/domain_existence_validation.rb +6 -6
  56. data/lib/spout/tests/domain_format.rb +1 -1
  57. data/lib/spout/tests/domain_name_format.rb +3 -3
  58. data/lib/spout/tests/domain_name_uniqueness.rb +2 -2
  59. data/lib/spout/tests/domain_specified.rb +1 -3
  60. data/lib/spout/tests/form_existence_validation.rb +2 -4
  61. data/lib/spout/tests/form_name_format.rb +3 -3
  62. data/lib/spout/tests/form_name_match.rb +1 -1
  63. data/lib/spout/tests/json_helper.rb +1 -1
  64. data/lib/spout/tests/json_validation.rb +0 -2
  65. data/lib/spout/tests/variable_name_format.rb +3 -3
  66. data/lib/spout/tests/variable_name_match.rb +1 -3
  67. data/lib/spout/tests/variable_name_uniqueness.rb +2 -2
  68. data/lib/spout/tests/variable_type_validation.rb +2 -2
  69. data/lib/spout/tests.rb +30 -30
  70. data/lib/spout/version.rb +4 -4
  71. data/lib/spout/views/index.html.erb +15 -15
  72. data/lib/spout/views/outliers.html.erb +8 -8
  73. data/lib/spout.rb +26 -26
  74. data/spout.gemspec +22 -22
  75. metadata +5 -5
@@ -1,7 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'spout/models/tables/default'
4
- require 'spout/helpers/array_statistics'
3
+ require "spout/models/tables/default"
4
+ require "spout/helpers/array_statistics"
5
5
 
6
6
  module Spout
7
7
  module Models
@@ -18,16 +18,16 @@ module Spout
18
18
  "#{bucket.min} to #{bucket.max} #{@chart_variable.units}"
19
19
  end
20
20
 
21
- [[''] + categories + ['Total']]
21
+ [[""] + categories + ["Total"]]
22
22
  end
23
23
 
24
24
  def footers
25
25
  total_values = [:quartile_one, :quartile_two, :quartile_three, :quartile_four].collect do |quartile|
26
- { text: Spout::Helpers::TableFormatting.format_number(@filtered_subjects.send(quartile).count, :count), style: 'font-weight:bold' }
26
+ { text: Spout::Helpers::TableFormatting.format_number(@filtered_subjects.send(quartile).count, :count), style: "font-weight:bold" }
27
27
  end
28
28
 
29
29
  [
30
- [{ text: 'Total', style: 'font-weight:bold' }] + total_values + [{ text: Spout::Helpers::TableFormatting.format_number(@filtered_subjects.count, :count), style: 'font-weight:bold' }]
30
+ [{ text: "Total", style: "font-weight:bold" }] + total_values + [{ text: Spout::Helpers::TableFormatting.format_number(@filtered_subjects.count, :count), style: "font-weight:bold" }]
31
31
  ]
32
32
  end
33
33
 
@@ -40,15 +40,15 @@ module Spout
40
40
  Spout::Helpers::TableFormatting.format_number(count, :count)
41
41
  end
42
42
 
43
- [option.display_name] + data + [{ text: Spout::Helpers::TableFormatting.format_number(row_subjects.count, :count), style: 'font-weight:bold' }]
43
+ [option.display_name] + data + [{ text: Spout::Helpers::TableFormatting.format_number(row_subjects.count, :count), style: "font-weight:bold" }]
44
44
  end
45
45
 
46
46
  if @filtered_subjects.count { |s| s.send(@variable.id).is_a?(Spout::Models::Empty) } > 0
47
47
  unknown_values = [:quartile_one, :quartile_two, :quartile_three, :quartile_four].collect do |quartile|
48
48
  count = @filtered_subjects.send(quartile).count { |s| s.send(@variable.id).is_a?(Spout::Models::Empty) }
49
- { text: Spout::Helpers::TableFormatting.format_number(count, :count), class: 'text-muted' }
49
+ { text: Spout::Helpers::TableFormatting.format_number(count, :count), class: "text-muted" }
50
50
  end
51
- rows_result << [{ text: 'Unknown', class: 'text-muted'}] + unknown_values + [{ text: Spout::Helpers::TableFormatting.format_number(@filtered_subjects.count { |s| s.send(@variable.id).is_a?(Spout::Models::Empty) }, :count), style: 'font-weight:bold', class: 'text-muted' }]
51
+ rows_result << [{ text: "Unknown", class: "text-muted"}] + unknown_values + [{ text: Spout::Helpers::TableFormatting.format_number(@filtered_subjects.count { |s| s.send(@variable.id).is_a?(Spout::Models::Empty) }, :count), style: "font-weight:bold", class: "text-muted" }]
52
52
  end
53
53
  rows_result
54
54
  end
@@ -1,7 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'spout/models/variable'
4
- require 'spout/helpers/table_formatting'
3
+ require "spout/models/variable"
4
+ require "spout/helpers/table_formatting"
5
5
 
6
6
  module Spout
7
7
  module Models
@@ -34,9 +34,9 @@ module Spout
34
34
  def valid?
35
35
  if @variable.nil? || @chart_variable.nil? || @values_unique == []
36
36
  false
37
- elsif @variable.type == 'choices' && @variable.domain.options == []
37
+ elsif @variable.type == "choices" && @variable.domain.options == []
38
38
  false
39
- elsif @chart_variable.type == 'choices' && @chart_variable.domain.options == []
39
+ elsif @chart_variable.type == "choices" && @chart_variable.domain.options == []
40
40
  false
41
41
  else
42
42
  true
@@ -44,7 +44,7 @@ module Spout
44
44
  end
45
45
 
46
46
  def title
47
- ''
47
+ ""
48
48
  end
49
49
 
50
50
  def headers
@@ -1,7 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'spout/models/tables/default'
4
- require 'spout/helpers/array_statistics'
3
+ require "spout/models/tables/default"
4
+ require "spout/helpers/array_statistics"
5
5
 
6
6
  module Spout
7
7
  module Models
@@ -12,18 +12,18 @@ module Spout
12
12
  end
13
13
 
14
14
  def headers
15
- [[''] + Spout::Helpers::ArrayStatistics.calculations.collect(&:first) + ['Total']]
15
+ [[""] + Spout::Helpers::ArrayStatistics.calculations.collect(&:first) + ["Total"]]
16
16
  end
17
17
 
18
18
  def footers
19
19
  return [] unless @totals
20
20
  total_values = Spout::Helpers::ArrayStatistics.calculations.collect do |_calculation_label, calculation_method, calculation_type, calculation_format|
21
21
  total_count = @filtered_subjects.collect(&@variable.id.to_sym).send(calculation_method)
22
- { text: Spout::Helpers::TableFormatting.format_number(total_count, calculation_type, calculation_format), style: 'font-weight:bold' }
22
+ { text: Spout::Helpers::TableFormatting.format_number(total_count, calculation_type, calculation_format), style: "font-weight:bold" }
23
23
  end
24
24
 
25
25
  [
26
- [{ text: 'Total', style: 'font-weight:bold' }] + total_values + [{ text: Spout::Helpers::TableFormatting.format_number(@filtered_subjects.count, :count), style: 'font-weight:bold' }]
26
+ [{ text: "Total", style: "font-weight:bold" }] + total_values + [{ text: Spout::Helpers::TableFormatting.format_number(@filtered_subjects.count, :count), style: "font-weight:bold" }]
27
27
  ]
28
28
  end
29
29
 
@@ -33,10 +33,10 @@ module Spout
33
33
 
34
34
  row_cells = Spout::Helpers::ArrayStatistics.calculations.collect do |_calculation_label, calculation_method, calculation_type, calculation_format|
35
35
  count = row_subjects.collect(&@variable.id.to_sym).send(calculation_method)
36
- (count == 0 && calculation_method == :count) ? { text: '-', class: 'text-muted' } : Spout::Helpers::TableFormatting.format_number(count, calculation_type, calculation_format)
36
+ (count == 0 && calculation_method == :count) ? { text: "-", class: "text-muted" } : Spout::Helpers::TableFormatting.format_number(count, calculation_type, calculation_format)
37
37
  end
38
38
 
39
- [option.display_name] + row_cells + [{ text: Spout::Helpers::TableFormatting.format_number(row_subjects.count, :count), style: 'font-weight:bold' }]
39
+ [option.display_name] + row_cells + [{ text: Spout::Helpers::TableFormatting.format_number(row_subjects.count, :count), style: "font-weight:bold" }]
40
40
  end
41
41
  end
42
42
  end
@@ -1,7 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'spout/models/tables/default'
4
- require 'spout/helpers/array_statistics'
3
+ require "spout/models/tables/default"
4
+ require "spout/helpers/array_statistics"
5
5
 
6
6
  module Spout
7
7
  module Models
@@ -12,17 +12,17 @@ module Spout
12
12
  end
13
13
 
14
14
  def headers
15
- [[''] + Spout::Helpers::ArrayStatistics.calculations.collect(&:first) + ['Total']]
15
+ [[""] + Spout::Helpers::ArrayStatistics.calculations.collect(&:first) + ["Total"]]
16
16
  end
17
17
 
18
18
  def footers
19
19
  total_values = Spout::Helpers::ArrayStatistics.calculations.collect do |_calculation_label, calculation_method, calculation_type, calculation_format|
20
20
  total_count = @filtered_subjects.collect(&@variable.id.to_sym).send(calculation_method)
21
- { text: Spout::Helpers::TableFormatting.format_number(total_count, calculation_type, calculation_format), style: 'font-weight:bold' }
21
+ { text: Spout::Helpers::TableFormatting.format_number(total_count, calculation_type, calculation_format), style: "font-weight:bold" }
22
22
  end
23
23
 
24
24
  [
25
- [{ text: 'Total', style: 'font-weight:bold' }] + total_values + [{ text: Spout::Helpers::TableFormatting.format_number(@filtered_subjects.count, :count), style: 'font-weight:bold' }]
25
+ [{ text: "Total", style: "font-weight:bold" }] + total_values + [{ text: Spout::Helpers::TableFormatting.format_number(@filtered_subjects.count, :count), style: "font-weight:bold" }]
26
26
  ]
27
27
  end
28
28
 
@@ -36,7 +36,7 @@ module Spout
36
36
 
37
37
  row_name = get_row_name(quartile, bucket, row_subjects)
38
38
 
39
- [row_name] + data + [{ text: Spout::Helpers::TableFormatting.format_number(row_subjects.count, :count), style: 'font-weight:bold' }]
39
+ [row_name] + data + [{ text: Spout::Helpers::TableFormatting.format_number(row_subjects.count, :count), style: "font-weight:bold" }]
40
40
  end
41
41
  end
42
42
 
@@ -44,7 +44,7 @@ module Spout
44
44
 
45
45
  def get_row_name(quartile, bucket, row_subjects)
46
46
  if row_subjects.size == 0
47
- quartile.to_s.capitalize.gsub('_one', ' One').gsub('_two', ' Two').gsub('_three', ' Three').gsub('_four', ' Four')
47
+ quartile.to_s.capitalize.gsub("_one", " One").gsub("_two", " Two").gsub("_three", " Three").gsub("_four", " Four")
48
48
  else
49
49
  "#{bucket.collect(&@chart_variable.id.to_sym).min} to #{bucket.collect(&@chart_variable.id.to_sym).max} #{@chart_variable.units}"
50
50
  end
@@ -1,20 +1,20 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'spout/models/tables/default'
4
- require 'spout/models/tables/numeric_vs_choices'
5
- require 'spout/models/tables/choices_vs_choices'
6
- require 'spout/models/tables/numeric_vs_numeric'
7
- require 'spout/models/tables/choices_vs_numeric'
3
+ require "spout/models/tables/default"
4
+ require "spout/models/tables/numeric_vs_choices"
5
+ require "spout/models/tables/choices_vs_choices"
6
+ require "spout/models/tables/numeric_vs_numeric"
7
+ require "spout/models/tables/choices_vs_numeric"
8
8
 
9
9
  module Spout
10
10
  module Models
11
11
  module Tables
12
12
  DEFAULT_CLASS = Spout::Models::Tables::Default
13
13
  GRAPHABLE_CLASSES = {
14
- 'numeric_vs_choices' => Spout::Models::Tables::NumericVsChoices,
15
- 'choices_vs_choices' => Spout::Models::Tables::ChoicesVsChoices,
16
- 'numeric_vs_numeric' => Spout::Models::Tables::NumericVsNumeric,
17
- 'choices_vs_numeric' => Spout::Models::Tables::ChoicesVsNumeric
14
+ "numeric_vs_choices" => Spout::Models::Tables::NumericVsChoices,
15
+ "choices_vs_choices" => Spout::Models::Tables::ChoicesVsChoices,
16
+ "numeric_vs_numeric" => Spout::Models::Tables::NumericVsNumeric,
17
+ "choices_vs_numeric" => Spout::Models::Tables::ChoicesVsNumeric
18
18
  }
19
19
 
20
20
  def self.for(variable, chart_variable, subjects, subtitle, totals: true)
@@ -30,8 +30,8 @@ module Spout
30
30
  def self.variable_to_table_type(variable)
31
31
  variable_type = (variable ? variable.type : nil)
32
32
  case variable_type
33
- when 'numeric', 'integer'
34
- 'numeric'
33
+ when "numeric", "integer"
34
+ "numeric"
35
35
  else
36
36
  variable_type
37
37
  end
@@ -1,16 +1,16 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'json'
3
+ require "json"
4
4
 
5
- require 'spout/models/record'
6
- require 'spout/models/domain'
7
- require 'spout/models/form'
5
+ require "spout/models/record"
6
+ require "spout/models/domain"
7
+ require "spout/models/form"
8
8
 
9
9
 
10
10
  module Spout
11
11
  module Models
12
12
  class Variable < Spout::Models::Record
13
- # VARIABLE_TYPES = ['choices', 'numeric', 'integer']
13
+ # VARIABLE_TYPES = ["choices", "numeric", "integer"]
14
14
 
15
15
  attr_accessor :id, :folder, :display_name, :description, :type, :units, :labels, :commonly_used, :calculation
16
16
  attr_accessor :domain_name, :form_names
@@ -20,8 +20,8 @@ module Spout
20
20
 
21
21
  def initialize(file_name, dictionary_root)
22
22
  @errors = []
23
- @id = file_name.to_s.gsub(%r{^(.*)/|\.json$}, '').downcase
24
- @folder = file_name.to_s.gsub(%r{^#{dictionary_root}/variables/|#{@id}\.json$}, '')
23
+ @id = file_name.to_s.gsub(%r{^(.*)/|\.json$}, "").downcase
24
+ @folder = file_name.to_s.gsub(%r{^#{dictionary_root}/variables/|#{@id}\.json$}, "")
25
25
  @form_names = []
26
26
  @domain_name = nil
27
27
 
@@ -37,10 +37,10 @@ module Spout
37
37
  instance_variable_set("@#{method}", json[method])
38
38
  end
39
39
  @commonly_used = false if @commonly_used.nil?
40
- @errors << "'id': #{json['id'].inspect} does not match filename #{@id.inspect}" if @id != json['id']
41
- @domain_name = json['domain'] # Spout::Models::Domain.new(json['domain'], dictionary_root)
42
- @labels = (json['labels'] || [])
43
- @form_names = (json['forms'] || []).collect do |form_name|
40
+ @errors << "'id': #{json['id'].inspect} does not match filename #{@id.inspect}" if @id != json["id"]
41
+ @domain_name = json["domain"] # Spout::Models::Domain.new(json["domain"], dictionary_root)
42
+ @labels = (json["labels"] || [])
43
+ @form_names = (json["forms"] || []).collect do |form_name|
44
44
  form_name
45
45
  end
46
46
  elsif json
@@ -58,10 +58,10 @@ module Spout
58
58
  def known_issues
59
59
  line_found = false
60
60
  lines = []
61
- known_issues_file = 'KNOWNISSUES.md'
61
+ known_issues_file = "KNOWNISSUES.md"
62
62
  if File.exist?(known_issues_file) && File.file?(known_issues_file)
63
63
  IO.foreach(known_issues_file) do |line|
64
- if line_found && Variable.starts_with?(line, ' - ')
64
+ if line_found && Variable.starts_with?(line, " - ")
65
65
  lines << line
66
66
  elsif Variable.partial_match?(line, "\\[#{id}\\]")
67
67
  line_found = true
@@ -84,7 +84,7 @@ module Spout
84
84
 
85
85
  def deploy_params
86
86
  { name: id, display_name: display_name, variable_type: type,
87
- folder: folder.to_s.gsub(%r{/$}, ''), description: description,
87
+ folder: folder.to_s.gsub(%r{/$}, ""), description: description,
88
88
  units: units, calculation: calculation, commonly_used: commonly_used,
89
89
  labels: labels,
90
90
  stats_n: n, stats_mean: mean, stats_stddev: stddev,
@@ -1,11 +1,11 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'rake/testtask'
4
- require 'colorize'
3
+ require "rake/testtask"
4
+ require "colorize"
5
5
 
6
6
  Rake::TestTask.new do |t|
7
- t.libs << 'test'
8
- t.test_files = FileList['test/**/*_test.rb']
7
+ t.libs << "test"
8
+ t.test_files = FileList["test/**/*_test.rb"]
9
9
  t.warning = false
10
10
  t.verbose = false
11
11
  end
@@ -1,3 +1,3 @@
1
- ## 0.1.0 (<%= Date.today.strftime('%B %-d, %Y') %>)
1
+ ## 0.1.0 (<%= Date.today.strftime("%B %-d, %Y") %>)
2
2
 
3
3
  - Created the <%= @project_name.downcase %> data dictionary repository using Spout v<%= Spout::VERSION::STRING %>
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- source 'https://rubygems.org'
3
+ source "https://rubygems.org"
4
4
 
5
- gem 'spout'
5
+ gem "spout"
@@ -1,3 +1,3 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'spout/tasks'
3
+ require "spout/tasks"
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'test_helper'
3
+ require "test_helper"
4
4
 
5
5
  # Launches default Spout tests and custom tests for specific to this dictionary.
6
6
  class DictionaryTest < Minitest::Test
@@ -14,12 +14,12 @@ class DictionaryTest < Minitest::Test
14
14
  # Example 1: Create custom tests to show that `integer` and `numeric`
15
15
  # variables have a valid unit type.
16
16
  # Add your own valid units to this array.
17
- # VALID_UNITS = ['minutes', 'hours']
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
20
  # message = "\"#{variable.units}\"".colorize(: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.colorize(:white) }.join(", ")
23
23
  # assert VALID_UNITS.include?(variable.units), message
24
24
  # end
25
25
  # end
@@ -1,3 +1,3 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'spout/tests'
3
+ require "spout/tests"
@@ -6,22 +6,22 @@ module Spout
6
6
  # defined.
7
7
  module DomainExistenceValidation
8
8
  def assert_domain_existence(item)
9
- domain_names = Dir.glob('domains/**/*.json').collect do |file|
10
- file.split('/').last.to_s.downcase.split('.json').first
9
+ domain_names = Dir.glob("domains/**/*.json").collect do |file|
10
+ file.split("/").last.to_s.downcase.split(".json").first
11
11
  end
12
12
  result = begin
13
- domain_name = JSON.parse(File.read(item))['domain']
13
+ domain_name = JSON.parse(File.read(item))["domain"]
14
14
  domain_names.include?(domain_name)
15
15
  rescue JSON::ParserError
16
- domain_name = ''
16
+ domain_name = ""
17
17
  false
18
18
  end
19
19
  message = "The domain #{domain_name} referenced by #{item} does not exist."
20
20
  assert result, message
21
21
  end
22
22
 
23
- Dir.glob('variables/**/*.json').each do |file|
24
- if (not [nil, ''].include?(JSON.parse(File.read(file))['domain']) rescue false)
23
+ Dir.glob("variables/**/*.json").each do |file|
24
+ if (not [nil, ""].include?(JSON.parse(File.read(file))["domain"]) rescue false)
25
25
  define_method("test_domain_exists: #{file}") do
26
26
  assert_domain_existence file
27
27
  end
@@ -22,7 +22,7 @@ module Spout
22
22
  assert result, message
23
23
  end
24
24
 
25
- Dir.glob('domains/**/*.json').each do |file|
25
+ Dir.glob("domains/**/*.json").each do |file|
26
26
  define_method("test_domain_format: #{file}") do
27
27
  assert_domain_format file
28
28
  end
@@ -5,10 +5,10 @@ module Spout
5
5
  # Tests to assure that the domain name starts with a lowercase letter
6
6
  # followed by lowercase letters, numbers, or underscores
7
7
  module DomainNameFormat
8
- Dir.glob('domains/**/*.json').each do |file|
8
+ Dir.glob("domains/**/*.json").each do |file|
9
9
  define_method("test_domain_name_format: #{file}") do
10
- message = 'Domain name format error. Name must start with a lowercase letter and be followed by lowercase letters, numbers, or underscores'
11
- name = File.basename(file).gsub(/\.json$/, '') rescue name = nil
10
+ message = "Domain name format error. Name must start with a lowercase letter and be followed by lowercase letters, numbers, or underscores"
11
+ name = File.basename(file).gsub(/\.json$/, "") rescue name = nil
12
12
  assert_match(/^[a-z]\w*$/, name, message)
13
13
  end
14
14
  end
@@ -4,8 +4,8 @@ module Spout
4
4
  module Tests
5
5
  module DomainNameUniqueness
6
6
  def test_domain_name_uniqueness
7
- files = Dir.glob("domains/**/*.json").collect{|file| file.split('/').last.downcase }
8
- assert_equal [], files.select{ |f| files.count(f) > 1 }.uniq
7
+ files = Dir.glob("domains/**/*.json").collect { |file| file.split("/").last.downcase }
8
+ assert_equal [], files.select { |f| files.count(f) > 1 }.uniq
9
9
  end
10
10
  end
11
11
  end
@@ -1,11 +1,10 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'spout/tests/json_helper'
3
+ require "spout/tests/json_helper"
4
4
 
5
5
  module Spout
6
6
  module Tests
7
7
  module DomainSpecified
8
-
9
8
  Dir.glob("variables/**/*.json").each do |file|
10
9
  if json_value(file, :type) == "choices"
11
10
  define_method("test_domain_specified:"+file) do
@@ -14,7 +13,6 @@ module Spout
14
13
  end
15
14
  end
16
15
  end
17
-
18
16
  end
19
17
  end
20
18
  end
@@ -3,9 +3,8 @@
3
3
  module Spout
4
4
  module Tests
5
5
  module FormExistenceValidation
6
-
7
6
  def assert_form_existence(item)
8
- form_names = Dir.glob("forms/**/*.json").collect{|file| file.split('/').last.to_s.downcase.split('.json').first}
7
+ form_names = Dir.glob("forms/**/*.json").collect{|file| file.split("/").last.to_s.downcase.split(".json").first}
9
8
 
10
9
  result = begin
11
10
  (form_names | JSON.parse(File.read(item))["forms"]).size == form_names.size
@@ -19,13 +18,12 @@ module Spout
19
18
  end
20
19
 
21
20
  Dir.glob("variables/**/*.json").each do |file|
22
- if (not [nil, ''].include?(JSON.parse(File.read(file))["forms"]) rescue false)
21
+ if (not [nil, ""].include?(JSON.parse(File.read(file))["forms"]) rescue false)
23
22
  define_method("test_form_exists: "+file) do
24
23
  assert_form_existence file
25
24
  end
26
25
  end
27
26
  end
28
-
29
27
  end
30
28
  end
31
29
  end
@@ -5,10 +5,10 @@ module Spout
5
5
  # Tests to assure that the domain name starts with a lowercase letter
6
6
  # followed by lowercase letters, numbers, or underscores
7
7
  module FormNameFormat
8
- Dir.glob('forms/**/*.json').each do |file|
8
+ Dir.glob("forms/**/*.json").each do |file|
9
9
  define_method("test_form_name_format: #{file}") do
10
- message = 'Form name format error. Name must start with a lowercase letter and be followed by lowercase letters, numbers, or underscores'
11
- assert_match(/^[a-z]\w*$/, (begin JSON.parse(File.read(file))['id'] rescue nil end), message)
10
+ message = "Form name format error. Name must start with a lowercase letter and be followed by lowercase letters, numbers, or underscores"
11
+ assert_match(/^[a-z]\w*$/, (begin JSON.parse(File.read(file))["id"] rescue nil end), message)
12
12
  end
13
13
  end
14
14
  end
@@ -5,7 +5,7 @@ module Spout
5
5
  module FormNameMatch
6
6
  Dir.glob("forms/**/*.json").each do |file|
7
7
  define_method("test_form_name_match: "+file) do
8
- assert_equal file.gsub(/^.*\//, '').gsub('.json', '').downcase, (begin JSON.parse(File.read(file))["id"] rescue nil end)
8
+ assert_equal file.gsub(/^.*\//, "").gsub(".json", "").downcase, (begin JSON.parse(File.read(file))["id"] rescue nil end)
9
9
  end
10
10
  end
11
11
  end
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'json'
3
+ require "json"
4
4
 
5
5
  def json_value(file, key)
6
6
  begin JSON.parse(File.read(file))[key.to_s] rescue nil end
@@ -3,7 +3,6 @@
3
3
  module Spout
4
4
  module Tests
5
5
  module JsonValidation
6
-
7
6
  def assert_valid_json(item, msg = nil)
8
7
  result = begin
9
8
  !!JSON.parse(File.read(item))
@@ -33,7 +32,6 @@ module Spout
33
32
  assert_valid_json file
34
33
  end
35
34
  end
36
-
37
35
  end
38
36
  end
39
37
  end
@@ -5,10 +5,10 @@ module Spout
5
5
  # Tests to assure that the variable name starts with a lowercase letter
6
6
  # followed by lowercase letters, numbers, or underscores
7
7
  module VariableNameFormat
8
- Dir.glob('variables/**/*.json').each do |file|
8
+ Dir.glob("variables/**/*.json").each do |file|
9
9
  define_method("test_variable_name_format: #{file}") do
10
- message = 'Variable name format error. Name must start with a lowercase letter and be followed by lowercase letters, numbers, or underscores'
11
- assert_match(/^[a-z]\w*$/, (begin JSON.parse(File.read(file))['id'] rescue nil end), message)
10
+ message = "Variable name format error. Name must start with a lowercase letter and be followed by lowercase letters, numbers, or underscores"
11
+ assert_match(/^[a-z]\w*$/, (begin JSON.parse(File.read(file))["id"] rescue nil end), message)
12
12
  end
13
13
  end
14
14
  end
@@ -3,13 +3,11 @@
3
3
  module Spout
4
4
  module Tests
5
5
  module VariableNameMatch
6
-
7
6
  Dir.glob("variables/**/*.json").each do |file|
8
7
  define_method("test_variable_name_match: "+file) do
9
- assert_equal file.gsub(/^.*\//, '').gsub('.json', '').downcase, (begin JSON.parse(File.read(file))["id"] rescue nil end)
8
+ assert_equal file.gsub(/^.*\//, "").gsub(".json", "").downcase, (begin JSON.parse(File.read(file))["id"] rescue nil end)
10
9
  end
11
10
  end
12
-
13
11
  end
14
12
  end
15
13
  end
@@ -4,8 +4,8 @@ module Spout
4
4
  module Tests
5
5
  module VariableNameUniqueness
6
6
  def test_variable_name_uniqueness
7
- files = Dir.glob("variables/**/*.json").collect{|file| file.split('/').last.downcase }
8
- assert_equal [], files.select{ |f| files.count(f) > 1 }.uniq
7
+ files = Dir.glob("variables/**/*.json").collect { |file| file.split("/").last.downcase }
8
+ assert_equal [], files.select { |f| files.count(f) > 1 }.uniq
9
9
  end
10
10
  end
11
11
  end
@@ -10,9 +10,9 @@ module Spout
10
10
  assert VALID_VARIABLE_TYPES.include?(item), message
11
11
  end
12
12
 
13
- Dir.glob('variables/**/*.json').each do |file|
13
+ Dir.glob("variables/**/*.json").each do |file|
14
14
  define_method("test_variable_type: #{file}") do
15
- assert_variable_type begin JSON.parse(File.read(file))['type'] rescue nil end
15
+ assert_variable_type begin JSON.parse(File.read(file))["type"] rescue nil end
16
16
  end
17
17
  end
18
18
  end