san 1.3.0 → 1.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.
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 1a3d2c1178a921555a0b01449b09dbda1181194a
4
+ data.tar.gz: b32c554b8b5d901014b40d7b2855e3cbe1c375cf
5
+ SHA512:
6
+ metadata.gz: e92218081172f5381e445f06119a4f61f1cda798298e68e4844474211f47b96a273923219add412d00e1aa39aad4f336188b234d9cb409c7fd6372045cc23df3
7
+ data.tar.gz: b668ce99015a0c615edd7b0e6cd22176a4f8d8878781c5d66cd00b1ef17b4bf2dcfedd0309c38c090fa4ed5416ed92bb8c4bcb520a11e0c69fbb128000e0d995
data/CHANGELOG CHANGED
@@ -1,3 +1,9 @@
1
+ v1.4 (16th July 2017)
2
+ - Updated packaging to work well with ruby 1.9.3 to 2.4
3
+
4
+ v1.3 (15th September 2009)
5
+ - Calculate the correct check digit when converting to a GLN
6
+
1
7
  v1.2 (25th November 2008)
2
8
  - Add functions for conversion to a US and UK-based GLN
3
9
 
@@ -0,0 +1,24 @@
1
+ A small class for generating and validating Standard Address Numbers (SAN),
2
+ a unique global identifier used in the book and publishing industries.
3
+
4
+ # Installation
5
+
6
+ gem install san
7
+
8
+ # Usage
9
+
10
+ SAN.new("9013725").valid?
11
+ => true
12
+
13
+ SAN.valid?("9013725")
14
+ => true
15
+
16
+ SAN.valid?("9013726")
17
+ => false
18
+
19
+ SAN.complete("901372")
20
+ => "9013725"
21
+
22
+ # Further Reading
23
+
24
+ - https://www.myidentifiers.com.au/san/about
data/lib/san.rb CHANGED
@@ -4,7 +4,7 @@ class SAN
4
4
 
5
5
  class Version #:nodoc:
6
6
  Major = 1
7
- Minor = 3
7
+ Minor = 4
8
8
  Tiny = 0
9
9
 
10
10
  String = [Major, Minor, Tiny].join('.')
@@ -50,7 +50,6 @@ class SAN
50
50
  six_digit_san = six_digit_san.to_s
51
51
  return nil unless six_digit_san.length == 6 && six_digit_san.match(/\d{6}/)
52
52
 
53
- #sum = (0..5).to_a.sum { |i| six_digit_san[i,1].to_i * (7-i) }
54
53
  arr = (0..5).to_a.collect { |i| six_digit_san[i,1].to_i * (7-i) }
55
54
  sum = arr.inject { |sum, n| sum + n }
56
55
  check = 11 - (sum % 11)
@@ -1,45 +1,42 @@
1
- $LOAD_PATH << File.dirname(__FILE__) + "/../lib"
2
-
3
- require 'spec'
4
1
  require 'san'
5
2
 
6
3
  describe "The SAN class" do
7
4
  it "should identify a valid SAN" do
8
- SAN.new("9013725").valid?.should be_true
5
+ expect(SAN.new("9013725").valid?).to be_truthy
9
6
  end
10
7
 
11
8
  it "should identify a valid SAN" do
12
- SAN.valid?("9013725").should be_true
13
- SAN.valid?(9013725).should be_true
14
- SAN.valid?("902865X").should be_true
9
+ expect(SAN.valid?("9013725")).to be_truthy
10
+ expect(SAN.valid?(9013725)).to be_truthy
11
+ expect(SAN.valid?("902865X")).to be_truthy
15
12
  end
16
13
 
17
14
  it "should identify an invalid SAN" do
18
- SAN.valid?(nil).should be_false
19
- SAN.valid?("902865").should be_false
20
- SAN.valid?(Array).should be_false
21
- SAN.valid?(Array.new).should be_false
15
+ expect(SAN.valid?(nil)).to be_falsey
16
+ expect(SAN.valid?("902865")).to be_falsey
17
+ expect(SAN.valid?(Array)).to be_falsey
18
+ expect(SAN.valid?(Array.new)).to be_falsey
22
19
  end
23
20
 
24
21
  it "should calculate a SAN check digit correctly" do
25
- SAN.complete("901372").should eql("9013725")
26
- SAN.complete(901372).should eql("9013725")
22
+ expect(SAN.complete("901372")).to eql("9013725")
23
+ expect(SAN.complete(901372)).to eql("9013725")
27
24
  end
28
25
 
29
26
  it "should correctly convert to a US based GLN" do
30
27
  # valid
31
- SAN.new("9013725").to_us_gln.should eql("0799999013725")
32
- SAN.new("9029761").to_us_gln.should eql("0799999029764")
28
+ expect(SAN.new("9013725").to_us_gln).to eql("0799999013725")
29
+ expect(SAN.new("9029761").to_us_gln).to eql("0799999029764")
33
30
 
