rus_bank 0.9.2 → 0.9.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.rdoc +33 -11
- data/Rakefile +1 -1
- data/VERSION +1 -1
- data/lib/rus_bank.rb +39 -0
- data/rus_bank.gemspec +3 -3
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 6c9026cfb216253a37a33cfc069e1a1efaf4f15c
|
4
|
+
data.tar.gz: eef376473f7cd04e43af493fde4d3b2fd0f04028
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ea3d9419ea6c3c3b4896437607d29ca204ad44f2773968e5c56eef085bcc90b344cb7e13d0390be33b539441ea8c6c245375fad51d9dc3daa80b3cb707448a9b
|
7
|
+
data.tar.gz: 2e715a8932508af962134f9b0fec7b485f5f5f44563c93564ab5076d7534638ef972e4bc1cb05b1ce7d34d93e4805cf03b0185983f21acde053c00d0559ed3ce
|
data/README.rdoc
CHANGED
@@ -1,16 +1,38 @@
|
|
1
1
|
= rus_bank
|
2
2
|
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
3
|
+
Руби-интерфейс к API Банка России.
|
4
|
+
|
5
|
+
Установка
|
6
|
+
```
|
7
|
+
$ gem install rus_bank
|
8
|
+
```
|
9
|
+
Либо добавить в gemfile
|
10
|
+
```
|
11
|
+
gem 'rus_bank'
|
12
|
+
```
|
13
|
+
|
14
|
+
Пример использования
|
15
|
+
```
|
16
|
+
require 'rus_bank'
|
17
|
+
|
18
|
+
bank = RusBank.new
|
19
|
+
bank.BicToIntCode(:your_bic)
|
20
|
+
```
|
21
|
+
Описание доступных методов тут - http://rubydoc.info/gems/rus_bank/RusBank
|
22
|
+
Можно вызывать не реализованные в геме методы
|
23
|
+
```
|
24
|
+
require 'rus_bank'
|
25
|
+
|
26
|
+
bank = RusBank.new
|
27
|
+
bank.operations # Список доступных для вызова методов, включая не реализованные и те, что могут появиться на момент вызова.
|
28
|
+
bank.call(:method, :params) # где :method - нужный метод, :params - хеш передаваемых методу параметров.
|
29
|
+
```
|
30
|
+
|
31
|
+
Надо сказать, что при каждом вызове метода гема 'дергается' внешний сервис. Это не лучший подход с точки зрения производительности,
|
32
|
+
траффика и вообще ЦБ просит так не поступать. Было бы логичным иметь локальную базу для кеширования получаемой информации и
|
33
|
+
обращаться к внешнему сервису только по мере необходимости.
|
34
|
+
Гем, реализующий данную функцию для Rails - https://github.com/wildDAlex/rus_bank_rails
|
35
|
+
|
14
36
|
|
15
37
|
== Copyright
|
16
38
|
|
data/Rakefile
CHANGED
@@ -19,7 +19,7 @@ Jeweler::Tasks.new do |gem|
|
|
19
19
|
gem.license = "MIT"
|
20
20
|
gem.summary = "Ruby-интерфейс для получения информации по российским банкам"
|
21
21
|
gem.description = "Набор ruby-методов для работы с сервисами ЦБ РФ"
|
22
|
-
gem.email = "
|
22
|
+
gem.email = "wilddalex@wild-x.ru"
|
23
23
|
gem.authors = ["wilDAlex"]
|
24
24
|
# dependencies defined in Gemfile
|
25
25
|
end
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.9.
|
1
|
+
0.9.3
|
data/lib/rus_bank.rb
CHANGED
@@ -6,64 +6,100 @@ class RusBank
|
|
6
6
|
@client = Savon.client(wsdl: "http://www.cbr.ru/CreditInfoWebServ/CreditOrgInfo.asmx?WSDL")
|
7
7
|
end
|
8
8
|
|
9
|
+
##
|
10
|
+
# Возвращает полный список доступных для метода call методов
|
11
|
+
|
9
12
|
def operations
|
10
13
|
@client.operations
|
11
14
|
end
|
12
15
|
|
16
|
+
##
|
17
|
+
# Возвращает внутренний код банка по БИК
|
18
|
+
|
13
19
|
def BicToIntCode(bic)
|
14
20
|
params = { "BicCode" => bic }
|
15
21
|
call(:bic_to_int_code, params)
|
16
22
|
end
|
17
23
|
|
24
|
+
##
|
25
|
+
# Возвращает регистрационный номер банка по БИК
|
26
|
+
|
18
27
|
def BicToRegNumber(bic)
|
19
28
|
params = { "BicCode" => bic }
|
20
29
|
call(:bic_to_reg_number, params)
|
21
30
|
end
|
22
31
|
|
32
|
+
##
|
33
|
+
# Возвращает внутренний код банка по регистрационному номеру
|
34
|
+
|
23
35
|
def RegNumToIntCode(reg_num)
|
24
36
|
params = { "RegNumber" => reg_num }
|
25
37
|
call(:reg_num_to_int_code, params)
|
26
38
|
end
|
27
39
|
|
40
|
+
##
|
41
|
+
# Возвращает регистрационный номер по внутреннему номеру
|
42
|
+
|
28
43
|
def IntCodeToRegNum(int_code)
|
29
44
|
params = { "IntNumber" => int_code }
|
30
45
|
call(:int_code_to_reg_num, params)
|
31
46
|
end
|
32
47
|
|
48
|
+
##
|
49
|
+
# Список банков по коду региона
|
50
|
+
|
33
51
|
def SearchByRegionCode(region_code)
|
34
52
|
params = { "RegCode" => region_code }
|
35
53
|
response = call(:search_by_region_code_xml, params)
|
36
54
|
get_array(response, :credit_org, :enum_credits)
|
37
55
|
end
|
38
56
|
|
57
|
+
##
|
58
|
+
# Поиск по названию банка
|
59
|
+
|
39
60
|
def SearchByName(bank_name) # Метод возвращает nil, либо массив хэшей
|
40
61
|
params = { "NamePart" => bank_name }
|
41
62
|
response = call(:search_by_name_xml, params)
|
42
63
|
get_array(response, :credit_org, :enum_credits)
|
43
64
|
end
|
44
65
|
|
66
|
+
##
|
67
|
+
# Возвращает список отделений по внутреннему номеру банка
|
68
|
+
|
45
69
|
def GetOffices(int_code)
|
46
70
|
params = { "IntCode" => int_code }
|
47
71
|
response = call(:get_offices_xml, params)
|
48
72
|
get_array(response, :co_offices, :offices)
|
49
73
|
end
|
50
74
|
|
75
|
+
##
|
76
|
+
# Список филиалов в указанном регионе
|
77
|
+
|
51
78
|
def GetOfficesByRegion(region_code)
|
52
79
|
params = { "RegCode" => region_code }
|
53
80
|
response = call(:get_offices_by_region_xml, params)
|
54
81
|
get_array(response, :co_offices, :offices)
|
55
82
|
end
|
56
83
|
|
84
|
+
##
|
85
|
+
# Полный список банков
|
86
|
+
|
57
87
|
def EnumBic
|
58
88
|
response = call(:enum_bic_xml)
|
59
89
|
get_array(response, :enum_bic, :bic)
|
60
90
|
end
|
61
91
|
|
92
|
+
##
|
93
|
+
# Список регионов
|
94
|
+
|
62
95
|
def RegionsEnum
|
63
96
|
response = call(:regions_enum_xml)
|
64
97
|
get_array(response, :regions_enum, :rgid)
|
65
98
|
end
|
66
99
|
|
100
|
+
##
|
101
|
+
# Информация по кредитной организации по внутреннему номеру
|
102
|
+
|
67
103
|
def CreditInfoByIntCode(internal_code)
|
68
104
|
params = { "InternalCode" => internal_code }
|
69
105
|
response = call(:credit_info_by_int_code_xml, params)
|
@@ -74,6 +110,9 @@ class RusBank
|
|
74
110
|
end
|
75
111
|
end
|
76
112
|
|
113
|
+
##
|
114
|
+
# Метод позволяет вручную вызывать нужные soap-сервисы.
|
115
|
+
|
77
116
|
def call(method, params = nil)
|
78
117
|
response = @client.call(method, message: params).to_hash[(method.to_s + "_response").to_sym][(method.to_s + "_result").to_sym]
|
79
118
|
if response == "-1" or response.to_s.include?("NotFound") # Разные методы сервиса возвращают ответ в разном формате
|
data/rus_bank.gemspec
CHANGED
@@ -5,13 +5,13 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = "rus_bank"
|
8
|
-
s.version = "0.9.
|
8
|
+
s.version = "0.9.3"
|
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 = "2014-
|
12
|
+
s.date = "2014-02-02"
|
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
|
-
s.email = "
|
14
|
+
s.email = "wilddalex@wild-x.ru"
|
15
15
|
s.extra_rdoc_files = [
|
16
16
|
"LICENSE.txt",
|
17
17
|
"README.rdoc"
|
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.9.
|
4
|
+
version: 0.9.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- wilDAlex
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-
|
11
|
+
date: 2014-02-02 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: savon
|
@@ -81,7 +81,7 @@ dependencies:
|
|
81
81
|
- !ruby/object:Gem::Version
|
82
82
|
version: 1.8.7
|
83
83
|
description: Набор ruby-методов для работы с сервисами ЦБ РФ
|
84
|
-
email:
|
84
|
+
email: wilddalex@wild-x.ru
|
85
85
|
executables: []
|
86
86
|
extensions: []
|
87
87
|
extra_rdoc_files:
|