rus_bank 0.7.0 → 0.8.0

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: 051a9c51a7ac2666d39d4a7f9988c40dc5578385
4
- data.tar.gz: 1ab9c9f0eef089704fe62818d45b036934b4e163
3
+ metadata.gz: 0a79896c9ff56fec5a5fa2afa206fe2d43f11c50
4
+ data.tar.gz: f4d218426c51d95219fc3d147afb058763adefb1
5
5
  SHA512:
6
- metadata.gz: f5bbfc4dc442b293e096d7c9dcfd7098db3c91e5df28f7959d4eca82dc0e292c364e15749ee42115032bfa1037fe19761fd77987167e40ed6e274564312aab87
7
- data.tar.gz: 4a18725ed9a9d25d2e35f951a091f910323f7ddb0565de5efd46d908658713576db4cb512e12452420f59e254d6b4d3b72ec5080fa4aae0134bf208d26711373
6
+ metadata.gz: 506dab7f3e70803cfa907a6eab56e145afce6eee7bebd3aff0b441fc507fa70d24d091086ead7d66b4adeffe6a89e8cc76487d5441f4c162532bd6b68ec22aea
7
+ data.tar.gz: cd555655d1883acd2529930cb44f86d21380a587cc945269c2fa76770827ee8924f2889cb69f715cff658e4775ff68b5199efd1a12fe044df6410e715a7db8d1
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.7.0
1
+ 0.8.0
data/lib/rus_bank.rb CHANGED
@@ -33,43 +33,29 @@ class RusBank
33
33
  def SearchByRegionCodeXML(region_code)
34
34
  params = { "RegCode" => region_code }
35
35
  response = call(:search_by_region_code_xml, params)
36
- if response.nil?
37
- nil
38
- else
39
- response[:credit_org][:enum_credits]
40
- end
36
+ get_array(response, :credit_org, :enum_credits)
41
37
  end
42
38
 
43
39
  def SearchByNameXML(bank_name) # Метод возвращает nil, либо массив хэшей
44
40
  params = { "NamePart" => bank_name }
45
41
  response = call(:search_by_name_xml, params)
46
- if response[:credit_org][:enum_credits].nil?
47
- nil
48
- else
49
- if not response[:credit_org][:enum_credits].instance_of?(Array) # Если найдена одна запись, возвращается единичный хэш,
50
- [response[:credit_org][:enum_credits]] # если более одной, то массив хешей,
51
- else # поэтому одну запись преобразуем к массиву из одного хэша.
52
- response[:credit_org][:enum_credits]
53
- end
54
- end
42
+ get_array(response, :credit_org, :enum_credits)
43
+ end
44
+
45
+ def GetOfficesXML(int_code)
46
+ params = { "IntCode" => int_code }
47
+ response = call(:get_offices_xml, params)
48
+ get_array(response, :co_offices, :offices)
55
49
  end
56
50
 
57
51
  def EnumBicXML
58
52
  response = call(:enum_bic_xml)
59
- if response.nil?
60
- nil
61
- else
62
- response[:enum_bic][:bic]
63
- end
53
+ get_array(response, :enum_bic, :bic)
64
54
  end
65
55
 
66
56
  def RegionsEnumXML
67
57
  response = call(:regions_enum_xml)
68
- if response.nil?
69
- nil
70
- else
71
- response[:regions_enum][:rgid]
72
- end
58
+ get_array(response, :regions_enum, :rgid)
73
59
  end
74
60
 
75
61
  def CreditInfoByIntCodeXML(internal_code)
@@ -78,7 +64,7 @@ class RusBank
78
64
  if response.nil?
79
65
  nil
80
66
  else
81
- response[:credit_org_info][:co]
67
+ response[:credit_org_info]
82
68
  end
83
69
  end
84
70
 
@@ -90,4 +76,20 @@ class RusBank
90
76
  response
91
77
  end
92
78
  end
79
+
80
+ private
81
+
82
+ def get_array(response, *params)
83
+ node = params.inject(response){|inner_node, param| inner_node[param]} # Вытягиваем вложенные ноды
84
+ if node.nil?
85
+ nil
86
+ else
87
+ if not node.instance_of?(Array) # Если найдена одна запись, возвращается единичный хэш,
88
+ [node] # если более одной, то массив хешей,
89
+ else # поэтому одну запись преобразуем к массиву из одного хэша.
90
+ node
91
+ end
92
+ end
93
+ end
94
+
93
95
  end
