spout 0.8.0.beta11 → 0.8.0.beta12

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
  SHA1:
3
- metadata.gz: d24bb02bdd280c06d7525c64dcf7ba2e8d41cbdd
4
- data.tar.gz: 4320a06b3bf72ef336bfd211e4b54c2cfbcc379d
3
+ metadata.gz: 1b54a8c6d6961f85f94ebc386b6d19f2c005c065
4
+ data.tar.gz: 28080e314a53b7de358956658e2a0c3cf81a8d30
5
5
  SHA512:
6
- metadata.gz: b6d305cc70fb6bcbd16e97c7450f0bed6f35bf456f93becc7ce23c97b766d5eda07a06c152941d3c127a61cd8042737013b99c01ba13563226a6bd3186453351
7
- data.tar.gz: 2493538c40d38fb5708795f4c4b7dc75b0eb3ecf7ec119e0365244a38dae4f86753e60c5f6422bc1361e1e4b8319e8e61dcfcdbe65710745473043d885a8fb9e
6
+ metadata.gz: 5d6e7f3af3e290a83147ffac8c3cb215193bede45866c028a06ace4b6cfd1fdaa9e321b6f5138a6a0d094cae5c3ad4e13b279846a54cb57b5680390b8e2a47e3
7
+ data.tar.gz: ff772b5b0633a23137dd8a34623fcdaa2c0cafdc1e09ebc47858ac1eb4a2fc835a6c2d5ba37793e1c3f8f62a59c295b04d29ff2e1e21fc8d6e0ef347bf53ca43
data/CHANGELOG.md CHANGED
@@ -14,6 +14,9 @@
14
14
  - Updated to colorize 0.7.2
15
15
  - Use of Ruby 2.1.2 is now recommended
16
16
 
17
+ ### Bug Fix
18
+ - Spout commands are now more consistently case insensitive for file and column names across platforms
19
+
17
20
  ### Testing
18
21
  - Refactored Spout code and updated test coverage for all major spout commands
19
22
 
@@ -29,6 +29,8 @@ module Spout
29
29
  end
30
30
 
31
31
  def run_coverage_report!
32
+ puts "Generating: index.html\n\n"
33
+
32
34
  @matching_results = []
33
35
 
34
36
  @subject_loader.all_methods.each do |method, csv_files|
@@ -58,8 +60,6 @@ module Spout
58
60
  FileUtils.mkpath coverage_folder
59
61
  coverage_file = File.join(coverage_folder, 'index.html')
60
62
 
61
- print "\nGenerating: index.html\n\n"
62
-
63
63
  File.open(coverage_file, 'w+') do |file|
64
64
  erb_location = File.join( File.dirname(__FILE__), '../views/index.html.erb' )
65
65
  file.puts ERB.new(File.read(erb_location)).result(binding)
@@ -1,4 +1,5 @@
1
1
  require 'csv'
2
+ require 'json'
2
3
 
3
4
  module Spout
4
5
  module Commands
@@ -1,4 +1,5 @@
1
1
  require 'csv'
2
+ require 'json'
2
3
 
3
4
  module Spout
4
5
  module Commands
@@ -28,6 +28,8 @@ module Spout
28
28
  end
29
29
 
30
30
  def run_outliers_report!
31
+ puts "Generating: outliers.html\n\n"
32
+
31
33
  @outlier_results = @subject_loader.all_methods.collect do |method, csv_files|
32
34
  Spout::Models::OutlierResult.new(@subjects, method, csv_files)
33
35
  end
@@ -46,8 +48,6 @@ module Spout
46
48
  FileUtils.mkpath coverage_folder
47
49
  html_file = File.join(coverage_folder, 'outliers.html')
48
50
 
49
- print "\nGenerating: outliers.html\n\n"
50
-
51
51
  File.open(html_file, 'w+') do |file|
52
52
  erb_location = File.join( File.dirname(__FILE__), '../views/outliers.html.erb' )
53
53
  file.puts ERB.new(File.read(erb_location)).result(binding)
@@ -28,7 +28,7 @@ module Spout
28
28
  end
29
29
 
30
30
  def self.get_json(file_name, file_type)
31
- file = Dir.glob("#{file_type}s/**/#{file_name}.json").first
31
+ file = Dir.glob("#{file_type.to_s.downcase}s/**/#{file_name.to_s.downcase}.json", File::FNM_CASEFOLD).first
32
32
  json = JSON.parse(File.read(file)) rescue json = nil
33
33
  json
34
34
  end
@@ -42,7 +42,7 @@ module Spout
42
42
  end
43
43
 
44
44
  def self.domain_array(variable_name)
45
- variable_file = Dir.glob("variables/**/#{variable_name}.json").first
45
+ variable_file = Dir.glob("variables/**/#{variable_name.to_s.downcase}.json", File::FNM_CASEFOLD).first
46
46
  json = JSON.parse(File.read(variable_file)) rescue json = nil
