acts_as_elibri_product 0.2.4 → 0.2.5

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,3 +1,4 @@
1
+ # -*- encoding : utf-8 -*-
1
2
  require 'elibri_xml_versions'
2
3
  require 'acts_as_elibri_product/object'
3
4
  require 'ostruct'
@@ -34,8 +35,8 @@ module ActsAsElibriProduct
34
35
  return true
35
36
  end
36
37
 
37
- def create_from_elibri(xml_string)
38
- product = Elibri::ONIX::Release_3_0::ONIXMessage.from_xml(xml_string).products.first
38
+ def create_from_elibri(xml_string, tracing_object = nil)
39
+ product = Elibri::ONIX::Release_3_0::ONIXMessage.new(xml_string).products.first
39
40
  db_product = self.new
40
41
  @@traverse_vector.each_pair do |k, v|
41
42
  if v.is_a?(Symbol)
@@ -55,21 +56,20 @@ module ActsAsElibriProduct
55
56
  db_product.save
56
57
  end
57
58
 
58
- def create_or_update_from_elibri(xml_string)
59
- recreated_product = Elibri::ONIX::Release_3_0::ONIXMessage.from_xml(xml_string).products.first
60
- if Product.find(:first, :conditions => {:record_reference => recreated_product.record_reference})
61
- #update
62
- Product.find(:first, :conditions => {:record_reference => recreated_product.record_reference}).update_product_from_elibri(xml_string)
59
+ def create_or_update_from_elibri(xml_string, tracing_object=nil)
60
+ recreated_product = Elibri::ONIX::Release_3_0::ONIXMessage.new(xml_string).products.first
61
+ if Product.find(:first, :conditions => {:record_reference => recreated_product.record_reference}) #update
62
+ Product.find(:first, :conditions => {:record_reference => recreated_product.record_reference}).update_product_from_elibri(xml_string, tracing_object)
63
63
  else
64
- Product.create_from_elibri(xml_string)
64
+ Product.create_from_elibri(xml_string, tracing_object)
65
65
  end
66
66
  end
67
67
 
68
- def batch_create_or_update_from_elibri(xml_string)
68
+ def batch_create_or_update_from_elibri(xml_string, tracing_object = nil)
69
69
  if xml_string.is_a?(Elibri::ONIX::Release_3_0::ONIXMessage)
70
70
  recreated_products = xml_string
71
71
  else
72
- recreated_products = Elibri::ONIX::Release_3_0::ONIXMessage.from_xml(xml_string)
72
+ recreated_products = Elibri::ONIX::Release_3_0::ONIXMessage.new(xml_string)
73
73
  end
74
74
  recreated_products.products.each do |product|
75
75
  xml = product.to_xml.to_s
@@ -79,18 +79,20 @@ module ActsAsElibriProduct
79
79
  <elibri:Dialect>#{dialect}</elibri:Dialect>"
80
80
 
81
81
  xml = header + xml + "</ONIXMessage>"
82
- create_or_update_from_elibri(xml)
82
+ create_or_update_from_elibri(xml, tracing_object)
83
83
  end
84
84
  end
85
85
 
86
86
  end
87
87
 
88
- def update_product_from_elibri(new_xml)
88
+ def update_product_from_elibri(new_xml, tracing_object = nil)
89
89
  if (read_attribute :old_xml).blank?
90
90
  raise "Empty old_xml column on product"
91
91
  end
92
- product = Elibri::ONIX::Release_3_0::ONIXMessage.from_xml(read_attribute :old_xml).products.first
93
- product_updated = Elibri::ONIX::Release_3_0::ONIXMessage.from_xml(new_xml).products.first
92
+ product = Elibri::ONIX::Release_3_0::ONIXMessage.new(read_attribute :old_xml).products.first
93
+ product_updated = Elibri::ONIX::Release_3_0::ONIXMessage.new(new_xml).products.first
94
+ tracing_object.register_xml_comparission(product, product_updated) if tracing_object
95
+
94
96
  elibri_xml_versions = Elibri::XmlVersions.new(product, product_updated)
95
97
  details = elibri_xml_versions.diff
96
98
  details[:changes].each do |change|
@@ -1,3 +1,4 @@
1
+ # -*- encoding : utf-8 -*-
1
2
  class Object
2
3
  alias :id :object_id
3
- end
4
+ end
@@ -1,3 +1,4 @@
1
+ # -*- encoding : utf-8 -*-
1
2
  module ActsAsElibriProduct
2
- VERSION = "0.2.4"
3
+ VERSION = "0.2.5"
3
4
  end
@@ -1,3 +1,4 @@
1
+ # -*- encoding : utf-8 -*-
1
2
  require 'rails/generators'
2
3
  require 'rails/generators/migration'
3
4
 
