jan 0.0.3 → 0.0.4

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: 237a9da38380537a517fe197d1d4a68c0b09723f
4
- data.tar.gz: d2c6fa1db69b4a3eb649ac5762130bb261643763
3
+ metadata.gz: 08c3cfeccb0e7c251771a361c3a06fcd54b98937
4
+ data.tar.gz: c20f6fd40652e7dbe919637f0d267fd6bc5fc394
5
5
  SHA512:
6
- metadata.gz: 16a99d572b13b34529c0c00c9df7c73bf2e5b68e54b257a4f5ffd59499e45dc700cc7164c2cf40ae010760edf19ff905e379e9debd1fa7e856bcd8b440e0e2c3
7
- data.tar.gz: a322ccaad173dc7bf4e16eef9e35f93bbdccee3efd7807dda49c35e35171dbbb9bc46a518d8f41abd4714c9fd891017220757688d153d625582046b78d9f50ae
6
+ metadata.gz: 6e9eae526ddf5131d130e4f53063734c79cde4c504941c5112308718a24cbb56aeb6585356313a621bb9786c82d58c8749f0dcf4a2088cb4b6a8d59cb1bb55e4
7
+ data.tar.gz: 3187307e507e10caf0e8107cec9905829206ab037840e5601ad6a7c689d5b3b8388c07b3ab8c509dbe4dd000790349fb2605abe400976cf2cbeca6ad2b84cae3
@@ -1,6 +1,6 @@
1
1
  require "jan/parser"
2
2
 
3
- class Jan
3
+ class Jan < ::String
4
4
  module CheckDigitCalculator
5
5
  module_function
6
6
 
data/lib/jan/parser.rb CHANGED
@@ -1,4 +1,4 @@
1
- class Jan
1
+ class Jan < ::String
2
2
  module Parser
3
3
  module_function
4
4
 
@@ -19,7 +19,7 @@ class Jan
19
19
  end
20
20
 
21
21
  def instore_code?(code)
22
- InstorePrefixes.include?(code[0..1])
22
+ InstoreCodePrefixes.include?(code[0..1])
23
23
  end
24
24
  end
25
25
  end
data/lib/jan/random.rb CHANGED
@@ -1,7 +1,7 @@
1
1
  require "jan/parser"
2
2
  require "jan/check_digit_calculator"
3
3
 
4
- class Jan
4
+ class Jan < ::String
5
5
  module Random
6
6
  module_function
7
7
 
@@ -12,7 +12,7 @@ class Jan
12
12
  end
13
13
 
14
14
  def instore_code(size=13)
15
- build(size - 2, InstorePrefixes.sample)
15
+ build(size - 2, InstoreCodePrefixes.sample)
16
16
  end
17
17
 
18
18
  def build(size, code="")
data/lib/jan/validator.rb CHANGED
@@ -1,7 +1,7 @@
1
1
  require "jan/parser"
2
2
  require "jan/check_digit_calculator"
3
3
 
4
- class Jan
4
+ class Jan < ::String
5
5
  module Validator
6
6
  module_function
7
7
 
data/lib/jan/version.rb CHANGED
@@ -1,3 +1,3 @@
1
- class Jan
2
- VERSION = "0.0.3"
1
+ class Jan < ::String
2
+ VERSION = "0.0.4"
3
3
  end
data/lib/jan.rb CHANGED
@@ -1,35 +1,33 @@
1
- require "jan/version"
2
- require "jan/parser"
3
1
  require "jan/check_digit_calculator"
4
- require "jan/validator"
2
+ require "jan/parser"
5
3
  require "jan/random"
4
+ require "jan/validator"
5
+ require "jan/version"
6
6
 
7
- class Jan
8
- InstorePrefixes = %w(02 20 21 22 23 24 25 26 27 28 29)
9
-
10
- attr_accessor :code
7
+ class Jan < ::String
8
+ InstoreCodePrefixes = %w(02 20 21 22 23 24 25 26 27 28 29)
11
9
 
12
10
  def initialize(code)
13
- @code = code
11
+ super(code.to_s)
14
12
  end
15
13
 
16
14
  def valid?
17
- Validator.validate(@code)
15
+ Validator.validate(self)
18
16
  end
19
17
 
20
18
  def check_digit
21
- Parser.check_digit(@code)
19
+ Parser.check_digit(self)
22
20
  end
23
21
 
24
22
  def even_digits
