divISOr 0.0.1 → 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.0.1
1
+ 1.0.0
data/divISOr.gemspec CHANGED
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{divISOr}
8
- s.version = "0.0.1"
8
+ s.version = "1.0.0"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["David Henry and Alberto Pe\303\261a"]
12
- s.date = %q{2011-06-28}
12
+ s.date = %q{2011-06-29}
13
13
  s.description = %q{Validate and look up functionality for ISO standards}
14
14
  s.email = %q{dave_henry@lyagushka.co.uk}
15
15
  s.extra_rdoc_files = [
@@ -29,6 +29,7 @@ Gem::Specification.new do |s|
29
29
  "divISOr.gemspec",
30
30
  "lib/divISOr.rb",
31
31
  "lib/divISOr/divISOr.rb",
32
+ "lib/divISOr/hash_wrapper.rb",
32
33
  "lib/divISOr/iso.rb",
33
34
  "lib/divISOr/iso10383.rb",
34
35
  "lib/divISOr/iso3166.rb",
@@ -37,7 +38,9 @@ Gem::Specification.new do |s|
37
38
  "lib/divISOr/iso_data/3166",
38
39
  "lib/divISOr/iso_data/4217",
39
40
  "lib/divISOr/iso_records.rb",
41
+ "spec/divISOr/iso10383_spec.rb",
40
42
  "spec/divISOr/iso3166_spec.rb",
43
+ "spec/divISOr/iso4217_spec.rb",
41
44
  "spec/divISOr/iso_records_spec.rb",
42
45
  "spec/divISOr_spec.rb",
43
46
  "spec/iso_data/complex_data",
@@ -1,14 +1,44 @@
1
1
  class DivISOr
2
2
  def self.validate_iso3166(*args)
3
- ISO3166.new.validate(*args)
3
+ ISO3166::Codes.new.validate(*args)
4
4
  end
5
5
 
6
6
  def self.validate_iso4217(*args)
7
- ISO4217.new.validate(*args)
7
+ ISO4217::Codes.new.validate(*args)
8
8
  end
9
9
 
10
10
  def self.validate_iso10383(*args)
11
- ISO10383.new.validate(*args)
11
+ ISO10383::Codes.new.validate(*args)
12
12
  end
13
13
 
14
+ def self.iso4217(*args)
15
+ self.all(ISO4217, args)
16
+ end
17
+
18
+ def self.iso3166(*args)
19
+ self.all(ISO3166, args).first
20
+ end
21
+
22
+ def self.iso10383(*args)
23
+ self.all(ISO10383, args).first
24
+ end
25
+
26
+ def self.list_iso4217
27
+ self.all(ISO4217)
28
+ end
29
+
30
+ def self.list_iso3166
31
+ self.all(ISO3166)
32
+ end
33
+
34
+ def self.list_iso10383
35
+ self.all(ISO10383)
36
+ end
37
+
38
+ private
39
+ def self.all(object, args=nil)
40
+ object::Codes.new.all(*args) do |record|
41
+ object.new(record)
42
+ end
43
+ end
14
44
  end
@@ -0,0 +1,18 @@
1
+ module HashWrapper
2
+ def self.included(base)
3
+ base.send(:attr_reader,:data)
4
+ end
5
+
6
+ def initialize(data)
7
+ @data = data
8
+ end
9
+
10
+ def ==(object)
11
+ @data == object.data
12
+ end
13
+
14
+ def method_missing(method, *args, &block)
15
+ super unless self.class::FIELDS.include?(method)
16
+ data[method].to_s
17
+ end
18
+ end
data/lib/divISOr/iso.rb CHANGED
@@ -1,3 +1,4 @@
1
+ require 'ruby-debug'
1
2
  module ISO
2
3
  def initialize
3
4
  @iso_records = ISORecords.new self.file_data
@@ -7,6 +8,12 @@ module ISO
7
8
  values(field).include?(value.upcase)
8
9
  end
9
10
 
11
+ def all(value, field=:code)
12
+ @iso_records.all(value, field).map do |record|
13
+ yield record
14
+ end
15
+ end
16
+
10
17
  private
11
18
  def values(field)
12
19
  @iso_records.values_for(field)
@@ -1,5 +1,11 @@
1
1
  class ISO10383
2
- PATH = '/iso_data/10383'
3
- include ISO
2
+ include HashWrapper
3
+
4
+ FIELDS = [:code, :description, :currency, :country, :city, :acr]
5
+
6
+ class Codes
7
+ PATH = '/iso_data/10383'
8
+ include ISO
9
+ end
4
10
  end
5
11
 
@@ -1,4 +1,10 @@
1
1
  class ISO3166
2
- PATH = '/iso_data/3166'
3
- include ISO
2
+ include HashWrapper
3
+
4
+ FIELDS = [:code, :country]
5
+
6
+ class Codes
7
+ PATH = '/iso_data/3166'
8
+ include ISO
9
+ end
4
10
  end
@@ -1,4 +1,10 @@
1
1
  class ISO4217
2
- PATH = '/iso_data/4217'
3
- include ISO
2
+ include HashWrapper
3
+
4
+ FIELDS = [:code, :numeric_code, :country, :currency]
5
+
6
+ class Codes
7
+ PATH = '/iso_data/4217'
8
+ include ISO
9
+ end
4
10
  end