kontoapi-rails 0.0.3 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
data/Gemfile CHANGED
@@ -1,7 +1,7 @@
1
1
  source "http://rubygems.org"
2
2
 
3
3
  gem "rails", ">= 3.0.0"
4
- gem 'kontoapi-ruby'
4
+ gem 'kontoapi-ruby', ">= 0.2.0"
5
5
 
6
6
  group :development do
7
7
  gem "rspec", "~> 2.3.0"
@@ -28,7 +28,7 @@ GEM
28
28
  activemodel (= 3.0.7)
29
29
  activesupport (= 3.0.7)
30
30
  activesupport (3.0.7)
31
- addressable (2.2.5)
31
+ addressable (2.2.7)
32
32
  arel (2.0.9)
33
33
  builder (2.1.2)
34
34
  diff-lcs (1.1.2)
@@ -40,7 +40,7 @@ GEM
40
40
  bundler (~> 1.0.0)
41
41
  git (>= 1.2.5)
42
42
  rake
43
- kontoapi-ruby (0.1.0)
43
+ kontoapi-ruby (0.2.0)
44
44
  addressable
45
45
  yajl-ruby
46
46
  mail (2.2.17)
@@ -82,7 +82,7 @@ GEM
82
82
  treetop (1.4.9)
83
83
  polyglot (>= 0.3.1)
84
84
  tzinfo (0.3.26)
85
- yajl-ruby (0.8.2)
85
+ yajl-ruby (1.1.0)
86
86
 
87
87
  PLATFORMS
88
88
  ruby
@@ -90,7 +90,7 @@ PLATFORMS
90
90
  DEPENDENCIES
91
91
  bundler (~> 1.0.0)
92
92
  jeweler (~> 1.5.2)
93
- kontoapi-ruby
93
+ kontoapi-ruby (>= 0.2.0)
94
94
  rails (>= 3.0.0)
95
95
  rcov
96
96
  rspec (~> 2.3.0)
@@ -43,6 +43,24 @@ Then, in one of the models you want to validate bank account data with:
43
43
  # :invalid <-- if it is invalid
44
44
  # :timeout <-- if :on_timeout is set to :fail and the api call timed out
45
45
  validates_account_data
46
+
47
+ # IBAN validation
48
+ # Check if the given IBAN is valid
49
+ # Takes any of the following options (the defaults are shown here):
50
+ # :allow_nil => true, <-- don't validate if nil
51
+ # :on_timeout => :ignore <-- do nothing if a timeout occurs, others:
52
+ # :fail <-- throw a validation error
53
+ # :retry <-- (not supported yet)
54
+ validates_iban :iban
55
+
56
+ # BIC validation
57
+ # Check if the given BIC exists
58
+ # Takes any of the following options (the defaults are shown here):
59
+ # :allow_nil => true, <-- don't validate if nil
60
+ # :on_timeout => :ignore <-- do nothing if a timeout occurs, others:
61
+ # :fail <-- throw a validation error
62
+ # :retry <-- (not supported yet)
63
+ validates_bic :bic
46
64
 
47
65
  end
48
66
 
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.0.3
1
+ 0.2.0
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = "kontoapi-rails"
8
- s.version = "0.0.3"
8
+ s.version = "0.2.0"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Jan Schwenzien"]
12
- s.date = "2012-04-05"
12
+ s.date = "2012-04-08"
13
13
  s.description = "This library is a wrapper for the Konto API (https://www.kontoapi.de/). It provides a validation method for models that checks if a given account number and bank code represent a valid combination."
14
14
  s.email = "jan@schwenzien.org"