@@ -1,3 +1,4 @@
1
+ # -*- encoding : utf-8 -*-
1
2
  class AddOldXmlTo<%= model_name %>Model < ActiveRecord::Migration
2
3
  def up
3
4
  add_column :<%= table_name %>, :old_xml, :text
@@ -6,4 +7,4 @@ class AddOldXmlTo<%= model_name %>Model < ActiveRecord::Migration
6
7
  def down
7
8
  remove_column :<%= table_name %>, :old_xml
8
9
  end
9
- end
10
+ end
metadata CHANGED
@@ -1,174 +1,146 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: acts_as_elibri_product
3
- version: !ruby/object:Gem::Version
4
- version: 0.2.4
3
+ version: !ruby/object:Gem::Version
5
4
  prerelease:
5
+ version: 0.2.5
6
6
  platform: ruby
7
- authors:
7
+ authors:
8
8
  - Piotr Szmielew
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-03-21 00:00:00.000000000 Z
13
- dependencies:
14
- - !ruby/object:Gem::Dependency
12
+
13
+ date: 2013-07-05 00:00:00 Z
14
+ dependencies:
15
+ - !ruby/object:Gem::Dependency
15
16
  name: rails
16
- requirement: !ruby/object:Gem::Requirement
17
+ requirement: &id001 !ruby/object:Gem::Requirement
17
18
  none: false
18
- requirements:
19
- - - ! '>='
20
- - !ruby/object:Gem::Version
21
- version: '0'
19
+ requirements:
20
+ - - ">="
21
+ - !ruby/object:Gem::Version
22
+ version: "0"
22
23
  type: :runtime
23
24
  prerelease: false
24
- version_requirements: !ruby/object:Gem::Requirement
25
- none: false
26
- requirements:
27
- - - ! '>='
28
- - !ruby/object:Gem::Version
29
- version: '0'
30
- - !ruby/object:Gem::Dependency
25
+ version_requirements: *id001
26
+ - !ruby/object:Gem::Dependency
31
27
  name: elibri_xml_versions
32
- requirement: !ruby/object:Gem::Requirement
28
+ requirement: &id002 !ruby/object:Gem::Requirement
33
29
  none: false
34
- requirements:
35
- - - ! '>='
36
- - !ruby/object:Gem::Version
37
- version: '0'
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: "0"
38
34
  type: :runtime
39
35
  prerelease: false
40
- version_requirements: !ruby/object:Gem::Requirement
41
- none: false
42
- requirements:
43
- - - ! '>='
44
- - !ruby/object:Gem::Version
45
- version: '0'
46
- - !ruby/object:Gem::Dependency
36
+ version_requirements: *id002
37
+ - !ruby/object:Gem::Dependency
47
38
  name: elibri_onix_generator
48
- requirement: !ruby/object:Gem::Requirement
39
+ requirement: &id003 !ruby/object:Gem::Requirement
49
40
  none: false
50
- requirements:
51
- - - ! '>='
52
- - !ruby/object:Gem::Version
53
- version: '0'
41
+ requirements:
42
+ - - ">="
43
+ - !ruby/object:Gem::Version
44
+ version: "0"
54
45
  type: :development
55
46
  prerelease: false
56
- version_requirements: !ruby/object:Gem::Requirement
57
- none: false
58
- requirements:
59
- - - ! '>='
60
- - !ruby/object:Gem::Version
61
- version: '0'
62
- - !ruby/object:Gem::Dependency
47
+ version_requirements: *id003
48
+ - !ruby/object:Gem::Dependency
63
49
  name: elibri_onix_mocks
64
- requirement: !ruby/object:Gem::Requirement
50
+ requirement: &id004 !ruby/object:Gem::Requirement
65
51
  none: false
66
- requirements:
67
- - - ! '>='
68
- - !ruby/object:Gem::Version
69
- version: '0'
52
+ requirements:
53
+ - - ">="
54
+ - !ruby/object:Gem::Version
55
+ version: "0"
70
56
  type: :development
71
57
  prerelease: false
72
- version_requirements: !ruby/object:Gem::Requirement
73
- none: false
74
- requirements:
75
- - - ! '>='
76
- - !ruby/object:Gem::Version
77
- version: '0'
78
- - !ruby/object:Gem::Dependency
58
+ version_requirements: *id004
59
+ - !ruby/object:Gem::Dependency
79
60
  name: rspec
80
- requirement: !ruby/object:Gem::Requirement
61
+ requirement: &id005 !ruby/object:Gem::Requirement
81
62
  none: false
82
- requirements:
83
- - - ! '>='
84
- - !ruby/object:Gem::Version
85
- version: '0'
63
+ requirements:
64
+ - - ">="
65
+ - !ruby/object:Gem::Version
66
+ version: "0"
86
67
  type: :development
87
68
  prerelease: false
