turkish_bin_numbers 1.0.0
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.
- checksums.yaml +7 -0
- data/.gitignore +19 -0
- data/.rspec +2 -0
- data/.travis.yml +4 -0
- data/Gemfile +5 -0
- data/README.md +78 -0
- data/Rakefile +6 -0
- data/bin/console +14 -0
- data/bin/setup +8 -0
- data/lib/bin_list.json +4382 -0
- data/lib/turkish_bin_numbers/version.rb +3 -0
- data/lib/turkish_bin_numbers.rb +46 -0
- data/turkish_bin_numbers.gemspec +25 -0
- metadata +101 -0
@@ -0,0 +1,46 @@
|
|
1
|
+
require "turkish_bin_numbers/version"
|
2
|
+
require "json"
|
3
|
+
|
4
|
+
module TurkishBinNumbers
|
5
|
+
file = File.open(File.join(File.dirname(__FILE__), '/bin_list.json'))
|
6
|
+
data = file.read
|
7
|
+
file.close
|
8
|
+
@data = JSON.parse(data)
|
9
|
+
|
10
|
+
def self.get(bin_number)
|
11
|
+
bin = @data.detect {|b| bin_number.to_s =~ /^#{b["bin_number"]}/ }
|
12
|
+
bin["card_type"] = detect_card_type(bin_number) if bin
|
13
|
+
return bin
|
14
|
+
end
|
15
|
+
|
16
|
+
def self.bins_of_bank(bank_name)
|
17
|
+
bins = @data.select {|b| bank_name.to_s =~ /^#{b["bank_name"]}/ }
|
18
|
+
return bins.map {|b| b["bin_number"]}
|
19
|
+
end
|
20
|
+
|
21
|
+
def self.credit_card_bins
|
22
|
+
bins = @data.select {|b| b["bin_type"] == "credit_card" }
|
23
|
+
return bins.map {|b| b["bin_number"]}
|
24
|
+
end
|
25
|
+
|
26
|
+
def self.debit_card_bins
|
27
|
+
bins = @data.select {|b| b["bin_type"] == "debit_card" }
|
28
|
+
return bins.map {|b| b["bin_number"]}
|
29
|
+
end
|
30
|
+
|
31
|
+
def self.detect_card_type(bin)
|
32
|
+
bin = bin.to_s
|
33
|
+
case
|
34
|
+
when bin =~ /^(34|37)/
|
35
|
+
return "American Express"
|
36
|
+
when bin =~ /^4/
|
37
|
+
return "Visa"
|
38
|
+
when bin =~ /^(50|55)/
|
39
|
+
return "MasterCard"
|
40
|
+
when bin =~ /^(55018|5020|5038|5612|5893|6304|6759|6761|6762|6763|0604|6390)/
|
41
|
+
return "Maestro"
|
42
|
+
else
|
43
|
+
return nil
|
44
|
+
end
|
45
|
+
end
|
46
|
+
end
|
@@ -0,0 +1,25 @@
|
|
1
|
+
# coding: utf-8
|
2
|
+
lib = File.expand_path('../lib', __FILE__)
|
3
|
+
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
4
|
+
require 'turkish_bin_numbers/version'
|
5
|
+
|
6
|
+
Gem::Specification.new do |spec|
|
7
|
+
spec.name = "turkish_bin_numbers"
|
8
|
+
spec.version = TurkishBinNumbers::VERSION
|
9
|
+
spec.authors = ["Tolga Gezginiş"]
|
10
|
+
spec.email = ["tolga@gezginis.com"]
|
11
|
+
|
12
|
+
spec.summary = "Bin Numbers for Turkish Banks"
|
13
|
+
spec.description = "Gives information about bank, card type and debit. Also you can query bin numbers by bank."
|
14
|
+
spec.homepage = "https://github.com/tgezginis/turkish_bin_numbers"
|
15
|
+
spec.license = "MIT"
|
16
|
+
|
17
|
+
spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
|
18
|
+
spec.files += Dir.glob("lib/**/*")
|
19
|
+
spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
|
20
|
+
spec.require_paths = ["lib"]
|
21
|
+
|
22
|
+
spec.add_development_dependency "bundler", "~> 1.11"
|
23
|
+
spec.add_development_dependency "rake", "~> 10.0"
|
24
|
+
spec.add_development_dependency "rspec", "~> 3.0"
|
25
|
+
end
|
metadata
ADDED
@@ -0,0 +1,101 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: turkish_bin_numbers
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 1.0.0
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Tolga Gezginiş
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2016-05-12 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: bundler
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - "~>"
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '1.11'
|
20
|
+
type: :development
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - "~>"
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '1.11'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: rake
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - "~>"
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '10.0'
|
34
|
+
type: :development
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - "~>"
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '10.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'
|
55
|
+
description: Gives information about bank, card type and debit. Also you can query
|
56
|
+
bin numbers by bank.
|
57
|
+
email:
|
58
|
+
- tolga@gezginis.com
|
59
|
+
executables:
|
60
|
+
- console
|
61
|
+
- setup
|
62
|
+
extensions: []
|
63
|
+
extra_rdoc_files: []
|
64
|
+
files:
|
65
|
+
- ".gitignore"
|
66
|
+
- ".rspec"
|
67
|
+
- ".travis.yml"
|
68
|
+
- Gemfile
|
69
|
+
- README.md
|
70
|
+
- Rakefile
|
71
|
+
- bin/console
|
72
|
+
- bin/setup
|
73
|
+
- lib/bin_list.json
|
74
|
+
- lib/turkish_bin_numbers.rb
|
75
|
+
- lib/turkish_bin_numbers/version.rb
|
76
|
+
- turkish_bin_numbers.gemspec
|
77
|
+
homepage: https://github.com/tgezginis/turkish_bin_numbers
|
78
|
+
licenses:
|
79
|
+
- MIT
|
80
|
+
metadata: {}
|
81
|
+
post_install_message:
|
82
|
+
rdoc_options: []
|
83
|
+
require_paths:
|
84
|
+
- lib
|
85
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
86
|
+
requirements:
|
87
|
+
- - ">="
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
version: '0'
|
90
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
91
|
+
requirements:
|
92
|
+
- - ">="
|
93
|
+
- !ruby/object:Gem::Version
|
94
|
+
version: '0'
|
95
|
+
requirements: []
|
96
|
+
rubyforge_project:
|
97
|
+
rubygems_version: 2.4.8
|
98
|
+
signing_key:
|
99
|
+
specification_version: 4
|
100
|
+
summary: Bin Numbers for Turkish Banks
|
101
|
+
test_files: []
|