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 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: