elibri_connect 0.1.1 → 0.1.2
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/README.md
CHANGED
@@ -5,6 +5,10 @@
|
|
5
5
|
Elibri Xml Versions: [](http://travis-ci.org/elibri/elibri_xml_versions)
|
6
6
|
Elibri Onix Mocks: [](http://travis-ci.org/elibri/elibri_onix_mocks)
|
7
7
|
Acts as Elibri Product: [](http://travis-ci.org/elibri/acts_as_elibri_product)
|
8
|
+
Elibri Onix Dict: [](http://travis-ci.org/elibri/elibri_onix_dict)
|
9
|
+
Elibri Onix: [](http://travis-ci.org/elibri/elibri_onix)
|
10
|
+
Elibri Api Client: [](http://travis-ci.org/elibri/elibri_api_client)
|
11
|
+
|
8
12
|
|
9
13
|
### Elibri Connect: ###
|
10
14
|
[](http://travis-ci.org/elibri/elibri_connect)
|
@@ -13,7 +17,7 @@ Acts as Elibri Product: [.
|
17
21
|
|
18
22
|
## Usage ##
|
19
23
|
|
@@ -34,6 +38,16 @@ If you need to access raw api client - you can get it by invoking `Elibri::Conne
|
|
34
38
|
|
35
39
|
Gem has additional mode of operation called test_mode - you can get into it, by setting `test_mode=true` inside configuration file. When using it your application will not connect to elibri, instead it will use elibri_xml_mocks to mock and create product for your app.
|
36
40
|
|
41
|
+
Also when installed elibri_connect you will receive method to look into related products imported from elibri.
|
42
|
+
There is one to many relationship between product and related_products.
|
43
|
+
You can use it, like this:
|
44
|
+
|
45
|
+
```ruby
|
46
|
+
product.related_products #list of related objects
|
47
|
+
product.related_products.objects #list of actual products related to our
|
48
|
+
product.related_products.first.object #actual product that is related
|
49
|
+
```
|
50
|
+
|
37
51
|
## Anatomy of config file ##
|
38
52
|
|
39
53
|
Config file looks like this, and needs to be in config/initializers directory (generate command can provide one for you):
|
@@ -25,6 +25,23 @@ module Elibri
|
|
25
25
|
attr_accessible :import_id, :text, :text_type, :text_author, :source_title, :resource_link
|
26
26
|
|
27
27
|
end}
|
28
|
+
|
29
|
+
create_file "app/models/related_product.rb",
|
30
|
+
%Q{class RelatedProduct < ActiveRecord::Base
|
31
|
+
attr_accessible :onix_code, :product_id, :related_record_reference
|
32
|
+
|
33
|
+
belongs_to :product
|
34
|
+
|
35
|
+
def object
|
36
|
+
Product.where(:record_reference => related_record_reference).first
|
37
|
+
end
|
38
|
+
|
39
|
+
def self.objects
|
40
|
+
joins(:product).first.product.related_products.map { |x| Product.where(:record_reference => x.related_record_reference).first }.compact
|
41
|
+
end
|
42
|
+
|
43
|
+
end}
|
44
|
+
|
28
45
|
create_file "app/models/product.rb",
|
29
46
|
%Q[class Product < ActiveRecord::Base
|
30
47
|
|
@@ -32,7 +49,15 @@ module Elibri
|
|
32
49
|
product.has_many :contributors
|
33
50
|
product.has_many :product_texts
|
34
51
|
product.has_one :imprint
|
52
|
+
product.has_many :related_products
|
35
53
|
end
|
54
|
+
|
55
|
+
HEIGHT_UNIT = 'mm'
|
56
|
+
WIDTH_UNIT = 'mm'
|
57
|
+
THICKNESS_UNIT = 'mm'
|
58
|
+
WEIGHT_UNIT = 'gr'
|
59
|
+
FILE_SIZE_UNIT = 'MB'
|
60
|
+
DURATION_UNIT = 'min'
|
36
61
|
|
37
62
|
attr_accessible :isbn, :title, :full_title, :trade_title, :original_title, :publication_year,
|
38
63
|
:publication_month, :publication_day, :number_of_pages, :width, :height,
|
@@ -40,7 +65,7 @@ module Elibri
|
|
40
65
|
:price_amount, :vat, :current_state, :product_form, :old_xml
|
41
66
|
|
42
67
|
#on left side elibri attributes, on right side our name of attribute
|
43
|
-
acts_as_elibri_product :record_reference => :record_reference,
|
68
|
+
acts_as_elibri_product :record_reference => :record_reference, #very important attribute!
|
44
69
|
:isbn13 => :isbn,
|
45
70
|
:title => :title,
|
46
71
|
:full_title => :full_title,
|
@@ -73,6 +98,12 @@ module Elibri
|
|
73
98
|
:biographical_note => :biography
|
74
99
|
}
|
75
100
|
},
|
101
|
+
:related_products => {
|
102
|
+
:related_products => {
|
103
|
+
:record_reference => :related_record_reference,
|
104
|
+
:relation_code => :onix_code
|
105
|
+
}
|
106
|
+
},
|
76
107
|
:text_contents => {
|
77
108
|
:product_texts => {
|
78
109
|
:id => :import_id,
|
@@ -54,6 +54,16 @@ class CreateElibriStructure < ActiveRecord::Migration
|
|
54
54
|
t.text :old_xml
|
55
55
|
t.timestamps
|
56
56
|
end
|
57
|
+
|
58
|
+
create_table :related_products do |t|
|
59
|
+
t.integer :product_id
|
60
|
+
t.string :related_record_reference
|
61
|
+
t.string :onix_code
|
62
|
+
|
63
|
+
t.timestamps
|
64
|
+
end
|
65
|
+
|
66
|
+
|
57
67
|
|
58
68
|
end
|
59
69
|
end
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: elibri_connect
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 31
|
5
5
|
prerelease:
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 1
|
9
|
-
-
|
10
|
-
version: 0.1.
|
9
|
+
- 2
|
10
|
+
version: 0.1.2
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Piotr Szmielew
|
@@ -15,11 +15,11 @@ autorequire:
|
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
17
17
|
|
18
|
-
date: 2012-
|
18
|
+
date: 2012-05-19 00:00:00 Z
|
19
19
|
dependencies:
|
20
20
|
- !ruby/object:Gem::Dependency
|
21
|
-
|
22
|
-
|
21
|
+
name: rails
|
22
|
+
version_requirements: &id001 !ruby/object:Gem::Requirement
|
23
23
|
none: false
|
24
24
|
requirements:
|
25
25
|
- - ~>
|
@@ -30,12 +30,12 @@ dependencies:
|
|
30
30
|
- 2
|
31
31
|
- 0
|
32
32
|
version: 3.2.0
|
33
|
-
version_requirements: *id001
|
34
|
-
name: rails
|
35
33
|
type: :runtime
|
36
|
-
- !ruby/object:Gem::Dependency
|
37
34
|
prerelease: false
|
38
|
-
requirement:
|
35
|
+
requirement: *id001
|
36
|
+
- !ruby/object:Gem::Dependency
|
37
|
+
name: acts_as_elibri_product
|
38
|
+
version_requirements: &id002 !ruby/object:Gem::Requirement
|
39
39
|
none: false
|
40
40
|
requirements:
|
41
41
|
- - ">="
|
@@ -44,12 +44,12 @@ dependencies:
|
|
44
44
|
segments:
|
45
45
|
- 0
|
46
46
|
version: "0"
|
47
|
-
version_requirements: *id002
|
48
|
-
name: acts_as_elibri_product
|
49
47
|
type: :runtime
|
50
|
-
- !ruby/object:Gem::Dependency
|
51
48
|
prerelease: false
|
52
|
-
requirement:
|
49
|
+
requirement: *id002
|
50
|
+
- !ruby/object:Gem::Dependency
|
51
|
+
name: elibri_api_client
|
52
|
+
version_requirements: &id003 !ruby/object:Gem::Requirement
|
53
53
|
none: false
|
54
54
|
requirements:
|
55
55
|
- - ">="
|
@@ -58,12 +58,12 @@ dependencies:
|
|
58
58
|
segments:
|
59
59
|
- 0
|
60
60
|
version: "0"
|
61
|
-
version_requirements: *id003
|
62
|
-
name: elibri_api_client
|
63
61
|
type: :runtime
|
64
|
-
- !ruby/object:Gem::Dependency
|
65
62
|
prerelease: false
|
66
|
-
requirement:
|
63
|
+
requirement: *id003
|
64
|
+
- !ruby/object:Gem::Dependency
|
65
|
+
name: elibri_onix_mocks
|
66
|
+
version_requirements: &id004 !ruby/object:Gem::Requirement
|
67
67
|
none: false
|
68
68
|
requirements:
|
69
69
|
- - ">="
|
@@ -72,12 +72,12 @@ dependencies:
|
|
72
72
|
segments:
|
73
73
|
- 0
|
74
74
|
version: "0"
|
75
|
-
version_requirements: *id004
|
76
|
-
name: elibri_onix_mocks
|
77
75
|
type: :runtime
|
78
|
-
- !ruby/object:Gem::Dependency
|
79
76
|
prerelease: false
|
80
|
-
requirement:
|
77
|
+
requirement: *id004
|
78
|
+
- !ruby/object:Gem::Dependency
|
79
|
+
name: whenever
|
80
|
+
version_requirements: &id005 !ruby/object:Gem::Requirement
|
81
81
|
none: false
|
82
82
|
requirements:
|
83
83
|
- - ">="
|
@@ -86,12 +86,12 @@ dependencies:
|
|
86
86
|
segments:
|
87
87
|
- 0
|
88
88
|
version: "0"
|
89
|
-
version_requirements: *id005
|
90
|
-
name: whenever
|
91
89
|
type: :runtime
|
92
|
-
- !ruby/object:Gem::Dependency
|
93
90
|
prerelease: false
|
94
|
-
requirement:
|
91
|
+
requirement: *id005
|
92
|
+
- !ruby/object:Gem::Dependency
|
93
|
+
name: sqlite3
|
94
|
+
version_requirements: &id006 !ruby/object:Gem::Requirement
|
95
95
|
none: false
|
96
96
|
requirements:
|
97
97
|
- - ">="
|
@@ -100,12 +100,12 @@ dependencies:
|
|
100
100
|
segments:
|
101
101
|
- 0
|
102
102
|
version: "0"
|
103
|
-
version_requirements: *id006
|
104
|
-
name: sqlite3
|
105
103
|
type: :development
|
106
|
-
- !ruby/object:Gem::Dependency
|
107
104
|
prerelease: false
|
108
|
-
requirement:
|
105
|
+
requirement: *id006
|
106
|
+
- !ruby/object:Gem::Dependency
|
107
|
+
name: rspec
|
108
|
+
version_requirements: &id007 !ruby/object:Gem::Requirement
|
109
109
|
none: false
|
110
110
|
requirements:
|
111
111
|
- - ">="
|
@@ -114,12 +114,12 @@ dependencies:
|
|
114
114
|
segments:
|
115
115
|
- 0
|
116
116
|
version: "0"
|
117
|
-
version_requirements: *id007
|
118
|
-
name: rspec
|
119
117
|
type: :development
|
120
|
-
- !ruby/object:Gem::Dependency
|
121
118
|
prerelease: false
|
122
|
-
requirement:
|
119
|
+
requirement: *id007
|
120
|
+
- !ruby/object:Gem::Dependency
|
121
|
+
name: rspec-rails
|
122
|
+
version_requirements: &id008 !ruby/object:Gem::Requirement
|
123
123
|
none: false
|
124
124
|
requirements:
|
125
125
|
- - ">="
|
@@ -128,9 +128,9 @@ dependencies:
|
|
128
128
|
segments:
|
129
129
|
- 0
|
130
130
|
version: "0"
|
131
|
-
version_requirements: *id008
|
132
|
-
name: rspec-rails
|
133
131
|
type: :development
|
132
|
+
prerelease: false
|
133
|
+
requirement: *id008
|
134
134
|
description: |-
|
135
135
|
Gem designed to allow easy addition of elibri based product system to your application.
|
136
136
|
Currently tested and support only on REE - due to dependencies.
|
@@ -184,7 +184,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
184
184
|
requirements: []
|
185
185
|
|
186
186
|
rubyforge_project:
|
187
|
-
rubygems_version: 1.8.
|
187
|
+
rubygems_version: 1.8.21
|
188
188
|
signing_key:
|
189
189
|
specification_version: 3
|
190
190
|
summary: Gem designed to allow easy addition of elibri based product system to your application.
|