elibri_onix_dict 0.0.51 → 0.0.60
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.
- checksums.yaml +4 -4
- data/Gemfile.lock +13 -1
- data/elibri_onix_dict.gemspec +1 -1
- data/lib/elibri_onix_dict.rb +1 -0
- data/lib/elibri_onix_dict/cover_type.rb +48 -0
- data/lib/elibri_onix_dict/cover_types.yml +47 -0
- data/lib/elibri_onix_dict/version.rb +1 -1
- data/test/elibri_onix_dict_release_3_0_test.rb +2 -2
- data/test/helper.rb +0 -3
- data/test/product_cover_type_test.rb +39 -0
- metadata +19 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 8a2607e2bc8cb57fbdb17ff58ee3689905ab3b5a96ab5f504efb460ef77280cd
|
4
|
+
data.tar.gz: 56500a5620e953471cdca7fe634da84a070c6353aeb48f927a5043bd9c1eedda
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 7cd65fd95786a47bddd16a04f850091d3b92f8b0a7f09936e0e08cc6dc1245475bce5650a7ae95369397fa35900890d8254bed2508fb24f722f4f838ed5ebc6c
|
7
|
+
data.tar.gz: a95bf930a419e0e4c550dae9cefaa72020ab6e583731f51335e7c87891926b4351ebc783d441c9581874848dc26cede10e1e975ba963fd941f500b18ed38a437
|
data/Gemfile.lock
CHANGED
@@ -1,11 +1,15 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
elibri_onix_dict (0.0.
|
4
|
+
elibri_onix_dict (0.0.60)
|
5
|
+
amatch
|
5
6
|
|
6
7
|
GEM
|
7
8
|
remote: https://rubygems.org/
|
8
9
|
specs:
|
10
|
+
amatch (0.4.0)
|
11
|
+
mize
|
12
|
+
tins (~> 1.0)
|
9
13
|
coderay (1.0.6)
|
10
14
|
git (1.2.5)
|
11
15
|
jeweler (1.6.4)
|
@@ -14,6 +18,10 @@ GEM
|
|
14
18
|
rake
|
15
19
|
method_source (0.7.1)
|
16
20
|
minitest (3.0.0)
|
21
|
+
mize (0.4.0)
|
22
|
+
protocol (~> 2.0)
|
23
|
+
protocol (2.0.0)
|
24
|
+
ruby_parser (~> 3.0)
|
17
25
|
pry (0.9.9.6)
|
18
26
|
coderay (~> 1.0.5)
|
19
27
|
method_source (~> 0.7.1)
|
@@ -24,8 +32,12 @@ GEM
|
|
24
32
|
slop (>= 2.4.4, < 3)
|
25
33
|
spoon (~> 0.0)
|
26
34
|
rake (0.9.2.2)
|
35
|
+
ruby_parser (3.14.1)
|
36
|
+
sexp_processor (~> 4.9)
|
37
|
+
sexp_processor (4.13.0)
|
27
38
|
slop (2.4.4)
|
28
39
|
spoon (0.0.1)
|
40
|
+
tins (1.22.2)
|
29
41
|
|
30
42
|
PLATFORMS
|
31
43
|
java
|
data/elibri_onix_dict.gemspec
CHANGED
@@ -24,11 +24,11 @@ Gem::Specification.new do |gem|
|
|
24
24
|
|
25
25
|
gem.date = %q{2012-04-05}
|
26
26
|
|
27
|
+
gem.add_dependency "amatch"
|
27
28
|
gem.add_development_dependency "pry"
|
28
29
|
gem.add_development_dependency "minitest", ">= 0"
|
29
30
|
gem.add_development_dependency "bundler", ">= 1.0.0"
|
30
31
|
gem.add_development_dependency "jeweler", "~> 1.6.2"
|
31
|
-
# gem.add_development_dependency "rcov", ">= 0"
|
32
32
|
|
33
33
|
|
34
34
|
end
|
data/lib/elibri_onix_dict.rb
CHANGED
@@ -0,0 +1,48 @@
|
|
1
|
+
require 'yaml'
|
2
|
+
require 'amatch'
|
3
|
+
|
4
|
+
module Elibri
|
5
|
+
module ONIX
|
6
|
+
module Dict
|
7
|
+
class CoverType
|
8
|
+
|
9
|
+
# id to wartość jaka będzie zapisana w polu cover_type_id dla produktu.
|
10
|
+
# name to nazwa w obrębie Elibri
|
11
|
+
attr_reader :id, :name, :product_form, :product_form_detail
|
12
|
+
|
13
|
+
|
14
|
+
conf = File.expand_path(File.join(File.dirname(__FILE__), "cover_types.yml"))
|
15
|
+
ALL = YAML::load_file(conf).sort_by(&:name)
|
16
|
+
|
17
|
+
HARDBACK = 8
|
18
|
+
PLASTIC = 6
|
19
|
+
PAPERBACK = 4
|
20
|
+
|
21
|
+
def self.find(cover_type_id)
|
22
|
+
self.all.find {|cover_type| cover_type.id == cover_type_id }
|
23
|
+
end
|
24
|
+
|
25
|
+
def self.determine_cover_type(product_form, product_form_detail)
|
26
|
+
matching_cover = all.find { |cover| cover.product_form == product_form && cover.product_form_detail == product_form_detail }
|
27
|
+
matching_cover.name if matching_cover
|
28
|
+
end
|
29
|
+
|
30
|
+
# Znajdź w słowniku typ okładki, którego nazwa jest najbardziej podobna do podanego stringu.
|
31
|
+
def self.most_similar_to(cover_name)
|
32
|
+
if cover_name =~ /karton/
|
33
|
+
return all.find { |c| c.name == "twarda" }
|
34
|
+
else
|
35
|
+
all.sort_by {|cover_type| cover_type.name.downcase.levenshtein_similar(cover_name.downcase) }.last
|
36
|
+
end
|
37
|
+
end
|
38
|
+
|
39
|
+
|
40
|
+
def self.all
|
41
|
+
ALL
|
42
|
+
end
|
43
|
+
|
44
|
+
|
45
|
+
end
|
46
|
+
end
|
47
|
+
end
|
48
|
+
end
|
@@ -0,0 +1,47 @@
|
|
1
|
+
|
2
|
+
---
|
3
|
+
- !ruby/object:Elibri::ONIX::Dict::CoverType
|
4
|
+
id: 1
|
5
|
+
name: gąbka
|
6
|
+
product_form: BP
|
7
|
+
product_form_detail:
|
8
|
+
- !ruby/object:Elibri::ONIX::Dict::CoverType
|
9
|
+
id: 4
|
10
|
+
name: miękka
|
11
|
+
product_form: BC
|
12
|
+
product_form_detail:
|
13
|
+
- !ruby/object:Elibri::ONIX::Dict::CoverType
|
14
|
+
id: 5
|
15
|
+
name: miękka ze skrzydełkami
|
16
|
+
product_form: BC
|
17
|
+
product_form_detail: B504
|
18
|
+
- !ruby/object:Elibri::ONIX::Dict::CoverType
|
19
|
+
id: 6
|
20
|
+
name: plastikowa
|
21
|
+
product_form: BB
|
22
|
+
product_form_detail: B413
|
23
|
+
- !ruby/object:Elibri::ONIX::Dict::CoverType
|
24
|
+
id: 7
|
25
|
+
name: skórzana
|
26
|
+
product_form: BG
|
27
|
+
product_form_detail:
|
28
|
+
- !ruby/object:Elibri::ONIX::Dict::CoverType
|
29
|
+
id: 8
|
30
|
+
name: twarda
|
31
|
+
product_form: BB
|
32
|
+
product_form_detail:
|
33
|
+
- !ruby/object:Elibri::ONIX::Dict::CoverType
|
34
|
+
id: 9
|
35
|
+
name: twarda z obwolutą
|
36
|
+
product_form: BB
|
37
|
+
product_form_detail: B501
|
38
|
+
- !ruby/object:Elibri::ONIX::Dict::CoverType
|
39
|
+
id: 10
|
40
|
+
name: twarda lakierowana
|
41
|
+
product_form: BB
|
42
|
+
product_form_detail: B415
|
43
|
+
- !ruby/object:Elibri::ONIX::Dict::CoverType
|
44
|
+
id: 11
|
45
|
+
name: zintegrowana
|
46
|
+
product_form: BC
|
47
|
+
product_form_detail: B412
|
@@ -6,8 +6,8 @@ require 'helper'
|
|
6
6
|
describe Elibri::ONIX::Dict::Release_3_0 do
|
7
7
|
|
8
8
|
it "should be able to build classes on the fly from .yml files" do
|
9
|
-
assert_equal
|
10
|
-
assert_equal
|
9
|
+
assert_equal 15, Elibri::ONIX::Dict::Release_3_0::ProductFormCode::ALL.size
|
10
|
+
assert_equal 13, Elibri::ONIX::Dict::Release_3_0::ProductFormCode.all_except('BA', 'EA').size
|
11
11
|
assert_equal 'BA', Elibri::ONIX::Dict::Release_3_0::ProductFormCode::BOOK
|
12
12
|
assert_equal '02', Elibri::ONIX::Dict::Release_3_0::EpubUsageStatus::LIMITED
|
13
13
|
assert_equal '01', Elibri::ONIX::Dict::Release_3_0::EpubUsageType::PREVIEW
|
data/test/helper.rb
CHANGED
@@ -7,7 +7,6 @@ rescue Bundler::BundlerError => e
|
|
7
7
|
$stderr.puts "Run `bundle install` to install missing gems"
|
8
8
|
exit e.status_code
|
9
9
|
end
|
10
|
-
require 'test/unit'
|
11
10
|
require 'minitest/autorun'
|
12
11
|
require 'pry'
|
13
12
|
|
@@ -15,5 +14,3 @@ $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
|
|
15
14
|
$LOAD_PATH.unshift(File.dirname(__FILE__))
|
16
15
|
require 'elibri_onix_dict'
|
17
16
|
|
18
|
-
class Test::Unit::TestCase
|
19
|
-
end
|
@@ -0,0 +1,39 @@
|
|
1
|
+
require 'helper'
|
2
|
+
|
3
|
+
|
4
|
+
describe Elibri::ONIX::Dict::CoverType do
|
5
|
+
|
6
|
+
it "should be able to find most similar dict entry with specified string" do
|
7
|
+
assert_equal 'miękka', Elibri::ONIX::Dict::CoverType.most_similar_to('mietka').name
|
8
|
+
assert_equal 'miękka ze skrzydełkami', Elibri::ONIX::Dict::CoverType.most_similar_to('skrzydełkowa').name
|
9
|
+
assert_equal 'skórzana', Elibri::ONIX::Dict::CoverType.most_similar_to('skórkowa').name
|
10
|
+
assert_equal 'twarda', Elibri::ONIX::Dict::CoverType.most_similar_to('karton').name
|
11
|
+
end
|
12
|
+
|
13
|
+
it "should be able to return product_form and product_form_detail" do
|
14
|
+
c1 = Elibri::ONIX::Dict::CoverType.find(1)
|
15
|
+
assert_equal "gąbka", c1.name
|
16
|
+
assert_equal "BP", c1.product_form
|
17
|
+
assert_nil c1.product_form_detail
|
18
|
+
|
19
|
+
c2 = Elibri::ONIX::Dict::CoverType.find(9)
|
20
|
+
assert_equal "twarda z obwolutą", c2.name
|
21
|
+
assert_equal "BB", c2.product_form
|
22
|
+
assert_equal "B501", c2.product_form_detail
|
23
|
+
end
|
24
|
+
|
25
|
+
it "should properly recognize cover types" do
|
26
|
+
assert_equal "gąbka", Elibri::ONIX::Dict::CoverType.determine_cover_type("BP", nil)
|
27
|
+
assert_equal "miękka", Elibri::ONIX::Dict::CoverType.determine_cover_type("BC", nil)
|
28
|
+
assert_equal "miękka ze skrzydełkami", Elibri::ONIX::Dict::CoverType.determine_cover_type("BC", "B504")
|
29
|
+
assert_equal "plastikowa", Elibri::ONIX::Dict::CoverType.determine_cover_type("BB", "B413")
|
30
|
+
assert_equal "skórzana", Elibri::ONIX::Dict::CoverType.determine_cover_type("BG", nil)
|
31
|
+
assert_equal "twarda", Elibri::ONIX::Dict::CoverType.determine_cover_type("BB", nil)
|
32
|
+
assert_equal "twarda lakierowana", Elibri::ONIX::Dict::CoverType.determine_cover_type("BB", "B415")
|
33
|
+
assert_equal "twarda z obwolutą", Elibri::ONIX::Dict::CoverType.determine_cover_type("BB", "B501")
|
34
|
+
assert_equal "zintegrowana", Elibri::ONIX::Dict::CoverType.determine_cover_type("BC", "B412")
|
35
|
+
|
36
|
+
#nieznana kombinacja
|
37
|
+
assert_nil Elibri::ONIX::Dict::CoverType.determine_cover_type("BF", nil)
|
38
|
+
end
|
39
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: elibri_onix_dict
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.60
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Marcin Urbanski
|
@@ -10,6 +10,20 @@ bindir: bin
|
|
10
10
|
cert_chain: []
|
11
11
|
date: 2012-04-05 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: amatch
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - ">="
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '0'
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - ">="
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '0'
|
13
27
|
- !ruby/object:Gem::Dependency
|
14
28
|
name: pry
|
15
29
|
requirement: !ruby/object:Gem::Requirement
|
@@ -84,6 +98,8 @@ files:
|
|
84
98
|
- Rakefile
|
85
99
|
- elibri_onix_dict.gemspec
|
86
100
|
- lib/elibri_onix_dict.rb
|
101
|
+
- lib/elibri_onix_dict/cover_type.rb
|
102
|
+
- lib/elibri_onix_dict/cover_types.yml
|
87
103
|
- lib/elibri_onix_dict/onix_3_0/base.rb
|
88
104
|
- lib/elibri_onix_dict/onix_3_0/serialized/AudienceRangePrecision.yml
|
89
105
|
- lib/elibri_onix_dict/onix_3_0/serialized/AudienceRangeQualifier.yml
|
@@ -138,6 +154,7 @@ files:
|
|
138
154
|
- test/elibri_onix_dict_release_3_0_test.rb
|
139
155
|
- test/elibri_onix_dict_test.rb
|
140
156
|
- test/helper.rb
|
157
|
+
- test/product_cover_type_test.rb
|
141
158
|
homepage: http://github.com/elibri/elibri_onix_dict
|
142
159
|
licenses:
|
143
160
|
- MIT
|
@@ -166,3 +183,4 @@ test_files:
|
|
166
183
|
- test/elibri_onix_dict_release_3_0_test.rb
|
167
184
|
- test/elibri_onix_dict_test.rb
|
168
185
|
- test/helper.rb
|
186
|
+
- test/product_cover_type_test.rb
|