88
- version_requirements: !ruby/object:Gem::Requirement
89
- none: false
90
- requirements:
91
- - - ! '>='
92
- - !ruby/object:Gem::Version
93
- version: '0'
94
- - !ruby/object:Gem::Dependency
69
+ version_requirements: *id005
70
+ - !ruby/object:Gem::Dependency
95
71
  name: rspec-rails
96
- requirement: !ruby/object:Gem::Requirement
72
+ requirement: &id006 !ruby/object:Gem::Requirement
97
73
  none: false
98
- requirements:
99
- - - ! '>='
100
- - !ruby/object:Gem::Version
101
- version: '0'
74
+ requirements:
75
+ - - ">="
76
+ - !ruby/object:Gem::Version
77
+ version: "0"
102
78
  type: :development
103
79
  prerelease: false
104
- version_requirements: !ruby/object:Gem::Requirement
105
- none: false
106
- requirements:
107
- - - ! '>='
108
- - !ruby/object:Gem::Version
109
- version: '0'
110
- - !ruby/object:Gem::Dependency
80
+ version_requirements: *id006
81
+ - !ruby/object:Gem::Dependency
111
82
  name: sqlite3
112
- requirement: !ruby/object:Gem::Requirement
83
+ requirement: &id007 !ruby/object:Gem::Requirement
113
84
  none: false
114
- requirements:
115
- - - ! '>='
116
- - !ruby/object:Gem::Version
117
- version: '0'
85
+ requirements:
86
+ - - ">="
87
+ - !ruby/object:Gem::Version
88
+ version: "0"
118
89
  type: :development
119
90
  prerelease: false
120
- version_requirements: !ruby/object:Gem::Requirement
121
- none: false
122
- requirements:
123
- - - ! '>='
124
- - !ruby/object:Gem::Version
125
- version: '0'
126
- description: Gem designed to allow easy addition of eLibri based product to your application.
127
- Currently only tested under REE.
128
- email:
91
+ version_requirements: *id007
92
+ description: Gem designed to allow easy addition of eLibri based product to your application. Currently only tested under REE.
93
+ email:
129
94
  - p.szmielew@ava.waw.pl
130
95
  executables: []
96
+
131
97
  extensions: []
98
+
132
99
  extra_rdoc_files: []
133
- files:
134
- - lib/acts_as_elibri_product/object.rb
135
- - lib/acts_as_elibri_product/version.rb
136
- - lib/acts_as_elibri_product.rb
100
+
101
+ files:
102
+ - lib/generators/add_acts_as_elibri_product/USAGE
137
103
  - lib/generators/add_acts_as_elibri_product/add_acts_as_elibri_product_generator.rb
138
104
  - lib/generators/add_acts_as_elibri_product/templates/add_old_xml_to_model.rb
139
- - lib/generators/add_acts_as_elibri_product/USAGE
105
+ - lib/acts_as_elibri_product/version.rb
106
+ - lib/acts_as_elibri_product/object.rb
107
+ - lib/acts_as_elibri_product.rb
140
108
  - lib/tasks/acts_as_elibri_product_tasks.rake
141
109
  - MIT-LICENSE
142
110
  - Rakefile
143
111
  - README.md
144
112
  homepage: http://elibri.com.pl
145
113
  licenses: []
114
+
146
115
  post_install_message:
147
116
  rdoc_options: []
148
- require_paths:
117
+
118
+ require_paths:
149
119
  - lib
150
- required_ruby_version: !ruby/object:Gem::Requirement
120
+ required_ruby_version: !ruby/object:Gem::Requirement
151
121
  none: false
152
- requirements:
153
- - - ! '>='
154
- - !ruby/object:Gem::Version
155
- version: '0'
156
- segments:
122
+ requirements:
123
+ - - ">="
124
+ - !ruby/object:Gem::Version
125
+ hash: -2135524074813908650
126
+ segments:
157
127
  - 0
158
- hash: 1227144454168404055
159
- required_rubygems_version: !ruby/object:Gem::Requirement
128
+ version: "0"
129
+ required_rubygems_version: !ruby/object:Gem::Requirement
160
130
  none: false
161
- requirements:
162
- - - ! '>='
163
- - !ruby/object:Gem::Version
164
- version: '0'
165
- segments:
131
+ requirements:
132
+ - - ">="
133
+ - !ruby/object:Gem::Version
134
+ hash: -2135524074813908650
135
+ segments:
166
136
  - 0
167
- hash: 1227144454168404055
137
+ version: "0"
168
138
  requirements: []
139
+
169
140
  rubyforge_project:
170
- rubygems_version: 1.8.25
141
+ rubygems_version: 1.8.23
171
142
  signing_key:
172
143
  specification_version: 3
173
144
  summary: Easy addition of eLibri based product to your application
174
145
  test_files: []
146
+