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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: cd604de64f4448051cdb6769f25a3edc437bccaf
4
- data.tar.gz: 29d2859c63ca020a36b8536a073698382fd674f1
3
+ metadata.gz: b3fa49511aeb72c33274067d951ba17c3afc062b
4
+ data.tar.gz: b4875d43ed3207e70154345f1761f645c969b356
5
5
  SHA512:
6
- metadata.gz: 3d19bb7fff293e0a8c4ab6144f150a48204746ff0cc34c26ce32dc2fbdedcbd6a0cb227d60f375fe40e4e4fe6be252107aa65333aad111fe76dd195587b135dc
7
- data.tar.gz: 47eb9cb61f30a8ad52af8b0a0e37482dfb6bb9724079b854edb4c1c809a4cd1aac750e352cbab790b605bca1230f6496fd8331f1bc59492968c878478078db05
6
+ metadata.gz: 8fdbcda47af7f7e9ff72e2f97437141c366eb89cf266cd93b57737d3c5f36e73c4ca1fc54abe0e5482bd546d97b3516cfdb5ea0c0bf108f044dab00cc1216050
7
+ data.tar.gz: 180e375e35595a59c74a6754d2a0cd3e89f81c2d14d9966aa1b2bba2b914b823eb4edad403946152d5861dc7e01b328d96568085c9c84b1d5608a64881c256ad
data/README.md CHANGED
@@ -1,5 +1,6 @@
1
1
  # Jancode
2
2
 
3
+ [![Gem Version](https://badge.fury.io/rb/jancode.png)](http://badge.fury.io/rb/jancode)
3
4
  [![Build Status](https://travis-ci.org/i2bskn/jancode.png?branch=master)](https://travis-ci.org/i2bskn/jancode)
4
5
  [![Coverage Status](https://coveralls.io/repos/i2bskn/jancode/badge.png?branch=master)](https://coveralls.io/r/i2bskn/jancode?branch=master)
5
6
  [![Code Climate](https://codeclimate.com/github/i2bskn/jancode.png)](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
@@ -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($/)
@@ -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
@@ -1,3 +1,3 @@
1
1
  module Jancode
2
- VERSION = "0.0.1"
2
+ VERSION = "0.0.2"
3
3
  end
@@ -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.1
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-09-11 00:00:00.000000000 Z
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.0.6
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