15
15
  s.extra_rdoc_files = [
@@ -51,14 +51,14 @@ Gem::Specification.new do |s|
51
51
 
52
52
  if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
53
53
  s.add_runtime_dependency(%q<rails>, [">= 3.0.0"])
54
- s.add_runtime_dependency(%q<kontoapi-ruby>, [">= 0"])
54
+ s.add_runtime_dependency(%q<kontoapi-ruby>, [">= 0.2.0"])
55
55
  s.add_development_dependency(%q<rspec>, ["~> 2.3.0"])
56
56
  s.add_development_dependency(%q<bundler>, ["~> 1.0.0"])
57
57
  s.add_development_dependency(%q<jeweler>, ["~> 1.5.2"])
58
58
  s.add_development_dependency(%q<rcov>, [">= 0"])
59
59
  else
60
60
  s.add_dependency(%q<rails>, [">= 3.0.0"])
61
- s.add_dependency(%q<kontoapi-ruby>, [">= 0"])
61
+ s.add_dependency(%q<kontoapi-ruby>, [">= 0.2.0"])
62
62
  s.add_dependency(%q<rspec>, ["~> 2.3.0"])
63
63
  s.add_dependency(%q<bundler>, ["~> 1.0.0"])
64
64
  s.add_dependency(%q<jeweler>, ["~> 1.5.2"])
@@ -66,7 +66,7 @@ Gem::Specification.new do |s|
66
66
  end
67
67
  else
68
68
  s.add_dependency(%q<rails>, [">= 3.0.0"])
69
- s.add_dependency(%q<kontoapi-ruby>, [">= 0"])
69
+ s.add_dependency(%q<kontoapi-ruby>, [">= 0.2.0"])
70
70
  s.add_dependency(%q<rspec>, ["~> 2.3.0"])
71
71
  s.add_dependency(%q<bundler>, ["~> 1.0.0"])
72
72
  s.add_dependency(%q<jeweler>, ["~> 1.5.2"])
@@ -42,6 +42,46 @@ module KontoAPI
42
42
  end
43
43
  before_save :autocomplete_bank_name
44
44
  end
45
+
46
+ def validates_iban(field, options={})
47
+ options.symbolize_keys!
48
+ options.reverse_merge!( :allow_nil => true, :on_timeout => :ignore )
49
+ define_method :iban_validation do
50
+ value = send(field)
51
+ return true if options[:allow_nil] && value.nil?
52
+ begin
53
+ record.errors.add(field, :invalid) unless KontoAPI::valid?( :iban => value )
54
+ rescue Timeout::Error => ex
55
+ case options[:on_timeout]
56
+ when :fail
57
+ record.errors.add(field, :timeout)
58
+ when :ignore
59
+ # nop
60
+ end
61
+ end
62
+ end
63
+ validate :iban_validation
64
+ end
65
+
66
+ def validates_bic(field, options={})
67
+ options.symbolize_keys!
68
+ options.reverse_merge!( :allow_nil => true, :on_timeout => :ignore )
69
+ define_method :bic_validation do
70
+ value = send(field)
71
+ return true if options[:allow_nil] && value.nil?
72
+ begin
73
+ record.errors.add(field, :invalid) unless KontoAPI::valid?( :bic => send(field) )
74
+ rescue Timeout::Error => ex
75
+ case options[:on_timeout]
76
+ when :fail
77
+ record.errors.add(field, :timeout)
78
+ when :ignore
79
+ # nop
80
+ end
81
+ end
82
+ end
83
+ validate :bic_validation
84
+ end
45
85
  end
46
86
 
47
87
  end
@@ -7,7 +7,7 @@ module KontoAPI
7
7
  account_number = record.send(:"#{options[:account_number_field]}")
8
8
  bank_code = record.send(:"#{options[:bank_code_field]}")
9
9
  return true if options[:allow_nil] && (account_number.nil? || bank_code.nil?)
10
- record.errors.add(:"#{options[:account_number_field]}", :invalid) unless KontoAPI::valid?(account_number, bank_code)
10
+ record.errors.add(:"#{options[:account_number_field]}", :invalid) unless KontoAPI::valid?( :ktn => account_number, :blz => bank_code )
11
11
  rescue Timeout::Error => ex
12
12
  case options[:on_timeout]
13
13
  when :fail
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: kontoapi-rails
3
3
  version: !ruby/object:Gem::Version
4
- hash: 25
4
+ hash: 23
5
5
  prerelease:
6
6
  segments:
7
7
  - 0
8
+ - 2
8
9
  - 0
9
- - 3
10
- version: 0.0.3
10
+ version: 0.2.0
11
11
  platform: ruby
12
12
  authors:
13
13
  - Jan Schwenzien
@@ -15,7 +15,7 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2012-04-05 00:00:00 Z
18
+ date: 2012-04-08 00:00:00 Z
19
19
  dependencies:
20
20
  - !ruby/object:Gem::Dependency
21
21
  version_requirements: &id001 !ruby/object:Gem::Requirement
@@ -39,10 +39,12 @@ dependencies:
39
39
  requirements:
40
40
  - - ">="
41
41
  - !ruby/object:Gem::Version
42
- hash: 3
42
+ hash: 23
43
43
  segments:
44
44
  - 0
45
- version: "0"
45
+ - 2
46
+ - 0
47
+ version: 0.2.0
46
48
  name: kontoapi-ruby
47
49
  prerelease: false
48
50
  type: :runtime