25
- Parser.even_digits(@code)
23
+ Parser.even_digits(self)
26
24
  end
27
25
 
28
26
  def odd_digits
29
- Parser.odd_digits(@code)
27
+ Parser.odd_digits(self)
30
28
  end
31
29
 
32
30
  def instore_code?
33
- Parser.instore_code?(@code)
31
+ Parser.instore_code?(self)
34
32
  end
35
33
  end
data/spec/jan_spec.rb CHANGED
@@ -1,67 +1,57 @@
1
1
  require "spec_helper"
2
2
 
3
3
  describe Jan do
4
+ describe "#initialize" do
5
+ let(:jan_code){ "4901085089347" }
6
+ subject{ described_class.new(jan_code) }
7
+ it{ is_expected.to be_an_instance_of(described_class) }
8
+ it{ is_expected.to be_a(String) }
9
+ it("should equals to given string"){ is_expected.to eq(jan_code) }
10
+ end
11
+
4
12
  describe "#valid?" do
5
13
  context "valid codes" do
6
- valid_codes.each do |code|
7
- it "#{code} should be valid" do
8
- jan = Jan.new(code)
9
- expect(jan.valid?).to be true
10
- end
14
+ valid_codes.each do |valid_code|
15
+ subject{ described_class.new(valid_code) }
16
+ it("#{valid_code} should be valid"){ is_expected.to be_valid }
11
17
  end
12
18
  end
13
19
 
14
20
  context "invalid codes" do
15
- invalid_codes.each do |code|
16
- it "#{code} should be invalid" do
17
- jan = Jan.new(code)
18
- expect(jan.valid?).to be false
19
- end
21
+ invalid_codes.each do |invalid_code|
22
+ subject{ described_class.new(invalid_code) }
23
+ it("#{invalid_code} should be invalid"){ is_expected.not_to be_valid }
20
24
  end
21
25
  end
22
26
  end
23
27
 
24
28
  describe "#check_digit" do
25
- it "should return last digit" do
26
- jan = Jan.new("4901277241126")
27
- expect(jan.check_digit).to eq(6)
28
- end
29
+ let(:jan){ described_class.new("4901277241126") }
30
+ subject{ jan.check_digit }
31
+ it("should return last digit"){ is_expected.to eq(6) }
29
32
  end
30
33
 
31
34
  describe "#even_digits" do
32
- it "should return digits in even number-th position" do
33
- jan = Jan.new("4901277241126")
34
- expect(jan.even_digits).to eq([9,1,7,2,1,2])
35
- end
35
+ let(:jan){ described_class.new("4901277241126") }
36
+ subject{ jan.even_digits }
37
+ it("should return digits in even number-th position"){ is_expected.to eq([9,1,7,2,1,2]) }
36
38
  end
37
39
 
38
40
  describe "#odd_digits" do
39
- it "should return digits in odd number-th position except check digit" do
40
- jan = Jan.new("4901277241126")
41
- expect(jan.odd_digits).to eq([4,0,2,7,4,1])
42
- end
43
- end
44
-
45
- describe "#instore_code?" do
46
- it "should return digits in odd number-th position except check digit" do
47
- jan = Jan.new("4901277241126")
48
- expect(jan.odd_digits).to eq([4,0,2,7,4,1])
49
- end
41
+ let(:jan){ described_class.new("4901277241126") }
42
+ subject{ jan.odd_digits }
43
+ it("should return digits in odd number-th position except check digit"){ is_expected.to eq([4,0,2,7,4,1]) }
50
44
  end
51
45
 
52
46
  describe "#instore_code?" do
53
47
  context "instore code" do
54
- it "should be true" do
55
- jan = Jan.new("2101085089347")
56
- expect(jan).to be_instore_code
57
- end
48
+ subject{ described_class.new("2101085089347") }
49
+ it("should be true"){ is_expected.to be_instore_code }
58
50
  end
59
51
 
60
52
  context "global code" do
61
- it "should be false" do
62
- jan = Jan.new("4901085089347")
63
- expect(jan).not_to be_instore_code
64
- end
53
+ subject{ described_class.new("4901085089347") }
54
+ it("should be false"){ is_expected.not_to be_instore_code }
65
55
  end
66
56
  end
67
57
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: jan
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.3
4
+ version: 0.0.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - OSA Shunsuke
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-07-14 00:00:00.000000000 Z
11
+ date: 2014-09-18 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler