ddex 0.0.1 → 0.0.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.rdoc +33 -2
- data/lib/ddex/ern.rb +3 -1
- data/lib/ddex/version.rb +1 -1
- data/lib/rack/ddex.rb +23 -0
- data/spec/ern/341_spec.rb~ +0 -0
- data/spec/ern/34_spec.rb~ +0 -0
- data/spec/ern/36_spec.rb~ +0 -0
- data/spec/ern/v36_spec.rb~ +0 -0
- data/spec/ern/versions_spec.rb~ +0 -0
- data/spec/ern_spec.rb +1 -1
- data/spec/ern_spec.rb~ +0 -0
- data/spec/fixtures/ern36.xml~ +0 -0
- metadata +14 -13
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f1e503ee8c9b64cdc868dfe83bba27d50c612e4d
|
4
|
+
data.tar.gz: 6c3bb7e287fdaf144f9d96f474e4698bee6af06d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 58a9d8c2f79818788ede896a42b56f1e82ec2b8f5d4e865fbc1d1ab67f4428a1d34d10de48d390de5d10157f410350ea4d25bb9597f864bcdd6bf4fe229fd550
|
7
|
+
data.tar.gz: a3c81b9921a50871a6a281c676e5cb0b92467b4d954c646e84a86201e3278ce042e246c708a21f6f9fbde404ca4e073dcd520b14eea82b426b4c90c60d316497
|
data/README.rdoc
CHANGED
@@ -121,7 +121,7 @@ The specification version is determined by the <code>MessageSchemaVersionId</cod
|
|
121
121
|
|
122
122
|
By default the <code>MessageSchemaVersionId</code> is assumed to be in <code>SPEC/VERSION</code> format (any leading, trailing, or duplicate slashes will be stripped),
|
123
123
|
as this seems to be the convention used by most instance docs -though the DDEX specifications
|
124
|
-
{are not strict about this}[http://www.ddex.net/
|
124
|
+
{are not strict about this}[http://www.ddex.net/format-messageschemaversionid]. If you're dealing with <code>MessageSchemaVersionId</code>s
|
125
125
|
that vary from this format, and explicitly setting the version is not practical, you can set the global default(s):
|
126
126
|
|
127
127
|
DDEX::ERN.config["V35"][:message_schema_version_id] = "ern tray_fever!"
|
@@ -137,6 +137,37 @@ be modified to accommodate something more than <code>SPEC/VERSION</code> out of
|
|
137
137
|
|
138
138
|
Not yet!
|
139
139
|
|
140
|
+
=== DDEX Parsing Service (Rack Endpoint)
|
141
|
+
|
142
|
+
If you want to parse DDEX metadata but don't want to use Ruby to process the results you can setup a parsing service
|
143
|
+
using <code>Rack::DDEX</code>. <code>Rack::DDEX</code> is a {Rack endpoint}[http://rack.github.io] that parses a DDEX file
|
144
|
+
and returns JSON.
|
145
|
+
|
146
|
+
For example, from the repository's root:
|
147
|
+
|
148
|
+
~/code/ruby/ddex >cat etc/config.ru
|
149
|
+
require "rack/ddex"
|
150
|
+
|
151
|
+
run Rack::DDEX.new
|
152
|
+
|
153
|
+
~/code/ruby/ddex >rackup -I lib etc/config.ru # Note that -D has problems with autoloading
|
154
|
+
[2014-12-15 20:35:40] INFO WEBrick 1.3.1
|
155
|
+
[2014-12-15 20:35:40] INFO ruby 2.1.2 (2014-05-08) [x86_64-darwin13.0]
|
156
|
+
[2014-12-15 20:35:40] INFO WEBrick::HTTPServer#start: pid=76385 port=9292
|
157
|
+
|
158
|
+
Then, from another terminal
|
159
|
+
|
160
|
+
~/code/ruby/ddex >curl -d @spec/fixtures/ern/36/instance1.xml http://localhost:9292
|
161
|
+
{"message_header":{"message_thread_id":"Bu._UcZLsNbTVitjYnci","message_id":"DbVn-iuUB-SiHl05B2IqW3_","message_file_name":"wz9RHX_Eu1d"
|
162
|
+
...
|
163
|
+
|
164
|
+
~/code/ruby/ddex >curl http://localhost:9292 # HTTP 400
|
165
|
+
{"error":"XML parsing error: Start tag expected, '<' not found"}
|
166
|
+
|
167
|
+
=== Contributing
|
168
|
+
|
169
|
+
See CONTRIBUTING.md
|
170
|
+
|
140
171
|
=== More Info
|
141
172
|
|
142
173
|
* {Source code}[https://github.com/sshaw/ddex]
|
@@ -156,7 +187,7 @@ Not yet!
|
|
156
187
|
xml_accessor :x, :as => AnotherClass
|
157
188
|
|
158
189
|
# Then
|
159
|
-
x = SomeClass.new(:x => "123")
|
190
|
+
x = SomeClass.new(:x => "123")
|
160
191
|
x.to_xml # undefined method `to_xml' for "123":String
|
161
192
|
|
162
193
|
Raised here: https://github.com/Empact/roxml/blob/v2.5.1/lib/roxml/xml/references.rb#L262
|
data/lib/ddex/ern.rb
CHANGED
@@ -146,7 +146,9 @@ module DDEX
|
|
146
146
|
|
147
147
|
# Some normalization
|
148
148
|
v = version.strip.gsub(%r{//+}, "/").gsub(%r{\A/|/\Z}, "")
|
149
|
-
klass, _ = config.find
|
149
|
+
klass, _ = config.find do |name, cfg|
|
150
|
+
cfg[:message_schema_version_id] == v || cfg[:version] == v
|
151
|
+
end
|
150
152
|
raise_unknown_version(version) unless klass
|
151
153
|
|
152
154
|
# >= 2.0 allows for one call
|
data/lib/ddex/version.rb
CHANGED
data/lib/rack/ddex.rb
ADDED
@@ -0,0 +1,23 @@
|
|
1
|
+
require "rack"
|
2
|
+
require "json"
|
3
|
+
require "ddex"
|
4
|
+
|
5
|
+
module Rack
|
6
|
+
class DDEX
|
7
|
+
HEADERS = {"Content-Type" => "application/json"}.freeze
|
8
|
+
|
9
|
+
def call(env)
|
10
|
+
begin
|
11
|
+
obj = ::DDEX.read(env["rack.input"])
|
12
|
+
json = JSON.dump(obj.to_hash)
|
13
|
+
|
14
|
+
[200, HEADERS.merge("Content-Length" => Rack::Utils.bytesize(json)), [json]]
|
15
|
+
rescue => e
|
16
|
+
code = e.is_a?(::DDEX::DDEXError) ? 400 : 500
|
17
|
+
json = JSON.dump(:error => e.message)
|
18
|
+
|
19
|
+
[code, HEADERS, [json]]
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
data/spec/ern/341_spec.rb~
CHANGED
File without changes
|
data/spec/ern/34_spec.rb~
CHANGED
File without changes
|
data/spec/ern/36_spec.rb~
CHANGED
File without changes
|
data/spec/ern/v36_spec.rb~
CHANGED
File without changes
|
data/spec/ern/versions_spec.rb~
CHANGED
File without changes
|
data/spec/ern_spec.rb
CHANGED
@@ -83,7 +83,7 @@ describe DDEX::ERN do
|
|
83
83
|
|
84
84
|
describe ".read" do
|
85
85
|
describe "MessageSchemaVersionId detection" do
|
86
|
-
%w[/ern/35 ern/35/ //ern/35//].each do |v|
|
86
|
+
%w[/ern/35 ern/35/ //ern/35// 3.5].each do |v|
|
87
87
|
it "parses #{v} as ERN 3.5" do
|
88
88
|
doc = load_fixture("ern/35/instance1")
|
89
89
|
doc.root["MessageSchemaVersionId"] = v
|
data/spec/ern_spec.rb~
CHANGED
File without changes
|
data/spec/fixtures/ern36.xml~
CHANGED
File without changes
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ddex
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Skye Shaw
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2015-05-14 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: nokogiri
|
@@ -87,7 +87,11 @@ extensions: []
|
|
87
87
|
extra_rdoc_files:
|
88
88
|
- README.rdoc
|
89
89
|
files:
|
90
|
+
- README.rdoc
|
91
|
+
- lib/ddex.rb
|
90
92
|
- lib/ddex/element.rb
|
93
|
+
- lib/ddex/ern.rb
|
94
|
+
- lib/ddex/ern/v33.rb
|
91
95
|
- lib/ddex/ern/v33/catalog_item.rb
|
92
96
|
- lib/ddex/ern/v33/catalog_list_message.rb
|
93
97
|
- lib/ddex/ern/v33/catalog_release_reference_list.rb
|
@@ -145,7 +149,7 @@ files:
|
|
145
149
|
- lib/ddex/ern/v33/user_defined_resource_details_by_territory.rb
|
146
150
|
- lib/ddex/ern/v33/video.rb
|
147
151
|
- lib/ddex/ern/v33/video_details_by_territory.rb
|
148
|
-
- lib/ddex/ern/
|
152
|
+
- lib/ddex/ern/v34.rb
|
149
153
|
- lib/ddex/ern/v34/catalog_item.rb
|
150
154
|
- lib/ddex/ern/v34/catalog_list_message.rb
|
151
155
|
- lib/ddex/ern/v34/catalog_release_reference_list.rb
|
@@ -204,7 +208,7 @@ files:
|
|
204
208
|
- lib/ddex/ern/v34/video.rb
|
205
209
|
- lib/ddex/ern/v34/video_details_by_territory.rb
|
206
210
|
- lib/ddex/ern/v34/web_policy.rb
|
207
|
-
- lib/ddex/ern/
|
211
|
+
- lib/ddex/ern/v341.rb
|
208
212
|
- lib/ddex/ern/v341/catalog_item.rb
|
209
213
|
- lib/ddex/ern/v341/catalog_list_message.rb
|
210
214
|
- lib/ddex/ern/v341/catalog_release_reference_list.rb
|
@@ -263,7 +267,7 @@ files:
|
|
263
267
|
- lib/ddex/ern/v341/video.rb
|
264
268
|
- lib/ddex/ern/v341/video_details_by_territory.rb
|
265
269
|
- lib/ddex/ern/v341/web_policy.rb
|
266
|
-
- lib/ddex/ern/
|
270
|
+
- lib/ddex/ern/v35.rb
|
267
271
|
- lib/ddex/ern/v35/catalog_item.rb
|
268
272
|
- lib/ddex/ern/v35/catalog_list_message.rb
|
269
273
|
- lib/ddex/ern/v35/catalog_release_reference_list.rb
|
@@ -324,7 +328,7 @@ files:
|
|
324
328
|
- lib/ddex/ern/v35/video.rb
|
325
329
|
- lib/ddex/ern/v35/video_details_by_territory.rb
|
326
330
|
- lib/ddex/ern/v35/web_policy.rb
|
327
|
-
- lib/ddex/ern/
|
331
|
+
- lib/ddex/ern/v351.rb
|
328
332
|
- lib/ddex/ern/v351/catalog_item.rb
|
329
333
|
- lib/ddex/ern/v351/catalog_list_message.rb
|
330
334
|
- lib/ddex/ern/v351/catalog_release_reference_list.rb
|
@@ -385,7 +389,7 @@ files:
|
|
385
389
|
- lib/ddex/ern/v351/video.rb
|
386
390
|
- lib/ddex/ern/v351/video_details_by_territory.rb
|
387
391
|
- lib/ddex/ern/v351/web_policy.rb
|
388
|
-
- lib/ddex/ern/
|
392
|
+
- lib/ddex/ern/v36.rb
|
389
393
|
- lib/ddex/ern/v36/administrating_record_company.rb
|
390
394
|
- lib/ddex/ern/v36/artist.rb
|
391
395
|
- lib/ddex/ern/v36/artist_delegated_usage_rights.rb
|
@@ -593,7 +597,7 @@ files:
|
|
593
597
|
- lib/ddex/ern/v36/web_page.rb
|
594
598
|
- lib/ddex/ern/v36/web_policy.rb
|
595
599
|
- lib/ddex/ern/v36/work_list.rb
|
596
|
-
- lib/ddex/ern/
|
600
|
+
- lib/ddex/ern/v37.rb
|
597
601
|
- lib/ddex/ern/v37/administrating_record_company.rb
|
598
602
|
- lib/ddex/ern/v37/all_territory_code.rb
|
599
603
|
- lib/ddex/ern/v37/artist.rb
|
@@ -803,8 +807,6 @@ files:
|
|
803
807
|
- lib/ddex/ern/v37/web_page.rb
|
804
808
|
- lib/ddex/ern/v37/web_policy.rb
|
805
809
|
- lib/ddex/ern/v37/work_list.rb
|
806
|
-
- lib/ddex/ern/v37.rb
|
807
|
-
- lib/ddex/ern.rb
|
808
810
|
- lib/ddex/v20110630/ddexc/additional_information.rb
|
809
811
|
- lib/ddex/v20110630/ddexc/administrating_record_company.rb
|
810
812
|
- lib/ddex/v20110630/ddexc/amount_by_use_and_distribution_channel_type.rb
|
@@ -1849,7 +1851,7 @@ files:
|
|
1849
1851
|
- lib/ddex/v20121219/ddexc/work_list.rb
|
1850
1852
|
- lib/ddex/v20121219/ddexc/ws_message_status.rb
|
1851
1853
|
- lib/ddex/version.rb
|
1852
|
-
- lib/ddex.rb
|
1854
|
+
- lib/rack/ddex.rb
|
1853
1855
|
- spec/element_spec.rb
|
1854
1856
|
- spec/ern/341_spec.rb~
|
1855
1857
|
- spec/ern/34_spec.rb~
|
@@ -1871,7 +1873,6 @@ files:
|
|
1871
1873
|
- spec/fixtures/ern36.xml~
|
1872
1874
|
- spec/spec_helper.rb
|
1873
1875
|
- spec/support/ddex_element.rb
|
1874
|
-
- README.rdoc
|
1875
1876
|
homepage: http://github.com/sshaw/ddex
|
1876
1877
|
licenses:
|
1877
1878
|
- MIT
|
@@ -1892,7 +1893,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
1892
1893
|
version: '0'
|
1893
1894
|
requirements: []
|
1894
1895
|
rubyforge_project:
|
1895
|
-
rubygems_version: 2.
|
1896
|
+
rubygems_version: 2.4.3
|
1896
1897
|
signing_key:
|
1897
1898
|
specification_version: 4
|
1898
1899
|
summary: DDEX metadata serialization
|