jancode 0.0.1 → 0.0.2

Sign up to get free protection for your applications and to get access to all the features.
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