iboleto 0.0.1
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 +14 -0
- data/Gemfile +4 -0
- data/LICENSE.txt +22 -0
- data/README.en.md +26 -0
- data/README.md +24 -0
- data/Rakefile +2 -0
- data/bin/iboleto +78 -0
- data/iboleto.gemspec +24 -0
- data/lib/iboleto.rb +5 -0
- data/lib/iboleto/version.rb +3 -0
- metadata +98 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 20b5ea5335e7ff3dec559f036507af9d88bd47a1
|
4
|
+
data.tar.gz: 91229fd0eff234f98998d69369f7df72f84bb0ab
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 91617109aa328cde91ae0820b0ae9eea709cdb95389e23904cb11480582e61d120a16b040e7287857042cf380e23f76bd176df4b858737fce17953f5bda499a6
|
7
|
+
data.tar.gz: 0c3f8335b6908c64869393f01b2696cf10b0ac0643888f1a94ec843315a85f5210a25f1cce85a1e15f4dd177af4b558e6919d2436a91d69a2eeb565d5b7e5b89
|
data/.gitignore
ADDED
data/Gemfile
ADDED
data/LICENSE.txt
ADDED
@@ -0,0 +1,22 @@
|
|
1
|
+
Copyright (c) 2015 Abinoam Praxedes Marques Jr.
|
2
|
+
|
3
|
+
MIT License
|
4
|
+
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining
|
6
|
+
a copy of this software and associated documentation files (the
|
7
|
+
"Software"), to deal in the Software without restriction, including
|
8
|
+
without limitation the rights to use, copy, modify, merge, publish,
|
9
|
+
distribute, sublicense, and/or sell copies of the Software, and to
|
10
|
+
permit persons to whom the Software is furnished to do so, subject to
|
11
|
+
the following conditions:
|
12
|
+
|
13
|
+
The above copyright notice and this permission notice shall be
|
14
|
+
included in all copies or substantial portions of the Software.
|
15
|
+
|
16
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
17
|
+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
18
|
+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
19
|
+
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
20
|
+
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
21
|
+
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
22
|
+
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
data/README.en.md
ADDED
@@ -0,0 +1,26 @@
|
|
1
|
+
# IBoleto.rb
|
2
|
+
|
3
|
+
[README em português](README.md)
|
4
|
+
|
5
|
+
IBoleto.rb is a Linux compatible CLI server for Quadrimind IBoleto android application.
|
6
|
+
Quadrimind IBoleto scans (brazilian format) bills' barcodes and sends to a server (Ex: IBoleto.rb).
|
7
|
+
IBoleto.rb uses gtk to copy to clipboard the barcode number sequence in more than one format.
|
8
|
+
So you can past it at your internet bank for payment.
|
9
|
+
|
10
|
+
## Installation
|
11
|
+
|
12
|
+
Add this line to your application's Gemfile:
|
13
|
+
|
14
|
+
$ gem install iboleto
|
15
|
+
|
16
|
+
## Usage
|
17
|
+
|
18
|
+
$ iboleto
|
19
|
+
|
20
|
+
## Contributing
|
21
|
+
|
22
|
+
1. Fork it ( https://github.com/[my-github-username]/iboleto/fork )
|
23
|
+
2. Create your feature branch (`git checkout -b my-new-feature`)
|
24
|
+
3. Commit your changes (`git commit -am 'Add some feature'`)
|
25
|
+
4. Push to the branch (`git push origin my-new-feature`)
|
26
|
+
5. Create a new Pull Request
|
data/README.md
ADDED
@@ -0,0 +1,24 @@
|
|
1
|
+
# IBoleto.rb
|
2
|
+
|
3
|
+
[English README](README.en.md)
|
4
|
+
|
5
|
+
IBoleto.rb é servidor em linha de comando compatível com Linux para o aplicativo de android IBoleto da Quadrimind.
|
6
|
+
O IBoleto da Quadrimind intepreta códigos de barra do formato brasileiro e os envia a um servidor (Ex: IBoleto.rb)
|
7
|
+
IBoleto.rb usa gtk para copiar para a área de trabalho a sequência de números do código de barra em mais de um formato.
|
8
|
+
Então você pode colar os números no seu **internet bank** para realizar o pagamento.
|
9
|
+
|
10
|
+
## Instalação
|
11
|
+
|
12
|
+
$ gem install iboleto
|
13
|
+
|
14
|
+
## Uso
|
15
|
+
|
16
|
+
$ iboleto
|
17
|
+
|
18
|
+
## Para contribuir
|
19
|
+
|
20
|
+
1. Fork ( https://github.com/abinoam/iboleto/fork )
|
21
|
+
2. Crie uma branch de funcionalidade (`git checkout -b my-new-feature`)
|
22
|
+
3. Faça um **commit** das suas mudanças (`git commit -am 'Add some feature'`)
|
23
|
+
4. Faça um **push** da sua branch (`git push origin my-new-feature`)
|
24
|
+
5. Crie um novo **Pull Request**
|
data/Rakefile
ADDED
data/bin/iboleto
ADDED
@@ -0,0 +1,78 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
#coding: utf-8
|
3
|
+
|
4
|
+
# Last updated at October, 06, 2014.
|
5
|
+
|
6
|
+
require 'gtk2'
|
7
|
+
require 'socket'
|
8
|
+
|
9
|
+
class ClientQuitError < RuntimeError; end
|
10
|
+
|
11
|
+
port = ARGV.shift || 5001 # default is to use the iBoleto port (if 0 default to next available)
|
12
|
+
host = ARGV.shift # default is to bind everything
|
13
|
+
|
14
|
+
server = host ? TCPServer.open(host, port) : TCPServer.open(port)
|
15
|
+
|
16
|
+
port = server.addr[1]
|
17
|
+
addrs = server.addr[2..-1].uniq
|
18
|
+
|
19
|
+
puts "*** listening on #{addrs.collect{|a|"#{a}:#{port}"}.join(' ')}"
|
20
|
+
|
21
|
+
loop do
|
22
|
+
socket = server.accept
|
23
|
+
|
24
|
+
Thread.start do # one thread per client
|
25
|
+
s = socket
|
26
|
+
|
27
|
+
port = s.peeraddr[1]
|
28
|
+
name = s.peeraddr[2]
|
29
|
+
addr = s.peeraddr[3]
|
30
|
+
|
31
|
+
puts "*** recieving from #{name}:#{port}"
|
32
|
+
|
33
|
+
begin
|
34
|
+
while line = s.gets # read a line at a time
|
35
|
+
if m = line.match(/POST \/iBoleto\?cod=(\d+)+&dec=(\d+)/)
|
36
|
+
clip = Gtk::Clipboard.get(Gdk::Selection::CLIPBOARD)
|
37
|
+
|
38
|
+
cod = m[1]
|
39
|
+
dec = m[2]
|
40
|
+
|
41
|
+
boleto_regexp = /\A(\w{5})(\w{5})(\w{5})(\w{6})(\w{5})(\w{6})(\w{1})(\w{14})\Z/
|
42
|
+
boleto = dec.dup.sub!(boleto_regexp, '\1 2 \3 \4 \5 \6 \7 \8')
|
43
|
+
boleto_with_tabs = dec.dup.sub!(boleto_regexp, "\\1\t\\2\t\\3\t\\4\t\\5\t\\6\t\\7\t\\8")
|
44
|
+
|
45
|
+
conv_regexp = /\A(\d{12})(\d{12})(\d{12})(\d{12})\Z/
|
46
|
+
conv = dec.dup.sub!(conv_regexp, '\1 \2 \3 \4')
|
47
|
+
conv_with_tabs = dec.dup.sub!(conv_regexp, "\\1\t\\2\t\\3\t\\4")
|
48
|
+
|
49
|
+
clip.set_text([cod, dec, boleto, boleto_with_tabs, conv, conv_with_tabs].compact.join("\n"))
|
50
|
+
clip.store
|
51
|
+
end
|
52
|
+
|
53
|
+
if ["\n\r", "\n", "\r\n"].include? line
|
54
|
+
|
55
|
+
s.print "HTTP/1.1 200/OK\r\nContent-type:text/html\r\n\r\n"
|
56
|
+
s.print "<html><head><title>ok</title></head><body>ok!</body></html>\r\n\r\n"
|
57
|
+
puts "*** #{name}:#{port} disconnected"
|
58
|
+
raise
|
59
|
+
end
|
60
|
+
|
61
|
+
|
62
|
+
raise ClientQuitError if line =~ /^die\r?$/
|
63
|
+
puts "#{addr} [#{Time.now}]: #{line.inspect}"
|
64
|
+
end
|
65
|
+
|
66
|
+
rescue ClientQuitError
|
67
|
+
puts "*** #{name}:#{port} disconnected"
|
68
|
+
|
69
|
+
ensure
|
70
|
+
s.close # close socket on error
|
71
|
+
end
|
72
|
+
|
73
|
+
puts "*** done with #{name}:#{port}"
|
74
|
+
end
|
75
|
+
|
76
|
+
end
|
77
|
+
|
78
|
+
|
data/iboleto.gemspec
ADDED
@@ -0,0 +1,24 @@
|
|
1
|
+
# coding: utf-8
|
2
|
+
lib = File.expand_path('../lib', __FILE__)
|
3
|
+
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
4
|
+
require 'iboleto/version'
|
5
|
+
|
6
|
+
Gem::Specification.new do |spec|
|
7
|
+
spec.name = "iboleto"
|
8
|
+
spec.version = IBoleto::VERSION
|
9
|
+
spec.authors = ["Abinoam Praxedes Marques Jr."]
|
10
|
+
spec.email = ["abinoam@gmail.com"]
|
11
|
+
spec.summary = %q{Linux compatible CLI Ruby server for IBoleto android app}
|
12
|
+
spec.description = %q{Linux compatible CLI Ruby server for QuadriMind IBoleto android app - http://www.quadrimind.com/iBoleto/}
|
13
|
+
spec.homepage = ""
|
14
|
+
spec.license = "MIT"
|
15
|
+
|
16
|
+
spec.files = `git ls-files -z`.split("\x0")
|
17
|
+
spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
|
18
|
+
spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
|
19
|
+
spec.require_paths = ["lib"]
|
20
|
+
|
21
|
+
spec.add_development_dependency "bundler", "~> 1.7"
|
22
|
+
spec.add_development_dependency "rake", "~> 10.0"
|
23
|
+
spec.add_runtime_dependency "gtk2"
|
24
|
+
end
|
data/lib/iboleto.rb
ADDED
metadata
ADDED
@@ -0,0 +1,98 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: iboleto
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.0.1
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Abinoam Praxedes Marques Jr.
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2015-02-09 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.7'
|
20
|
+
type: :development
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - "~>"
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '1.7'
|
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: gtk2
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - ">="
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '0'
|
48
|
+
type: :runtime
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - ">="
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '0'
|
55
|
+
description: Linux compatible CLI Ruby server for QuadriMind IBoleto android app -
|
56
|
+
http://www.quadrimind.com/iBoleto/
|
57
|
+
email:
|
58
|
+
- abinoam@gmail.com
|
59
|
+
executables:
|
60
|
+
- iboleto
|
61
|
+
extensions: []
|
62
|
+
extra_rdoc_files: []
|
63
|
+
files:
|
64
|
+
- ".gitignore"
|
65
|
+
- Gemfile
|
66
|
+
- LICENSE.txt
|
67
|
+
- README.en.md
|
68
|
+
- README.md
|
69
|
+
- Rakefile
|
70
|
+
- bin/iboleto
|
71
|
+
- iboleto.gemspec
|
72
|
+
- lib/iboleto.rb
|
73
|
+
- lib/iboleto/version.rb
|
74
|
+
homepage: ''
|
75
|
+
licenses:
|
76
|
+
- MIT
|
77
|
+
metadata: {}
|
78
|
+
post_install_message:
|
79
|
+
rdoc_options: []
|
80
|
+
require_paths:
|
81
|
+
- lib
|
82
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
83
|
+
requirements:
|
84
|
+
- - ">="
|
85
|
+
- !ruby/object:Gem::Version
|
86
|
+
version: '0'
|
87
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
88
|
+
requirements:
|
89
|
+
- - ">="
|
90
|
+
- !ruby/object:Gem::Version
|
91
|
+
version: '0'
|
92
|
+
requirements: []
|
93
|
+
rubyforge_project:
|
94
|
+
rubygems_version: 2.4.3
|
95
|
+
signing_key:
|
96
|
+
specification_version: 4
|
97
|
+
summary: Linux compatible CLI Ruby server for IBoleto android app
|
98
|
+
test_files: []
|