47
47
  if json
48
48
  domain_json = get_domain(json)
@@ -3,7 +3,7 @@ module Spout
3
3
  class JsonLoader
4
4
 
5
5
  def self.get_json(file_name, file_type)
6
- file = Dir.glob("#{file_type}s/**/#{file_name}.json").first
6
+ file = Dir.glob("#{file_type.to_s.downcase}s/**/#{file_name.to_s.downcase}.json", File::FNM_CASEFOLD).first
7
7
  json = JSON.parse(File.read(file)) rescue json = nil
8
8
  json
9
9
  end
@@ -35,27 +35,30 @@ module Spout
35
35
  CSV.parse( File.open(csv_file, 'r:iso-8859-1:utf-8'){|f| f.read}, headers: true, header_converters: lambda { |h| h.to_s.downcase } ) do |line|
36
36
  row = line.to_hash
37
37
  count += 1
38
- puts "Line: #{count}" if (count % 1000 == 0)
38
+ print '.' if (count % 10 == 0)
39
39
  @subjects << Spout::Models::Subject.create do |t|
40
40
  t._visit = row[@visit]
41
41
 
42
42
  row.each do |key,value|
43
- unless t.respond_to?(key)
44
- t.class.send(:define_method, "#{key}") { instance_variable_get("@#{key}") }
45
- t.class.send(:define_method, "#{key}=") { |value| instance_variable_set("@#{key}", value) }
43
+ method = key.to_s.downcase
44
+
45
+ unless t.respond_to?(method)
46
+ t.class.send(:define_method, "#{method}") { instance_variable_get("@#{method}") }
47
+ t.class.send(:define_method, "#{method}=") { |value| instance_variable_set("@#{method}", value) }
46
48
  end
47
49
 
48
- @all_methods[key] ||= []
49
- @all_methods[key] = @all_methods[key] | [csv_file]
50
+ @all_methods[method] ||= []
51
+ @all_methods[method] = @all_methods[method] | [csv_file]
50
52
 
51
53
  unless value == nil
52
- t.send("#{key}=", value)
54
+ t.send("#{method}=", value)
53
55
  end
54
56
  end
55
57
  end
56
58
  # puts "Memory Used: " + (`ps -o rss -p #{$$}`.strip.split.last.to_i / 1024).to_s + " MB" if count % 1000 == 0
57
59
  break if @number_of_rows != nil and count >= @number_of_rows
58
60
  end
61
+ puts "\n\n"
59
62
  end
60
63
  end
61
64
 
@@ -16,7 +16,7 @@ module Spout
16
16
  end
17
17
 
18
18
  def load_json(column)
19
- file = Dir.glob("variables/**/#{column}.json").first
19
+ file = Dir.glob("variables/**/#{column.to_s.downcase}.json", File::FNM_CASEFOLD).first
20
20
  @file_name_test = (file != nil)
21
21
  @json = JSON.parse(File.read(file)) rescue @json = {}
22
22
  @json_id_test = (@json['id'].to_s.downcase == column)
@@ -25,7 +25,7 @@ module Spout
25
25
  def load_valid_values
26
26
  valid_values = []
27
27
  if @json['type'] == 'choices'
28
- file = Dir.glob("domains/**/#{@json['domain']}.json").first
28
+ file = Dir.glob("domains/**/#{@json['domain'].to_s.downcase}.json", File::FNM_CASEFOLD).first
29
29
  if json = JSON.parse(File.read(file)) rescue false
30
30
  valid_values = json.collect{|hash| hash['value']}
31
31
  end
@@ -49,7 +49,7 @@ module Spout
49
49
  if @json['type'] != 'choices'
50
50
  true
51
51
  else
52
- domain_file = Dir.glob("domains/**/#{@json['domain']}.json").first
52
+ domain_file = Dir.glob("domains/**/#{@json['domain'].to_s.downcase}.json", File::FNM_CASEFOLD).first
53
53
  if domain_json = JSON.parse(File.read(domain_file)) rescue false
54
54
  return domain_json.kind_of?(Array)
55
55
  end
data/lib/spout/version.rb CHANGED
@@ -3,7 +3,7 @@ module Spout
3
3
  MAJOR = 0
4
4
  MINOR = 8
5
5
  TINY = 0
6
- BUILD = "beta11" # nil, "pre", "rc", "rc2"
6
+ BUILD = "beta12" # nil, "pre", "rc", "rc2"
7
7
 
8
8
  STRING = [MAJOR, MINOR, TINY, BUILD].compact.join('.')
9
9
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: spout
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.8.0.beta11
4
+ version: 0.8.0.beta12
5
5
  platform: ruby
6
6
  authors:
7
7
  - Remo Mueller
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-06-03 00:00:00.000000000 Z
11
+ date: 2014-06-04 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rake