elibri_onix 0.2.10 → 0.2.11

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.
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- elibri_onix (0.2.8)
4
+ elibri_onix (0.2.10)
5
5
  activesupport (>= 2.3.5)
6
6
  elibri_onix_dict (>= 0.0.5)
7
7
  i18n
@@ -20,12 +20,15 @@ GEM
20
20
  json (1.7.6-java)
21
21
  metaclass (0.0.1)
22
22
  method_source (0.7.1)
23
+ mini_portile (0.5.1)
23
24
  minitest (3.0.1)
24
25
  mocha (0.11.4)
25
26
  metaclass (~> 0.0.1)
26
- multi_json (1.7.3)
27
- nokogiri (1.5.9)
28
- nokogiri (1.5.9-java)
27
+ multi_json (1.7.7)
28
+ nokogiri (1.6.0)
29
+ mini_portile (~> 0.5.0)
30
+ nokogiri (1.6.0-java)
31
+ mini_portile (~> 0.5.0)
29
32
  pry (0.9.9.6)
30
33
  coderay (~> 1.0.5)
31
34
  method_source (~> 0.7.1)
@@ -0,0 +1,44 @@
1
+
2
+
3
+ module Elibri
4
+ module ONIX
5
+ module Release_3_0
6
+
7
+ class ExcerptInfo
8
+
9
+ #Informacja o fragmencie publikacji (e-book)
10
+
11
+ ATTRIBUTES = [
12
+ :file_type, :file_size, :md5, :updated_at, :link
13
+ ]
14
+
15
+ RELATIONS = [
16
+ :inspect_include_fields
17
+ ]
18
+
19
+ attr_accessor :file_type, :file_size, :md5, :updated_at, :link, :eid, :to_xml
20
+
21
+ def initialize(data)
22
+ @to_xml = data.to_s
23
+ @file_type = data.attributes['file_type'].value
24
+ @file_size = data.attributes['file_size'].value.to_i
25
+ @md5 = data.attributes['md5'].value
26
+ @updated_at = Time.parse(data.attributes['updated_at'].value)
27
+ @link = data.text
28
+ @eid = data.attributes['id'].value.to_i
29
+ end
30
+
31
+ def id
32
+ Kernel.warn "[DEPRECATION] `id` is deprecated. Please use `eid` instead."
33
+ eid
34
+ end
35
+
36
+ def inspect_include_fields
37
+ [:link]
38
+ end
39
+
40
+ end
41
+
42
+ end
43
+ end
44
+ end
@@ -0,0 +1,43 @@
1
+
2
+
3
+ module Elibri
4
+ module ONIX
5
+ module Release_3_0
6
+
7
+ class FileInfo
8
+
9
+ #Informacja o fragmencie publikacji (e-book)
10
+
11
+ ATTRIBUTES = [
12
+ :file_type, :file_size, :md5, :updated_at
13
+ ]
14
+
15
+ RELATIONS = [
16
+ :inspect_include_fields
17
+ ]
18
+
19
+ attr_accessor :file_type, :file_size, :md5, :updated_at, :eid, :to_xml
20
+
21
+ def initialize(data)
22
+ @to_xml = data.to_s
23
+ @file_type = data.attributes['file_type'].value
24
+ @file_size = data.attributes['file_size'].value.to_i
25
+ @md5 = data.attributes['md5'].value
26
+ @updated_at = Time.parse(data.attributes['updated_at'].value)
27
+ @eid = data.attributes['id'].value.to_i
28
+ end
29
+
30
+ def id
31
+ Kernel.warn "[DEPRECATION] `id` is deprecated. Please use `eid` instead."
32
+ eid
33
+ end
34
+
35
+ def inspect_include_fields
36
+ [:file_type]
37
+ end
38
+
39
+ end
40
+
41
+ end
42
+ end
43
+ end
@@ -175,6 +175,11 @@ module Elibri
175
175
  #miasto, w którym została wydana ksiażka
176
176
  attr_reader :city_of_publication
177
177
 
178
+ #informacje o fragmentach utworów (produkty cyfrowe)
179
+ attr_reader :excerpt_infos
180
+
181
+ #informacje o plikach master (produkty cyfrowe)
182
+ attr_reader :file_infos
178
183
 
179
184
  #:nodoc:
180
185
  attr_reader :text_contents
@@ -251,6 +256,8 @@ module Elibri
251
256
  collateral_details_setup(data.at_xpath('xmlns:CollateralDetail')) if data.at_xpath('xmlns:CollateralDetail')
252
257
  publishing_details_setup(data.at_xpath('xmlns:PublishingDetail')) if data.at_xpath('xmlns:PublishingDetail')