34
31
  # invalid
35
- SAN.new("9013724").to_us_gln.should be_nil
32
+ expect(SAN.new("9013724").to_us_gln).to be_nil
36
33
  end
37
34
 
38
35
  it "should correctly convert to a UK based GLN" do
39
36
  # valid
40
- SAN.new("0159263").to_uk_gln.should eql("5030670159260")
37
+ expect(SAN.new("0159263").to_uk_gln).to eql("5030670159260")
41
38
 
42
39
  # invalid
43
- SAN.new("9013724").to_uk_gln.should be_nil
40
+ expect(SAN.new("9013724").to_uk_gln).to be_nil
44
41
  end
45
42
  end
metadata CHANGED
@@ -1,69 +1,94 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: san
3
- version: !ruby/object:Gem::Version
4
- version: 1.3.0
3
+ version: !ruby/object:Gem::Version
4
+ version: '1.4'
5
5
  platform: ruby
6
- authors:
6
+ authors:
7
7
  - James Healy
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
-
12
- date: 2009-09-16 00:00:00 +10:00
13
- default_executable:
14
- dependencies:
15
- - !ruby/object:Gem::Dependency
11
+ date: 2017-07-16 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
16
14
  name: ean13
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ">="
18
+ - !ruby/object:Gem::Version
19
+ version: '0'
17
20
  type: :runtime
18
- version_requirement:
19
- version_requirements: !ruby/object:Gem::Requirement
20
- requirements:
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ">="
25
+ - !ruby/object:Gem::Version
26
+ version: '0'
27
+ - !ruby/object:Gem::Dependency
28
+ name: rake
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
21
31
  - - ">="
22
- - !ruby/object:Gem::Version
23
- version: "0"
24
- version:
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ">="
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: rspec
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: '3.0'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: '3.0'
25
55
  description: a (very) small library for working with Standard Address Numbers.
26
56
  email: jimmy@deefa.com
27
57
  executables: []
28
-
29
58
  extensions: []
30
-
31
59
  extra_rdoc_files: []
32
-
33
- files:
34
- - lib/san.rb
35
- - MIT-LICENSE
36
- - README.rdoc
60
+ files:
37
61
  - CHANGELOG
38
- has_rdoc: true
39
- homepage: http://github.com/yob/san/tree/master
40
- licenses: []
41
-
62
+ - MIT-LICENSE
63
+ - README.markdown
64
+ - lib/san.rb
65
+ - spec/san_spec.rb
66
+ homepage: http://github.com/yob/san
67
+ licenses:
68
+ - MIT
69
+ metadata: {}
42
70
  post_install_message:
43
- rdoc_options:
44
- - --title
71
+ rdoc_options:
72
+ - "--title"
45
73
  - SAN
46
- - --line-numbers
47
- require_paths:
74
+ - "--line-numbers"
75
+ require_paths:
48
76
  - lib
49
- required_ruby_version: !ruby/object:Gem::Requirement
50
- requirements:
77
+ required_ruby_version: !ruby/object:Gem::Requirement
78
+ requirements:
51
79
  - - ">="
52
- - !ruby/object:Gem::Version
53
- version: "0"
54
- version:
55
- required_rubygems_version: !ruby/object:Gem::Requirement
56
- requirements:
80
+ - !ruby/object:Gem::Version
81
+ version: 1.9.3
82
+ required_rubygems_version: !ruby/object:Gem::Requirement
83
+ requirements:
57
84
  - - ">="
58
- - !ruby/object:Gem::Version
59
- version: "0"
60
- version:
85
+ - !ruby/object:Gem::Version
86
+ version: '0'
61
87
  requirements: []
62
-
63
- rubyforge_project: san
64
- rubygems_version: 1.3.5
88
+ rubyforge_project:
89
+ rubygems_version: 2.6.11
65
90
  signing_key:
66
- specification_version: 3
91
+ specification_version: 4
67
92
  summary: a (very) small library for working with Standard Address Numbers.
68
- test_files:
93
+ test_files:
69
94
  - spec/san_spec.rb
@@ -1,21 +0,0 @@
1
- A small class for generating and validating Standard Address Numbers (SAN),
2
- a unique global identifier used in the book and publishing industries.
3
-
4
- = Usage
5
-
6
- SAN.new("9013725").valid?
7
- => true
8
-
9
- SAN.valid?("9013725")
10
- => true
11
-
12
- SAN.valid?("9013726")
13
- => false
14
-
15
- SAN.complete("901372")
16
- => "9013725"
17
-
18
- = Further Reader
19
-
20
- - http://www.bowker.com/index.php/component/content/article/3
21
- - http://www.thorpe.com.au/services/services_san.htm