ifmb 0.0.1 → 0.0.2
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.
- data/.travis.yml +8 -0
- data/README.md +23 -5
- data/Rakefile +6 -0
- data/ifmb.gemspec +2 -0
- data/lib/ifmb.rb +2 -2
- data/lib/ifmb/generator.rb +4 -14
- data/lib/ifmb/version.rb +1 -1
- data/spec/generator_spec.rb +1 -1
- data/spec/spec_helper.rb +7 -0
- data/teste_ifmb.rb +4 -2
- metadata +35 -2
data/.travis.yml
ADDED
data/README.md
CHANGED
@@ -1,12 +1,18 @@
|
|
1
|
-
#
|
1
|
+
# IFMB [](https://travis-ci.org/Sinemys/ifmb) [](https://codeclimate.com/github/Sinemys/ifmb)
|
2
|
+
|
3
|
+
This is gem is a basic implementation to bill via IFMB service from IFTHEN.
|
4
|
+
It is a fork from https://github.com/Davidslv/MB and this may fail because it was not fully tested yet.
|
5
|
+
|
6
|
+
## Features
|
7
|
+
* Generate payment references to pay via MB (ATM)
|
8
|
+
* Format the payment data in html
|
2
9
|
|
3
|
-
TODO: Write a gem description
|
4
10
|
|
5
11
|
## Installation
|
6
12
|
|
7
13
|
Add this line to your application's Gemfile:
|
8
14
|
|
9
|
-
gem '
|
15
|
+
gem 'ifmb'
|
10
16
|
|
11
17
|
And then execute:
|
12
18
|
|
@@ -17,8 +23,20 @@ Or install it yourself as:
|
|
17
23
|
$ gem install ifmb
|
18
24
|
|
19
25
|
## Usage
|
20
|
-
|
21
|
-
|
26
|
+
```ruby
|
27
|
+
payment_data = {
|
28
|
+
entidade: 11604,
|
29
|
+
sub_entidade: 999,
|
30
|
+
order_id: 1234,
|
31
|
+
order_value: 25.86
|
32
|
+
}
|
33
|
+
|
34
|
+
@generator = Ifmb::Generator.new(payment_data)
|
35
|
+
@generator.generate # => your payment reference to give to the user
|
36
|
+
|
37
|
+
# You can also use the html format to print directly
|
38
|
+
<%= @generator.in_html %>
|
39
|
+
```
|
22
40
|
|
23
41
|
## Contributing
|
24
42
|
|
data/Rakefile
CHANGED
data/ifmb.gemspec
CHANGED
@@ -10,9 +10,11 @@ Gem::Specification.new do |gem|
|
|
10
10
|
gem.summary = %q{Payment references generation for IFMB}
|
11
11
|
gem.homepage = "http://github.com/sinemys/ifmb"
|
12
12
|
|
13
|
+
gem.add_development_dependency('rake')
|
13
14
|
gem.add_development_dependency('rspec')
|
14
15
|
gem.add_development_dependency('guard-rspec')
|
15
16
|
gem.add_development_dependency('rb-fsevent')
|
17
|
+
gem.add_development_dependency('simplecov')
|
16
18
|
|
17
19
|
gem.files = `git ls-files`.split($\)
|
18
20
|
gem.executables = gem.files.grep(%r{^bin/}).map{ |f| File.basename(f) }
|
data/lib/ifmb.rb
CHANGED
data/lib/ifmb/generator.rb
CHANGED
@@ -19,7 +19,7 @@ module Ifmb
|
|
19
19
|
|
20
20
|
[:entidade, :sub_entidade, :order_id, :order_value].each do |attr|
|
21
21
|
define_method "#{attr}=" do |value|
|
22
|
-
# refresh validation
|
22
|
+
# TODO refresh validation
|
23
23
|
instance_variable_set "@#{attr}", value
|
24
24
|
end
|
25
25
|
end
|
@@ -59,26 +59,19 @@ module Ifmb
|
|
59
59
|
def generate
|
60
60
|
raise ArgumentError.new "arguments are invalid! #{@errors}" unless valid?
|
61
61
|
|
62
|
-
|
63
|
-
|
64
62
|
check_val = 0
|
65
63
|
# order_id = "0000" + order_id.to_s
|
66
64
|
|
67
|
-
puts order_value.inspect
|
68
|
-
|
69
65
|
# order_id = order_id.slice((order_id.length - 4)..-1).to_s
|
70
66
|
|
71
|
-
|
72
67
|
if ((order_value.to_f * 100).round < 1)
|
73
|
-
|
74
|
-
exit
|
68
|
+
raise RuntimeError.new 'impossivel de realizar pagamentos de 1 euro'
|
75
69
|
end
|
76
70
|
|
77
71
|
if ((order_value.to_f * 100).round >= 1_000_000)
|
78
72
|
# this is not implemented
|
79
73
|
# related with the while loop
|
80
|
-
|
81
|
-
exit
|
74
|
+
raise RuntimeError.new 'Aviso: Pagamento Fraccionado por exceder o valor limite para pagamentos por multibanco'
|
82
75
|
end
|
83
76
|
|
84
77
|
# this is not implemented
|
@@ -87,7 +80,7 @@ module Ifmb
|
|
87
80
|
# generate_mb_ref(entidade, sub_entidade, order_id, 999999.99)
|
88
81
|
# order_value = order_value.to_f - 999999.99
|
89
82
|
# end
|
90
|
-
|
83
|
+
|
91
84
|
|
92
85
|
check_str = sprintf('%05u%03u%04u%08u', entidade, sub_entidade, order_id.to_s, (order_value.to_f * 100).round)
|
93
86
|
|
@@ -102,9 +95,6 @@ module Ifmb
|
|
102
95
|
|
103
96
|
check_digits = sprintf('%02u', 98-check_val);
|
104
97
|
|
105
|
-
p "ENTIDADE : #{entidade}"
|
106
|
-
p "REFERENCIA: #{sub_entidade} #{check_str[8,3]} #{check_str[11,1]} #{check_digits}"
|
107
|
-
p "VALOR : #{order_value}"
|
108
98
|
@referencia = "#{sub_entidade}#{check_str[8,3]}#{check_str[11,1]}#{check_digits}".to_i
|
109
99
|
end
|
110
100
|
|
data/lib/ifmb/version.rb
CHANGED
data/spec/generator_spec.rb
CHANGED
data/spec/spec_helper.rb
CHANGED
data/teste_ifmb.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ifmb
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.2
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -10,8 +10,24 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date: 2012-11-
|
13
|
+
date: 2012-11-22 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
|
+
- !ruby/object:Gem::Dependency
|
16
|
+
name: rake
|
17
|
+
requirement: !ruby/object:Gem::Requirement
|
18
|
+
none: false
|
19
|
+
requirements:
|
20
|
+
- - ! '>='
|
21
|
+
- !ruby/object:Gem::Version
|
22
|
+
version: '0'
|
23
|
+
type: :development
|
24
|
+
prerelease: false
|
25
|
+
version_requirements: !ruby/object:Gem::Requirement
|
26
|
+
none: false
|
27
|
+
requirements:
|
28
|
+
- - ! '>='
|
29
|
+
- !ruby/object:Gem::Version
|
30
|
+
version: '0'
|
15
31
|
- !ruby/object:Gem::Dependency
|
16
32
|
name: rspec
|
17
33
|
requirement: !ruby/object:Gem::Requirement
|
@@ -60,6 +76,22 @@ dependencies:
|
|
60
76
|
- - ! '>='
|
61
77
|
- !ruby/object:Gem::Version
|
62
78
|
version: '0'
|
79
|
+
- !ruby/object:Gem::Dependency
|
80
|
+
name: simplecov
|
81
|
+
requirement: !ruby/object:Gem::Requirement
|
82
|
+
none: false
|
83
|
+
requirements:
|
84
|
+
- - ! '>='
|
85
|
+
- !ruby/object:Gem::Version
|
86
|
+
version: '0'
|
87
|
+
type: :development
|
88
|
+
prerelease: false
|
89
|
+
version_requirements: !ruby/object:Gem::Requirement
|
90
|
+
none: false
|
91
|
+
requirements:
|
92
|
+
- - ! '>='
|
93
|
+
- !ruby/object:Gem::Version
|
94
|
+
version: '0'
|
63
95
|
description: Generate references for IFMB payments (portuguese ATM payment service
|
64
96
|
from IFTHEN)
|
65
97
|
email:
|
@@ -70,6 +102,7 @@ extra_rdoc_files: []
|
|
70
102
|
files:
|
71
103
|
- .gitignore
|
72
104
|
- .rspec
|
105
|
+
- .travis.yml
|
73
106
|
- Gemfile
|
74
107
|
- Guardfile
|
75
108
|
- LICENSE
|