spout 0.0.1.pre → 0.1.0.pre

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: fe71bde7117d9d6c8e762ac1c317a1c081a0c128
4
- data.tar.gz: f73c0a7af28d13123e83e995490a074b930b47df
3
+ metadata.gz: 880fd246ea520f004a09cf9bf2b576d5866c9850
4
+ data.tar.gz: 65d2e48269923e7a46cd7448fa8e265c3ad8ac6c
5
5
  SHA512:
6
- metadata.gz: dd77404cca8453b8da545bd1f098133e03144c4e1d8f64d2f781b5a31efa6b59cd4a71538b1f8fbf8275320a3aad9fa52d685e641de8f4e91d0d139c74cd19f4
7
- data.tar.gz: c0004991d0d1b942ddfba3ab724f98e0221feedde76d45af3b5c3fa9da8fbb887f4f283187f25f3dcfde5690c8b4d1b0ea930cb16e1d89c3bd3c4526dccac382
6
+ metadata.gz: bad0c66a8fc3e992e3affcd6cff667a749f6acd0db8b858cd53d37af5961f1db83003d98b8f4bb205c111074053d19d82689b41a4f3b16ba93d60fd8835983ed
7
+ data.tar.gz: ec2ce69aa8c5157d7d4345ad12d78c91564951afc1c564868c2c8c17dc6993b6a9d82cd52fd6edca05e0329021e3c62a5442f969ef74bdb39073f78f4296a63b
data/CHANGELOG.md CHANGED
@@ -1 +1,15 @@
1
- CHANGELOG.md
1
+ ## 0.1.0
2
+
3
+ ### Enhancements
4
+ - Existing Data Dictionaries can be converted to JSON format from a CSV file
5
+ - Added a rake task to create CSVs of the JSON data dictionary
6
+ - Added tests for JSON validity of variables and domains
7
+ - Added test to check presence/validity of variable type
8
+ - Added test to check if a domain referenced from a variable exists
9
+ - Tests can now be added as a group, or on a test-by-test basis
10
+ - Add `require 'spout/tests'` to your individual tests, or to your `test_helper.rb`
11
+ - Include the all or some of the tests provided by Spout
12
+ - `include Spout::Tests` for all tests
13
+ - `include Spout::Tests::JsonValidation` to verify valid JSON formats of domains and variables
14
+ - `include Spout::Tests::VariableTypeValidation` to verify valid variable type for variables
15
+ - `include Spout::Tests::DomainExistenceValidation` to verify existence of domains referenced by variables
data/README.md CHANGED
@@ -30,12 +30,32 @@ bundle exec rake dd:import CSV=data_dictionary.csv
30
30
 
31
31
  ### Test your repository
32
32
 
33
+
33
34
  ```
34
- spout test # or bundle exec rake
35
+ require 'spout/tests'
36
+
37
+ class DictionaryTest < Test::Unit::TestCase
38
+ include Spout::Tests
39
+ end
35
40
  ```
36
41
 
42
+ ```
43
+ require 'spout/tests'
44
+
45
+ class DictionaryTest < Test::Unit::TestCase
46
+ # Or only include certain tests
47
+ include Spout::Tests::JsonValidation
48
+ include Spout::Tests::VariableTypeValidation
49
+ end
50
+ ```
51
+
52
+ Then run either `bundle exec rake` or `spout test` to run your tests
53
+
54
+
37
55
  ### Create a CSV Data Dictionary from your JSON repository
38
56
 
57
+ Provide an optional version parameter to name the folder the CSVs will be generated in, defaults to 1.0.0 currently.
58
+
39
59
  ```
40
- bundle exec rake dd:create
60
+ bundle exec rake dd:create [VERSION]
41
61
  ```
data/bin/spout CHANGED
@@ -3,6 +3,6 @@
3
3
  require File.expand_path('../../lib/spout', __FILE__)
4
4
 
5
5
  if ARGV.size > 0
6
- Spout::Actions.interpret(ARGV)
6
+ Spout::Actions.new.interpret(ARGV)
7
7
  exit(0)
8
8
  end
data/lib/spout/actions.rb CHANGED
@@ -1,7 +1,7 @@
1
1
  module Spout
2
- module Actions
2
+ class Actions
3
3
 
4
- def self.help
4
+ def help
5
5
  help_message = <<-EOT
6
6
 
7
7
  Usage: spout COMMAND [ARGS]
@@ -16,16 +16,14 @@ EOT
16
16
  puts help_message
17
17
  end
18
18
 
19
- def self.interpret(argv)
19
+ def interpret(argv)
20
20
  case argv.first
21
21
  when '--version', '-v', 'version'
22
22
  puts "Spout #{Spout::VERSION::STRING}"
23
- # exit(0)
24
23
  when 'help', '--help', '-h'
25
24
  help
26
- exit(0)
27
25
  else
28
- require 'spout/test_helpers'
26
+ system "bundle exec rake"
29
27
  end
30
28
  end
31
29
 
@@ -1,10 +1,5 @@
1
1
  require 'rake/testtask'
2
2
 
3
- desc 'do something'
4
- task :something do
5
- puts "something"
6
- end
7
-
8
3
  Rake::TestTask.new do |t|
9
4
  t.libs << "test"
10
5
  t.test_files = FileList['test/**/*_test.rb']
@@ -12,6 +7,8 @@ Rake::TestTask.new do |t|
12
7
  t.verbose = true
13
8
  end
