onix 0.7.5 → 0.7.6

Sign up to get free protection for your applications and to get access to all the features.
data/CHANGELOG CHANGED
@@ -1,3 +1,6 @@
1
+ v0.7.6 (21st September 2009)
2
+ - provide access to the PackQuantity element
3
+
1
4
  v0.7.5 (8th September 2009)
2
5
  - Don't raise an exception on malformed dates when reading files
3
6
 
@@ -21,6 +21,7 @@ view the comments to the following classes:
21
21
 
22
22
  * ONIX::Reader - For reading ONIX files
23
23
  * ONIX::Writer - For writing ONIX files
24
+ * ONIX::Normaliser - For normalising ONIX files before reading them. Fixes encoding issues, etc
24
25
 
25
26
  ## Licensing
26
27
 
@@ -16,7 +16,7 @@ module ONIX
16
16
  module Version #:nodoc:
17
17
  Major = 0
18
18
  Minor = 7
19
- Tiny = 5
19
+ Tiny = 6
20
20
 
21
21
  String = [Major, Minor, Tiny].join('.')
22
22
  end
@@ -276,7 +276,7 @@ module ONIX
276
276
 
277
277
  # retrieve the supplier name
278
278
  def supplier_name
279
- composite = product.supplier_details.first
279
+ composite = product.supply_details.first
280
280
  composite.nil? ? nil : composite.supplier_name
281
281
  end
282
282
 
@@ -288,7 +288,7 @@ module ONIX
288
288
 
289
289
  # retrieve the supplier phone number
290
290
  def supplier_phone
291
- composite = product.supplier_details.first
291
+ composite = product.supply_details.first
292
292
  composite.nil? ? nil : composite.telephone_number
293
293
  end
294
294
 
@@ -300,7 +300,7 @@ module ONIX
300
300
 
301
301
  # retrieve the supplier fax number
302
302
  def supplier_fax
303
- composite = product.supplier_details.first
303
+ composite = product.supply_details.first
304
304
  composite.nil? ? nil : composite.fax_number
305
305
  end
306
306
 
@@ -312,7 +312,7 @@ module ONIX
312
312
 
313
313
  # retrieve the supplier email address
314
314
  def supplier_email
315
- composite = product.supplier_details.first
315
+ composite = product.supply_details.first
316
316
  composite.nil? ? nil : composite.email_address
317
317
  end
318
318
 
@@ -324,7 +324,7 @@ module ONIX
324
324
 
325
325
  # retrieve the supply country code
326
326
  def supply_country
327
- composite = product.supplier_details.first
327
+ composite = product.supply_details.first
328
328
  composite.nil? ? nil : composite.supply_to_country
329
329
  end
330
330
 
@@ -336,7 +336,7 @@ module ONIX
336
336
 
337
337
  # retrieve the product availability code
338
338
  def product_availability
339
- composite = product.supplier_details.first
339
+ composite = product.supply_details.first
340
340
  composite.nil? ? nil : composite.product_availability
341
341
  end
342
342
 
@@ -390,6 +390,18 @@ module ONIX
390
390
  composite.on_order = num
391
391
  end
392
392
 
393
+ # retrieve the supplier phone number
394
+ def pack_quantity
395
+ composite = product.supply_details.first
396
+ composite.nil? ? nil : composite.pack_quantity
397
+ end
398
+
399
+ # set a new supplier phone number
400
+ def pack_quantity=(val)
401
+ composite = find_or_create_supply_detail
402
+ composite.pack_quantity = val.to_i
403
+ end
404
+
393
405
  # retrieve the rrp excluding any sales tax
394
406
  def rrp_exc_sales_tax
395
407
  price_get(1).andand.price_amount
@@ -20,6 +20,7 @@ module ONIX
20
20
  xml_accessor :availability_status_code, :from => "AvailabilityStatusCode", :as => Fixnum, :to_xml => ONIX::Formatters.two_digit
21
21
  xml_accessor :product_availability, :from => "ProductAvailability", :as => Fixnum, :to_xml => ONIX::Formatters.two_digit
22
22
  xml_accessor :stock, :from => "Stock", :as => [ONIX::Stock]
23
+ xml_accessor :pack_quantity, :from => "PackQuantity", :as => Fixnum
23
24
  xml_accessor :prices, :from => "Price", :as => [ONIX::Price]
24
25
 
25
26
  def initialize
