jancode 0.0.1 → 0.0.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.
- checksums.yaml +4 -4
- data/README.md +25 -0
- data/jancode.gemspec +1 -1
- data/lib/jancode.rb +37 -0
- data/lib/jancode/version.rb +1 -1
- data/spec/jancode_spec.rb +67 -0
- metadata +6 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: b3fa49511aeb72c33274067d951ba17c3afc062b
|
4
|
+
data.tar.gz: b4875d43ed3207e70154345f1761f645c969b356
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 8fdbcda47af7f7e9ff72e2f97437141c366eb89cf266cd93b57737d3c5f36e73c4ca1fc54abe0e5482bd546d97b3516cfdb5ea0c0bf108f044dab00cc1216050
|
7
|
+
data.tar.gz: 180e375e35595a59c74a6754d2a0cd3e89f81c2d14d9966aa1b2bba2b914b823eb4edad403946152d5861dc7e01b328d96568085c9c84b1d5608a64881c256ad
|
data/README.md
CHANGED
@@ -1,5 +1,6 @@
|
|
1
1
|
# Jancode
|
2
2
|
|
3
|
+
[](http://badge.fury.io/rb/jancode)
|
3
4
|
[](https://travis-ci.org/i2bskn/jancode)
|
4
5
|
[](https://coveralls.io/r/i2bskn/jancode?branch=master)
|
5
6
|
[](https://codeclimate.com/github/i2bskn/jancode)
|
@@ -22,6 +23,30 @@ Or install it yourself as:
|
|
22
23
|
|
23
24
|
## Usage
|
24
25
|
|
26
|
+
Create japanese article number.
|
27
|
+
|
28
|
+
```ruby
|
29
|
+
require "jancode"
|
30
|
+
|
31
|
+
gtin13 = Jancode.create("456995111617") # => #<Jancode::GTIN13:0x007fdb6314b950 @company_prefix="456995111", @item_code="618">
|
32
|
+
gtin13.create # => "4569951116186"
|
33
|
+
|
34
|
+
gtin8 = Jancode.create("4912345") # => #<Jancode::GTIN8:0x007fdb6126eaa0 @company_prefix="491234", @item_code="5">
|
35
|
+
gtin8.create # => "49123456"
|
36
|
+
```
|
37
|
+
|
38
|
+
Verification japanese article number.
|
39
|
+
|
40
|
+
```ruby
|
41
|
+
require "jancode"
|
42
|
+
|
43
|
+
Jancode.verification? "4569951116186" # => true
|
44
|
+
Jancode.verification? "4569951116187" # => false
|
45
|
+
|
46
|
+
Jancode.verification? "49123456" # => true
|
47
|
+
Jancode.verification? "49123457" # => false
|
48
|
+
```
|
49
|
+
|
25
50
|
### GTIN13
|
26
51
|
|
27
52
|
```ruby
|
data/jancode.gemspec
CHANGED
@@ -10,7 +10,7 @@ Gem::Specification.new do |spec|
|
|
10
10
|
spec.email = ["i2bskn@gmail.com"]
|
11
11
|
spec.description = %q{Japanese Article Number}
|
12
12
|
spec.summary = %q{Japanese Article Number}
|
13
|
-
spec.homepage = ""
|
13
|
+
spec.homepage = "https://github.com/i2bskn/jancode"
|
14
14
|
spec.license = "MIT"
|
15
15
|
|
16
16
|
spec.files = `git ls-files`.split($/)
|
data/lib/jancode.rb
CHANGED
@@ -2,3 +2,40 @@ require "jancode/version"
|
|
2
2
|
require "jancode/gtin"
|
3
3
|
require "jancode/gtin13"
|
4
4
|
require "jancode/gtin8"
|
5
|
+
|
6
|
+
module Jancode
|
7
|
+
class << self
|
8
|
+
# without check digit
|
9
|
+
def create(code)
|
10
|
+
case code.size
|
11
|
+
when 12
|
12
|
+
company_prefix = code[0..8]
|
13
|
+
item_code = code[9..11]
|
14
|
+
Jancode::GTIN13.new(company_prefix, item_code)
|
15
|
+
when 7
|
16
|
+
company_prefix = code[0..5]
|
17
|
+
item_code = code[6]
|
18
|
+
Jancode::GTIN8.new(company_prefix, item_code)
|
19
|
+
else
|
20
|
+
raise "Is not 12 or 7 characters"
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
24
|
+
def verification?(code)
|
25
|
+
case code.size
|
26
|
+
when 13
|
27
|
+
company_prefix = code[0..8]
|
28
|
+
item_code = code[9..11]
|
29
|
+
jancode = Jancode::GTIN13.new(company_prefix, item_code)
|
30
|
+
when 8
|
31
|
+
company_prefix = code[0..5]
|
32
|
+
item_code = code[6]
|
33
|
+
jancode = Jancode::GTIN8.new(company_prefix, item_code)
|
34
|
+
else
|
35
|
+
raise "Is not 13 or 8 characters"
|
36
|
+
end
|
37
|
+
|
38
|
+
jancode.create == code
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
data/lib/jancode/version.rb
CHANGED
@@ -0,0 +1,67 @@
|
|
1
|
+
require "spec_helper"
|
2
|
+
|
3
|
+
describe Jancode do
|
4
|
+
describe ".#create" do
|
5
|
+
context "with gtin13" do
|
6
|
+
let(:jancode) {Jancode.create("456995111617")}
|
7
|
+
|
8
|
+
it "create GTIN13 object" do
|
9
|
+
expect(jancode.is_a? Jancode::GTIN13).to be_true
|
10
|
+
end
|
11
|
+
|
12
|
+
it "create GTIN13 code" do
|
13
|
+
expect(jancode.create).to eq("4569951116179")
|
14
|
+
end
|
15
|
+
end
|
16
|
+
|
17
|
+
context "with gtin8" do
|
18
|
+
let(:jancode) {Jancode.create("4912345")}
|
19
|
+
|
20
|
+
it "create GTIN8 object" do
|
21
|
+
expect(jancode.is_a? Jancode::GTIN8).to be_true
|
22
|
+
end
|
23
|
+
|
24
|
+
it "create GTIN8 code" do
|
25
|
+
expect(jancode.create).to eq("49123456")
|
26
|
+
end
|
27
|
+
end
|
28
|
+
|
29
|
+
context "with invalid params" do
|
30
|
+
it "should generate exception" do
|
31
|
+
expect {
|
32
|
+
Jancode.create("0123456789")
|
33
|
+
}.to raise_error
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
37
|
+
|
38
|
+
describe ".#verification?" do
|
39
|
+
context "with gtin13" do
|
40
|
+
it "returns true if valid jancode" do
|
41
|
+
expect(Jancode.verification? "4569951116179").to be_true
|
42
|
+
end
|
43
|
+
|
44
|
+
it "returns false if invalid jancode" do
|
45
|
+
expect(Jancode.verification? "4569951116170").to be_false
|
46
|
+
end
|
47
|
+
end
|
48
|
+
|
49
|
+
context "with gtin8" do
|
50
|
+
it "returns true if valid jancode" do
|
51
|
+
expect(Jancode.verification? "49123456").to be_true
|
52
|
+
end
|
53
|
+
|
54
|
+
it "returns false if invalid jancode" do
|
55
|
+
expect(Jancode.verification? "49123457").to be_false
|
56
|
+
end
|
57
|
+
end
|
58
|
+
|
59
|
+
context "with invalid params" do
|
60
|
+
it "should generate exception" do
|
61
|
+
expect {
|
62
|
+
Jancode.verification? "0123456789"
|
63
|
+
}.to raise_error
|
64
|
+
end
|
65
|
+
end
|
66
|
+
end
|
67
|
+
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: jancode
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- i2bskn
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2013-
|
11
|
+
date: 2013-10-01 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -75,8 +75,9 @@ files:
|
|
75
75
|
- spec/jancode/gtin13_spec.rb
|
76
76
|
- spec/jancode/gtin8_spec.rb
|
77
77
|
- spec/jancode/gtin_spec.rb
|
78
|
+
- spec/jancode_spec.rb
|
78
79
|
- spec/spec_helper.rb
|
79
|
-
homepage:
|
80
|
+
homepage: https://github.com/i2bskn/jancode
|
80
81
|
licenses:
|
81
82
|
- MIT
|
82
83
|
metadata: {}
|
@@ -96,7 +97,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
96
97
|
version: '0'
|
97
98
|
requirements: []
|
98
99
|
rubyforge_project:
|
99
|
-
rubygems_version: 2.
|
100
|
+
rubygems_version: 2.1.5
|
100
101
|
signing_key:
|
101
102
|
specification_version: 4
|
102
103
|
summary: Japanese Article Number
|
@@ -104,4 +105,5 @@ test_files:
|
|
104
105
|
- spec/jancode/gtin13_spec.rb
|
105
106
|
- spec/jancode/gtin8_spec.rb
|
106
107
|
- spec/jancode/gtin_spec.rb
|
108
|
+
- spec/jancode_spec.rb
|
107
109
|
- spec/spec_helper.rb
|