14
9
 
10
+ task :default => :test
11
+
15
12
  namespace :dd do
16
13
  require 'csv'
17
14
  require 'fileutils'
@@ -79,5 +76,3 @@ namespace :dd do
79
76
  end
80
77
  end
81
78
  end
82
-
83
- task :default => :test
@@ -0,0 +1,16 @@
1
+ require 'turn/autorun'
2
+ require 'test/unit'
3
+ require 'rubygems'
4
+ require 'json'
5
+
6
+ require 'spout/tests/domain_existence_validation'
7
+ require 'spout/tests/json_validation'
8
+ require 'spout/tests/variable_type_validation'
9
+
10
+ module Spout
11
+ module Tests
12
+ include Spout::Tests::JsonValidation
13
+ include Spout::Tests::VariableTypeValidation
14
+ include Spout::Tests::DomainExistenceValidation
15
+ end
16
+ end
@@ -0,0 +1,15 @@
1
+ module Spout
2
+ module Tests
3
+ module DomainExistenceValidation
4
+
5
+ Dir.glob("variables/**/*.json").each do |file|
6
+ if (not [nil, ''].include?(JSON.parse(File.read(file))["domain"]) rescue false)
7
+ define_method("test_domain_exists: "+file) do
8
+ assert_equal true, (File.exists?(File.join("domains", JSON.parse(File.read(file))["domain"]+".json")) rescue false)
9
+ end
10
+ end
11
+ end
12
+
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,19 @@
1
+ module Spout
2
+ module Tests
3
+ module JsonValidation
4
+
5
+ Dir.glob("variables/**/*.json").each do |file|
6
+ define_method("test_json: "+file) do
7
+ assert_equal true, (!!JSON.parse(File.read(file)) rescue false)
8
+ end
9
+ end
10
+
11
+ Dir.glob("domains/**/*.json").each do |file|
12
+ define_method("test_json: "+file) do
13
+ assert_equal true, (!!JSON.parse(File.read(file)) rescue false)
14
+ end
15
+ end
16
+
17
+ end
18
+ end
19
+ end
@@ -0,0 +1,14 @@
1
+ module Spout
2
+ module Tests
3
+ module VariableTypeValidation
4
+ VALID_VARIABLE_TYPES = ['identifier', 'choices', 'integer', 'numeric']
5
+
6
+ Dir.glob("variables/**/*.json").each do |file|
7
+ define_method("test_variable_type: "+file) do
8
+ assert_equal true, (VALID_VARIABLE_TYPES.include?(JSON.parse(File.read(file))["type"]) rescue false)
9
+ end
10
+ end
11
+
12
+ end
13
+ end
14
+ end
data/lib/spout/version.rb CHANGED
@@ -1,8 +1,8 @@
1
1
  module Spout
2
2
  module VERSION #:nodoc:
3
3
  MAJOR = 0
4
- MINOR = 0
5
- TINY = 1
4
+ MINOR = 1
5
+ TINY = 0
6
6
  BUILD = "pre" # nil, "pre", "rc", "rc2"
7
7
 
8
8
  STRING = [MAJOR, MINOR, TINY, BUILD].compact.join('.')
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.0.1.pre
4
+ version: 0.1.0.pre
5
5
  platform: ruby
6
6
  authors:
7
7
  - Remo Mueller
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2013-05-14 00:00:00.000000000 Z
11
+ date: 2013-05-15 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rake
@@ -80,7 +80,10 @@ files:
80
80
  - lib/spout/application.rb
81
81
  - lib/spout/tasks/engine.rake
82
82
  - lib/spout/tasks.rb
83
- - lib/spout/test_helpers.rb
83
+ - lib/spout/tests/domain_existence_validation.rb
84
+ - lib/spout/tests/json_validation.rb
85
+ - lib/spout/tests/variable_type_validation.rb
86
+ - lib/spout/tests.rb
84
87
  - lib/spout/version.rb
85
88
  - lib/spout.rb
86
89
  - CHANGELOG.md
@@ -1,39 +0,0 @@
1
- require 'turn/autorun'
2
- require 'test/unit'
3
- require 'rubygems'
4
- require 'json'
5
-
6
- module Spout
7
- module TestHelpers
8
- VALID_VARIABLE_TYPES = ['identifier', 'choices', 'integer', 'numeric']
9
-
10
- class TestCase < Test::Unit::TestCase
11
- Dir.glob("domains/**/*.json").each do |file|
12
- define_method("test_json: "+file) do
13
- assert_equal true, (!!JSON.parse(File.read(file)) rescue false)
14
- end
15
- end
16
-
17
- Dir.glob("variables/**/*.json").each do |file|
18
-
19
- define_method("test_json: "+file) do
20
- assert_equal true, (!!JSON.parse(File.read(file)) rescue false)
21
- end
22
-
23
- define_method("test_variable_type: "+file) do
24
- assert_equal true, (::VALID_VARIABLE_TYPES.include?(JSON.parse(File.read(file))["type"]) rescue false)
25
- end
26
-
27
- if (not [nil, ''].include?(JSON.parse(File.read(file))["domain"]) rescue false)
28
- define_method("test_domain_exists: "+file) do
29
- assert_equal true, (File.exists?(File.join("domains", JSON.parse(File.read(file))["domain"]+".json")) rescue false)
30
- end
31
- end
32
-
33
- end
34
- end
35
-
36
-
37
-
38
- end
39
- end