253
258
  licence_information_setup(data)
259
+ @excerpt_infos = data.xpath("//elibri:excerpt").map { |node| ExcerptInfo.new(node) }
260
+ @file_infos = data.xpath("//elibri:master").map { |node| FileInfo.new(node) }
254
261
  after_parse
255
262
  end
256
263
 
@@ -4,7 +4,7 @@
4
4
  sender header product_identifier measure title_element title_detail collection contributor subject
5
5
  language extent audience_range text_content supporting_resource imprint publisher publishing_date
6
6
  sales_restriction related_product supplier_identifier stock_quantity_coded price supplier supply_detail
7
- product onix_message
7
+ product onix_message excerpt_info file_info
8
8
  }.each do |file_name|
9
9
  require File.join(File.dirname(__FILE__), "onix_3_0", file_name)
10
10
  end
@@ -2,7 +2,7 @@ module Elibri
2
2
  module ONIX
3
3
  z = $VERBOSE
4
4
  $VERBOSE = nil
5
- VERSION = "0.2.10"
5
+ VERSION = "0.2.11"
6
6
  Version = VERSION
7
7
  $VERBOSE = z
8
8
  end
@@ -0,0 +1,27 @@
1
+ require 'helper'
2
+
3
+ describe Elibri::ONIX::Release_3_0::ONIXMessage do
4
+
5
+ it "should be able to parse file informations" do
6
+ product = load_fixture("onix_ebook_with_files_example.xml")
7
+
8
+ assert_equal 2, product.excerpt_infos.size
9
+ e = product.excerpt_infos[0]
10
+
11
+ assert_equal 2100230, e.file_size
12
+ assert_equal "4b145ff46636b06f49225abdab70927f", e.md5
13
+ assert_equal "epub_excerpt", e.file_type
14
+ assert_equal Time.parse("2012-12-30 15:18 +00:00"), e.updated_at
15
+ assert_equal "https://www.elibri.com.pl/excerpt/767", e.link
16
+ assert_equal 767, e.eid
17
+
18
+ assert_equal 2, product.file_infos.size
19
+ f = product.file_infos[0]
20
+ assert_equal 4197382, f.file_size
21
+ assert_equal "e9353ce40eaa677f8c5d666c2f8bbb3f", f.md5
22
+ assert_equal "epub", f.file_type
23
+ assert_equal Time.parse("2012-12-30 15:18 +00:00"), f.updated_at
24
+ assert_equal 765, f.eid
25
+ end
26
+
27
+ end
@@ -0,0 +1,60 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <ONIXMessage release="3.0" xmlns="http://ns.editeur.org/onix/3.0/reference" xmlns:elibri="http://elibri.com.pl/ns/extensions">
3
+ <elibri:Dialect>3.0.1</elibri:Dialect>
4
+ <Header>
5
+ <Sender>
6
+ <SenderName>Elibri.com.pl</SenderName>
7
+ <ContactName>Tomasz Meka</ContactName>
8
+ <EmailAddress>kontakt@elibri.com.pl</EmailAddress>
9
+ </Sender>
10
+ <SentDateTime>20130710</SentDateTime>
11
+ </Header>
12
+ <Product>
13
+ <RecordReference>fdb8fa072be774d97a97</RecordReference>
14
+ <NotificationType>03</NotificationType>
15
+ <ProductIdentifier>
16
+ <ProductIDType>15</ProductIDType>
17
+ <IDValue>9788324799992</IDValue>
18
+ </ProductIdentifier>
19
+ <DescriptiveDetail>
20
+ <ProductComposition>00</ProductComposition>
21
+ <ProductForm>EA</ProductForm>
22
+ <TitleDetail>
23
+ <TitleType>01</TitleType>
24
+ <TitleElement>
25
+ <TitleElementLevel>01</TitleElementLevel>
26
+ <TitleText>Nielegalni</TitleText>
27
+ </TitleElement>
28
+ </TitleDetail>
29
+ </DescriptiveDetail>
30
+ <PublishingDetail>
31
+ <Publisher>
32
+ <PublishingRole>01</PublishingRole>
33
+ <PublisherIdentifier>
34
+ <PublisherIDType>01</PublisherIDType>
35
+ <IDTypeName>ElibriPublisherCode</IDTypeName>
36
+ <IDValue>11</IDValue>
37
+ </PublisherIdentifier>
38
+ <PublisherName>GREG</PublisherName>
39
+ </Publisher>
40
+ <CityOfPublication>Warszawa</CityOfPublication>
41
+ <PublishingStatus>04</PublishingStatus>
42
+ <SalesRights>
43
+ <SalesRightsType>01</SalesRightsType>
44
+ <Territory>
45
+ <RegionsIncluded>WORLD</RegionsIncluded>
46
+ </Territory>
47
+ </SalesRights>
48
+ </PublishingDetail>
49
+ <elibri:preview_exists>false</elibri:preview_exists>
50
+ <elibri:SaleNotRestricted/>
51
+ <elibri:excerpts>
52
+ <elibri:excerpt md5="4b145ff46636b06f49225abdab70927f" file_size="2100230" file_type="epub_excerpt" updated_at="2012-12-30T15:18:00+00:00" id="767">https://www.elibri.com.pl/excerpt/767</elibri:excerpt>
53
+ <elibri:excerpt md5="6f534ab6ab573845bb7ab221192aa86a" file_size="2101254" file_type="mobi_excerpt" updated_at="2012-12-30T15:16:00+00:00" id="768">https://www.elibri.com.pl/excerpt/768</elibri:excerpt>
54
+ </elibri:excerpts>
55
+ <elibri:masters>
56
+ <elibri:master id="765" md5="e9353ce40eaa677f8c5d666c2f8bbb3f" file_size="4197382" file_type="epub" updated_at="2012-12-30T15:18:00+00:00"/>
57
+ <elibri:master id="766" md5="d2c75a26973a1888f241125717b166cf" file_size="5246982" file_type="mobi" updated_at="2012-12-30T15:16:00+00:00"/>
58
+ </elibri:masters>
59
+ </Product>
60
+ </ONIXMessage>
metadata CHANGED
@@ -2,7 +2,7 @@
2
2
  name: elibri_onix
