ur-product 0.5 → 0.6

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,14 @@
1
+ module UR
2
+ class Product
3
+ class RelatedProductId
4
+ attr_reader :ur_product_id
5
+ def initialize(ur_product_id)
6
+ @ur_product_id = ur_product_id
7
+ end
8
+
9
+ def to_s
10
+ @ur_product_id.to_s
11
+ end
12
+ end
13
+ end
14
+ end
@@ -1,7 +1,7 @@
1
1
  module UR
2
2
  class Product
3
3
  class Storage
4
- attr_reader :ordernumber, :compatible, :storage_type,
4
+ attr_reader :order_number, :compatible, :storage_type,
5
5
  :storage_format, :location, :storage_kind
6
6
 
7
7
  def initialize(data)
data/lib/ur/product.rb CHANGED
@@ -15,7 +15,8 @@ module UR
15
15
  :main_title, :remainder_of_title, :producing_company,
16
16
  :created_at, :modified_at, :format, :duration, :aspect_ratio,
17
17
  :product_type, :product_sub_type, :typical_age_ranges,
18
- :publication_date, :storages, :distribution_events, :sab, :sao
18
+ :publication_date, :storages, :distribution_events, :difficulty,
19
+ :sli, :sli_sub, :sab, :sao, :related_product_ids
19
20
 
20
21
  def initialize(data)
21
22
  product_data = data.include?('product') ? data['product'] : data
@@ -24,10 +25,14 @@ module UR
24
25
 
25
26
  self.class.define_boolean_methods([
26
27
  'distribution_events', 'storages', 'typical_age_ranges', 'languages',
27
- 'duration', 'difficulty', 'producing_company', 'obsolete_order_id',
28
- 'sab', 'sao'
28
+ 'duration', 'difficulty', 'producing_company', 'production_year',
29
+ 'obsolete_order_id', 'sli', 'sli_sub', 'sab', 'sao'
30
+ ])
31
+ self.class.define_relation_boolean_methods([
32
+ 'siblings', 'packageseries', 'packageusageseries', 'website',
33
+ 'packagedvd', 'packagecd', 'programtv', 'programradio',
34
+ 'trailertrailer'
29
35
  ])
30
- self.class.define_relation_boolean_methods(['siblings'])
31
36
  end
32
37
 
33
38
  def self.find(id)
@@ -45,7 +50,7 @@ module UR
45
50
  names.each do |name|
46
51
  define_method("has_#{name}?") do
47
52
  instance_variable = instance_variable_get("@#{name}")
48
- !(instance_variable.nil? || instance_variable.empty?)
53
+ !(instance_variable.nil? || instance_variable.to_s.empty?)
49
54
  end
50
55
  end
51
56
  end
@@ -76,7 +81,8 @@ module UR
76
81
  'created', 'modified', 'pubdate',
77
82
  'format', 'duration', 'aspect_ratio',
78
83
  'product_type', 'product_sub_type',
79
- 'typicalagerange', 'sab', 'sao'
84
+ 'typicalagerange', 'difficulty',
85
+ 'sli', 'sli_sub', 'sab', 'sao'
80
86
  ]
81
87
 
82
88
  field_names = lambda do |name|
@@ -115,8 +121,9 @@ module UR
115
121
 
116
122
  # Handle the data structures
117
123
  [
118
- ['distributionevent', 'distribution_events', DistributionEvent],
119
- ['storage', 'storages', Storage]
124
+ ['distributionevent', 'distribution_events', UR::Product::DistributionEvent],
125
+ ['storage', 'storages', UR::Product::Storage],
126
+ ['relation_haspart', 'related_product_ids', UR::Product::RelatedProductId],
120
127
  ].each do |name, variable, structure_class|
121
128
  data = product_data[name]
122
129
  instance_variable_set("@#{variable}", (!data.nil? && data.size > 0) ?
@@ -165,7 +172,7 @@ module UR
165
172
  if matched = duration.match(/^(\d\d):(\d\d):(\d\d)/)
166
173
  (full,h,m,s) = matched.to_a
167
174
  if h == '00'
168
- "#{m} minuter"
175
+ "#{m.to_i} minuter"
169
176
  elsif h == '00' && m == '00'
170
177
  'Under en minut'
171
178
  else
@@ -201,5 +208,32 @@ module UR
201
208
  def has_relations?
202
209
  (!@related_products.nil? && @related_products.size > 0)
203
210
  end
211
+
212
+ def get_storage_location(format)
213
+ storage = storages.map { |s| s if s.storage_format == format }.compact
214
+ storage.empty? ? false : storage.first.location
215
+ end
216
+
217
+ def url
218
+ return @url unless @url.nil?
219
+
220
+ if product_type == 'website'
221
+ @url = get_storage_location('url')
222
+ elsif respond_to?(:website)
223
+ if website.first.nil?
224
+ @url = false
225
+ else
226
+ @url = website.first.get_storage_location('url')
227
+ end
228
+ else
229
+ @url = false
230
+ end
231
+
232
+ @url
233
+ end
234
+
235
+ def has_url?
236
+ (url)
237
+ end
204
238
  end
205
239
  end
data/lib/ur-product.rb CHANGED
@@ -1,6 +1,7 @@
1
1
  require File.dirname(__FILE__) + '/ur/metadata_cache'
2
2
  require File.dirname(__FILE__) + '/ur/product'
3
3
  require File.dirname(__FILE__) + '/ur/product/distribution_event.rb'
4
+ require File.dirname(__FILE__) + '/ur/product/related_product_id.rb'
4
5
  require File.dirname(__FILE__) + '/ur/product/storage.rb'
5
6
  require File.dirname(__FILE__) + '/ur/search'
6
7
 
metadata CHANGED
@@ -4,8 +4,8 @@ version: !ruby/object:Gem::Version
4
4
  prerelease: false
5
5
  segments:
6
6
  - 0
7
- - 5
8
- version: "0.5"
7
+ - 6
8
+ version: "0.6"
9
9
  platform: ruby
10
10
  authors:
11
11
  - Peter Hellberg
@@ -13,7 +13,7 @@ autorequire:
13
13
  bindir: bin
14
14
  cert_chain: []
15
15
 
16
- date: 2010-05-10 00:00:00 +02:00
16
+ date: 2010-05-17 00:00:00 +02:00
17
17
  default_executable:
18
18
  dependencies:
19
19
  - !ruby/object:Gem::Dependency
@@ -88,6 +88,7 @@ files:
88
88
  - lib/ur/metadata_cache.rb
89
89
  - lib/ur/product.rb
90
90
  - lib/ur/product/distribution_event.rb
91
+ - lib/ur/product/related_product_id.rb
91
92
  - lib/ur/product/storage.rb
92
93
  - lib/ur/search.rb
93
94
  - features/product.feature