datapackage 0.0.3 → 0.0.4
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 +7 -0
- data/bin/datapackage +13 -9
- data/lib/datapackage/validator.rb +13 -5
- data/lib/datapackage/version.rb +1 -1
- metadata +24 -25
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 "
|
20
|
+
puts "VALID".green
|
19
21
|
else
|
20
|
-
puts "
|
21
|
-
puts
|
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
|
24
|
-
puts "
|
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
|
32
|
-
puts "
|
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 !
|
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)
|
data/lib/datapackage/version.rb
CHANGED
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.
|
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:
|
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
|
-
|
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:
|
149
|
+
rubygems_version: 2.2.0
|
150
150
|
signing_key:
|
151
|
-
specification_version:
|
151
|
+
specification_version: 4
|
152
152
|
summary: Library for working with data packages
|
153
153
|
test_files: []
|
154
|
-
has_rdoc:
|