@@ -0,0 +1,59 @@
1
+ # coding: utf-8
2
+
3
+ $LOAD_PATH.unshift(File.dirname(__FILE__) + '/../lib')
4
+
5
+ require 'onix'
6
+ require 'date'
7
+
8
+ context "ONIX::APAProduct" do
9
+
10
+ before(:each) do
11
+ @data_path = File.join(File.dirname(__FILE__),"..","data")
12
+ file1 = File.join(@data_path, "product.xml")
13
+ @doc = LibXML::XML::Document.file(file1)
14
+ @product_node = @doc.root
15
+ end
16
+
17
+ specify "should provide read access to attibutes" do
18
+ @product = ONIX::Product.from_xml(@product_node.to_s)
19
+ @apa = ONIX::APAProduct.new(@product)
20
+
21
+ @apa.record_reference.should eql("365-9780194351898")
22
+ @apa.notification_type.should eql(3)
23
+ @apa.product_form.should eql("BC")
24
+ @apa.number_of_pages.should eql(100)
25
+ @apa.bic_main_subject.should eql("EB")
26
+ @apa.publishing_status.should eql(4)
27
+ @apa.publication_date.should eql(Date.civil(1998,9,1))
28
+ @apa.pack_quantity.should eql(12)
29
+ end
30
+
31
+ specify "should provide write access to attibutes" do
32
+ apa = ONIX::APAProduct.new
33
+
34
+ apa.notification_type = 3
35
+ apa.to_xml.to_s.include?("<NotificationType>03</NotificationType>").should be_true
36
+
37
+ apa.record_reference = "365-9780194351898"
38
+ apa.to_xml.to_s.include?("<RecordReference>365-9780194351898</RecordReference>").should be_true
39
+
40
+ apa.product_form = "BC"
41
+ apa.to_xml.to_s.include?("<ProductForm>BC</ProductForm>").should be_true
42
+
43
+ apa.number_of_pages = 100
44
+ apa.to_xml.to_s.include?("<NumberOfPages>100</NumberOfPages>").should be_true
45
+
46
+ apa.bic_main_subject = "EB"
47
+ apa.to_xml.to_s.include?("<BICMainSubject>EB</BICMainSubject>").should be_true
48
+
49
+ apa.publishing_status = 4
50
+ apa.to_xml.to_s.include?("<PublishingStatus>04</PublishingStatus>").should be_true
51
+
52
+ apa.publication_date = Date.civil(1998,9,1)
53
+ apa.to_xml.to_s.include?("<PublicationDate>19980901</PublicationDate>").should be_true
54
+
55
+ apa.pack_quantity = 12
56
+ apa.to_xml.to_s.include?("<PackQuantity>12</PackQuantity>").should be_true
57
+ end
58
+
59
+ end
@@ -25,6 +25,7 @@ context "ONIX::SupplyDetail" do
25
25
  sd.product_availability.should eql(21)
26
26
  sd.stock.should be_a_kind_of(Array)
27
27
  sd.stock.size.should eql(1)
28
+ sd.pack_quantity.should eql(16)
28
29
  sd.prices.should be_a_kind_of(Array)
29
30
  sd.prices.size.should eql(1)
30
31
  end
@@ -44,6 +45,8 @@ context "ONIX::SupplyDetail" do
44
45
  sd.product_availability = 3
45
46
  sd.to_xml.to_s.include?("<ProductAvailability>03</ProductAvailability>").should be_true
46
47
 
48
+ sd.pack_quantity = 12
49
+ sd.to_xml.to_s.include?("<PackQuantity>12</PackQuantity>").should be_true
47
50
  end
48
51
 
49
52
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: onix
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.7.5
4
+ version: 0.7.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - James Healy
@@ -9,7 +9,7 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2009-09-08 00:00:00 +10:00
12
+ date: 2009-09-22 00:00:00 +10:00
13
13
  default_executable:
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
@@ -133,6 +133,7 @@ files:
133
133
  - spec/supply_detail_spec.rb
134
134
  - spec/title_spec.rb
135
135
  - spec/normaliser_spec.rb
136
+ - spec/apa_product_spec.rb
136
137
  has_rdoc: true
137
138
  homepage: http://github.com/yob/onix/tree/master
138
139
  licenses: []
@@ -185,3 +186,4 @@ test_files:
185
186
  - spec/supply_detail_spec.rb
186
187
  - spec/title_spec.rb
187
188
  - spec/normaliser_spec.rb
189
+ - spec/apa_product_spec.rb