data/rus_bank.gemspec CHANGED
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = "rus_bank"
8
- s.version = "0.7.0"
8
+ s.version = "0.8.0"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["wilDAlex"]
12
- s.date = "2013-12-23"
12
+ s.date = "2013-12-24"
13
13
  s.description = "\u{41d}\u{430}\u{431}\u{43e}\u{440} ruby-\u{43c}\u{435}\u{442}\u{43e}\u{434}\u{43e}\u{432} \u{434}\u{43b}\u{44f} \u{440}\u{430}\u{431}\u{43e}\u{442}\u{44b} \u{441} \u{441}\u{435}\u{440}\u{432}\u{438}\u{441}\u{430}\u{43c}\u{438} \u{426}\u{411} \u{420}\u{424}"
14
14
  s.email = "some@wild-x.ru"
15
15
  s.extra_rdoc_files = [
@@ -1,23 +1,21 @@
1
1
  require "../test/test_helper"
2
2
 
3
3
  class TestRusBank < Test::Unit::TestCase
4
- #should "probably rename this file and start testing for real" do
5
- # flunk "hey buddy, you should probably rename this file and start testing for real"
6
- #end
7
- #
4
+
5
+ VALID_BIC = "044585216"
6
+ INVALID_BIC = "0445852169999"
7
+ VALID_INT_CODE = "450000650"
8
+ INVALID_INT_CODE = "450000650999999"
9
+ VALID_REG_NUMBER = "316"
10
+ INVALID_REG_NUMBER = "289375237580009"
11
+ VALID_REGION = "16"
12
+ INVALID_REGION = "999"
13
+ INVALID_ORG_NAME = "djhgsjdlksl"
14
+ VALID_ORG_NAME = "ХКФ БАНК"
15
+
8
16
  context "RusBank" do
9
17
  setup do
10
18
  @cbr = RusBank.new
11
- VALID_BIC = "044585216"
12
- INVALID_BIC = "0445852169999"
13
- VALID_INT_CODE = "450000650"
14
- INVALID_INT_CODE = "450000650999999"
15
- VALID_REG_NUMBER = "316"
16
- INVALID_REG_NUMBER = "289375237580009"
17
- VALID_REGION = "16"
18
- INVALID_REGION = "999"
19
- INVALID_ORG_NAME = "djhgsjdlksl"
20
- VALID_ORG_NAME = "ХКФ БАНК"
21
19
  end
22
20
 
23
21
  should "Service return implemented methods" do
@@ -69,10 +67,16 @@ class TestRusBank < Test::Unit::TestCase
69
67
  assert_equal(nil, @cbr.SearchByNameXML(INVALID_ORG_NAME), "Should return nil if value not found")
70
68
  end
71
69
 
70
+ should ":get_offices_xml returns array of elements" do
71
+ assert(@cbr.GetOfficesXML(VALID_INT_CODE).instance_of?(Array), "This should be array")
72
+ assert(@cbr.GetOfficesXML(VALID_INT_CODE).length > 2, "This should return more than 2 offices")
73
+ assert_equal(nil, @cbr.GetOfficesXML(INVALID_INT_CODE), "Should return nil if value not found")
74
+ end
75
+
72
76
  should ":credit_info_by_int_code_xml return correct bank" do
73
- assert_equal(VALID_REG_NUMBER, @cbr.CreditInfoByIntCodeXML(VALID_INT_CODE)[:reg_number])
74
- assert_equal(VALID_ORG_NAME, @cbr.CreditInfoByIntCodeXML(VALID_INT_CODE)[:org_name])
75
- assert_equal(VALID_BIC, @cbr.CreditInfoByIntCodeXML(VALID_INT_CODE)[:bic])
77
+ assert_equal(VALID_REG_NUMBER, @cbr.CreditInfoByIntCodeXML(VALID_INT_CODE)[:co][:reg_number])
78
+ assert_equal(VALID_ORG_NAME, @cbr.CreditInfoByIntCodeXML(VALID_INT_CODE)[:co][:org_name])
79
+ assert_equal(VALID_BIC, @cbr.CreditInfoByIntCodeXML(VALID_INT_CODE)[:co][:bic])
76
80
  assert_equal(nil, @cbr.CreditInfoByIntCodeXML(INVALID_INT_CODE), "Should return nil if value not found")
77
81
  end
78
82
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rus_bank
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.7.0
4
+ version: 0.8.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - wilDAlex
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2013-12-23 00:00:00.000000000 Z
11
+ date: 2013-12-24 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: savon