datapackage 0.0.3 → 0.0.4

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 577f0cccc791f7f81d19b087038ec6061dcee12a
4
+ data.tar.gz: 9cac27e6e3eaa0be69575afd50a7193e5a7fb23c
5
+ SHA512:
6
+ metadata.gz: ff2eaf11c9605f6fc20019b285747f952de6563da74e6fc2f5d0eb6d3f650fc32d1d40f44e44776a3f17f56152fa2479d6ff5a37d3f253eae4420144054db829
7
+ data.tar.gz: e83f013ca8d5be9c002b43abda33c89d906f9162722a4044267c652e2e96d3d5612d39c5727cc094941fc97e3f62e1f53862bd8d0499975a3d837dac45ab6f90
data/bin/datapackage CHANGED
@@ -1,6 +1,6 @@
1
1
  #!/usr/bin/env ruby
2
2
  $:.unshift File.join( File.dirname(__FILE__), "..", "lib")
3
-
3
+ require 'colorize'
4
4
  require 'datapackage'
5
5
 
6
6
 
@@ -14,22 +14,26 @@ package = DataPackage::Package.new(ARGV[0])
14
14
 
15
15
  messages = package.validate(:simpledataformat)
16
16
 
17
+ print "Package #{package.name.colorize(:light_blue)} is "
18
+
17
19
  if messages[:errors].length == 0
18
- puts "Package #{package.name} is VALID"
20
+ puts "VALID".green
19
21
  else
20
- puts "Package #{package.name} is INVALID"
21
- puts "Errors: "
22
+ puts "INVALID".red
23
+ puts
24
+ puts "Errors: ".red
22
25
  messages[:errors].each_with_index do |msg, idx|
23
- puts "#{idx+1}. #{msg[:type]} error. #{msg[:fragment]}"
24
- puts " #{msg[:message]}"
26
+ puts "#{idx+1}. #{msg[:type].capitalize.to_s.red} error at #{msg[:fragment]}"
27
+ puts " #{msg[:message]}"
25
28
  end
26
29
  end
27
30
 
31
+ puts
28
32
  if !messages[:warnings].empty?
29
- puts "Warnings: "
33
+ puts "Warnings: ".yellow
30
34
  messages[:warnings].each_with_index do |msg, idx|
31
- puts "#{idx+1}. #{msg[:type]} warning. #{msg[:fragment]}"
32
- puts " #{msg[:message]}"
35
+ puts "#{idx+1}. #{msg[:type].capitalize.to_s.yellow} warning at #{msg[:fragment]}"
36
+ puts " #{msg[:message]}"
33
37
  end
34
38
  end
35
39
 
@@ -131,7 +131,11 @@ module DataPackage
131
131
  def validate_resource(package, resource, path)
132
132
  super(package, resource, path)
133
133
 
134
- if !csv?(resource)
134
+ if !resource["mediatype"] && !resource["format"]
135
+ add_warning(:metadata, "#{resource["name"]} does not specify either a mediatype or format", path )
136
+ end
137
+
138
+ if !csv?(resource, package)
135
139
  add_error(:integrity, "#{resource["name"]} is not a CSV file", path )
136
140
  else
137
141
  schema = resource["schema"]
@@ -139,7 +143,7 @@ module DataPackage
139
143
  add_error(:metadata, "#{resource["name"]} does not have a schema", path )
140
144
  else
141
145
  messages = JSON::Validator.fully_validate(@jsontable_schema, schema, :errors_as_objects => true)
142
- @messages[:errors] += adjust_messages(messages, :metadata, path + "/schema/")
146
+ @messages[:errors] += adjust_messages(messages, :metadata, path + "/schema/")
143
147
  end
144
148
 
145
149
  if resource["dialect"]
@@ -150,7 +154,10 @@ module DataPackage
150
154
  if package.resource_exists?( package.resolve_resource( resource ) )
151
155
  if resource["schema"] && resource["schema"]["fields"]
152
156
  fields = resource["schema"]["fields"]
153
- declared_fields = fields.map{ |f| f["name"] }
157
+ declared_fields = fields.map{ |f| f["name"] }.compact
158
+ if declared_fields == []
159
+ add_error(:metadata, "Schema does not declare any named fields", path + "/schema/fields")
160
+ end
154
161
  headers = headers(package, resource, path)
155
162
 
156
163
  #set algebra to finding fields missing from schema and/or CSV file
@@ -172,9 +179,10 @@ module DataPackage
172
179
 
173
180
  end
174
181
 
175
- def csv?(resource)
182
+ def csv?(resource, package)
176
183
  resource["mediatype"] == "text/csv" ||
177
- resource["format"] == "csv"
184
+ resource["format"] == "csv" ||
185
+ package.resolve_resource(resource).split(".").last == "csv"
178
186
  end
179
187
 
180
188
  def headers(package, resource, path)
@@ -1,3 +1,3 @@
1
1
  module DataPackage
2
- VERSION = "0.0.3"
2
+ VERSION = "0.0.4"
3
3
  end
metadata CHANGED
@@ -1,20 +1,18 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: datapackage
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.3
5
- prerelease:
4
+ version: 0.0.4
6
5
  platform: ruby
7
6
  authors:
8
7
  - Leigh Dodds
9
8
  autorequire:
10
9
  bindir: bin
11
10
  cert_chain: []
12
- date: 2013-12-05 00:00:00.000000000 Z
11
+ date: 2014-01-06 00:00:00.000000000 Z
13
12
  dependencies:
14
13
  - !ruby/object:Gem::Dependency
15
14
  name: json