3
3
  version: !ruby/object:Gem::Version
4
4
  prerelease:
5
- version: 0.2.10
5
+ version: 0.2.11
6
6
  platform: ruby
7
7
  authors:
8
8
  - Marcin Urbanski
@@ -11,7 +11,7 @@ autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
13
 
14
- date: 2013-05-20 00:00:00 Z
14
+ date: 2013-07-17 00:00:00 Z
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency
17
17
  name: activesupport
@@ -155,7 +155,9 @@ files:
155
155
  - lib/elibri_onix/onix_3_0/audience_range.rb
156
156
  - lib/elibri_onix/onix_3_0/collection.rb
157
157
  - lib/elibri_onix/onix_3_0/contributor.rb
158
+ - lib/elibri_onix/onix_3_0/excerpt_info.rb
158
159
  - lib/elibri_onix/onix_3_0/extent.rb
160
+ - lib/elibri_onix/onix_3_0/file_info.rb
159
161
  - lib/elibri_onix/onix_3_0/header.rb
160
162
  - lib/elibri_onix/onix_3_0/imprint.rb
161
163
  - lib/elibri_onix/onix_3_0/language.rb
@@ -183,6 +185,7 @@ files:
183
185
  - test/elibri_audience_range_test.rb
184
186
  - test/elibri_categories_test.rb
185
187
  - test/elibri_contributors_test.rb
188
+ - test/elibri_ebook_files_test.rb
186
189
  - test/elibri_edition_test.rb
187
190
  - test/elibri_extensions_test.rb
188
191
  - test/elibri_extent_test.rb
@@ -212,6 +215,7 @@ files:
212
215
  - test/fixtures/onix_collective_work_example.xml
213
216
  - test/fixtures/onix_contributors_example.xml
214
217
  - test/fixtures/onix_ebook_extent_example.xml
218
+ - test/fixtures/onix_ebook_with_files_example.xml
215
219
  - test/fixtures/onix_edition_example.xml
216
220
  - test/fixtures/onix_elibri_extensions_example.xml
217
221
  - test/fixtures/onix_epub_details_example.xml
@@ -265,6 +269,7 @@ test_files:
265
269
  - test/elibri_audience_range_test.rb
266
270
  - test/elibri_categories_test.rb
267
271
  - test/elibri_contributors_test.rb
272
+ - test/elibri_ebook_files_test.rb
268
273
  - test/elibri_edition_test.rb
269
274
  - test/elibri_extensions_test.rb
270
275
  - test/elibri_extent_test.rb
@@ -294,6 +299,7 @@ test_files:
294
299
  - test/fixtures/onix_collective_work_example.xml
295
300
  - test/fixtures/onix_contributors_example.xml
296
301
  - test/fixtures/onix_ebook_extent_example.xml
302
+ - test/fixtures/onix_ebook_with_files_example.xml
297
303
  - test/fixtures/onix_edition_example.xml
298
304
  - test/fixtures/onix_elibri_extensions_example.xml
299
305
  - test/fixtures/onix_epub_details_example.xml