16
15
  requirement: !ruby/object:Gem::Requirement
17
- none: false
18
16
  requirements:
19
17
  - - ! '>='
20
18
  - !ruby/object:Gem::Version
@@ -22,7 +20,6 @@ dependencies:
22
20
  type: :runtime
23
21
  prerelease: false
24
22
  version_requirements: !ruby/object:Gem::Requirement
25
- none: false
26
23
  requirements:
27
24
  - - ! '>='
28
25
  - !ruby/object:Gem::Version
@@ -30,7 +27,6 @@ dependencies:
30
27
  - !ruby/object:Gem::Dependency
31
28
  name: json-schema
32
29
  requirement: !ruby/object:Gem::Requirement
33
- none: false
34
30
  requirements:
35
31
  - - ! '>='
36
32
  - !ruby/object:Gem::Version
@@ -38,7 +34,6 @@ dependencies:
38
34
  type: :runtime
39
35
  prerelease: false
40
36
  version_requirements: !ruby/object:Gem::Requirement
41
- none: false
42
37
  requirements:
43
38
  - - ! '>='
44
39
  - !ruby/object:Gem::Version
@@ -46,7 +41,6 @@ dependencies:
46
41
  - !ruby/object:Gem::Dependency
47
42
  name: rest-client
48
43
  requirement: !ruby/object:Gem::Requirement
49
- none: false
50
44
  requirements:
51
45
  - - ! '>='
52
46
  - !ruby/object:Gem::Version
@@ -54,7 +48,20 @@ dependencies:
54
48
  type: :runtime
55
49
  prerelease: false
56
50
  version_requirements: !ruby/object:Gem::Requirement
57
- none: false
51
+ requirements:
52
+ - - ! '>='
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: colorize
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - ! '>='
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ type: :runtime
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
58
65
  requirements:
59
66
  - - ! '>='
60
67
  - !ruby/object:Gem::Version
@@ -62,7 +69,6 @@ dependencies:
62
69
  - !ruby/object:Gem::Dependency
63
70
  name: rspec
64
71
  requirement: !ruby/object:Gem::Requirement
65
- none: false
66
72
  requirements:
67
73
  - - ! '>='
68
74
  - !ruby/object:Gem::Version
@@ -70,7 +76,6 @@ dependencies:
70
76
  type: :development
71
77
  prerelease: false
72
78
  version_requirements: !ruby/object:Gem::Requirement
73
- none: false
74
79
  requirements:
75
80
  - - ! '>='
76
81
  - !ruby/object:Gem::Version
@@ -78,7 +83,6 @@ dependencies:
78
83
  - !ruby/object:Gem::Dependency
79
84
  name: simplecov-rcov
80
85
  requirement: !ruby/object:Gem::Requirement
81
- none: false
82
86
  requirements:
83
87
  - - ! '>='
84
88
  - !ruby/object:Gem::Version
@@ -86,7 +90,6 @@ dependencies:
86
90
  type: :development
87
91
  prerelease: false
88
92
  version_requirements: !ruby/object:Gem::Requirement
89
- none: false
90
93
  requirements:
91
94
  - - ! '>='
92
95
  - !ruby/object:Gem::Version
@@ -94,7 +97,6 @@ dependencies:
94
97
  - !ruby/object:Gem::Dependency
95
98
  name: fakeweb
96
99
  requirement: !ruby/object:Gem::Requirement
97
- none: false
98
100
  requirements:
99
101
  - - ~>
100
102
  - !ruby/object:Gem::Version
@@ -102,7 +104,6 @@ dependencies:
102
104
  type: :development
103
105
  prerelease: false
104
106
  version_requirements: !ruby/object:Gem::Requirement
105
- none: false
106
107
  requirements:
107
108
  - - ~>
108
109
  - !ruby/object:Gem::Version
@@ -115,40 +116,38 @@ executables:
115
116
  extensions: []
116
117
  extra_rdoc_files: []
117
118
  files:
119
+ - LICENSE.md
120
+ - README.md
118
121
  - bin/datapackage
119
- - etc/jsontable-schema.json
120
- - etc/datapackage-schema.json
121
122
  - etc/README.md
122
123
  - etc/csvddf-dialect-schema.json
124
+ - etc/datapackage-schema.json
125
+ - etc/jsontable-schema.json
123
126
  - lib/datapackage.rb
124
- - lib/datapackage/validator.rb
125
127
  - lib/datapackage/package.rb
128
+ - lib/datapackage/validator.rb
126
129
  - lib/datapackage/version.rb
127
- - LICENSE.md
128
- - README.md
129
130
  homepage: http://github.com/theodi/datapackage.rb
130
131
  licenses: []
132
+ metadata: {}
131
133
  post_install_message:
132
134
  rdoc_options: []
133
135
  require_paths:
134
136
  - lib
135
137
  required_ruby_version: !ruby/object:Gem::Requirement
136
- none: false
137
138
  requirements:
138
139
  - - ! '>='
139
140
  - !ruby/object:Gem::Version
140
141
  version: '0'
141
142
  required_rubygems_version: !ruby/object:Gem::Requirement
142
- none: false
143
143
  requirements:
144
144
  - - ! '>='
145
145
  - !ruby/object:Gem::Version
146
146
  version: '0'
147
147
  requirements: []
148
148
  rubyforge_project:
149
- rubygems_version: 1.8.23
149
+ rubygems_version: 2.2.0
150
150
  signing_key:
151
- specification_version: 3
151
+ specification_version: 4
152
152
  summary: Library for working with data packages
153
153
  test_files: []
154
- has_rdoc: