utel 0.2.3 → 0.2.4
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/.gitignore +0 -0
- data/Gemfile +0 -0
- data/README.md +0 -0
- data/Rakefile +0 -0
- data/balance.rb +0 -0
- data/lib/utel.rb +0 -0
- data/lib/utel/balance.rb +5 -9
- data/lib/utel/device.rb +7 -8
- data/lib/utel/operator.rb +0 -0
- data/lib/utel/pdu.rb +34 -32
- data/lib/utel/sms.rb +0 -0
- data/lib/utel/version.rb +1 -1
- data/utel.gemspec +1 -1
- metadata +6 -8
data/.gitignore
CHANGED
File without changes
|
data/Gemfile
CHANGED
File without changes
|
data/README.md
CHANGED
File without changes
|
data/Rakefile
CHANGED
File without changes
|
data/balance.rb
CHANGED
File without changes
|
data/lib/utel.rb
CHANGED
File without changes
|
data/lib/utel/balance.rb
CHANGED
@@ -1,24 +1,20 @@
|
|
1
1
|
module Utel
|
2
2
|
class Balance
|
3
|
-
|
4
|
-
new.
|
5
|
-
end
|
6
|
-
|
7
|
-
def self.vas
|
8
|
-
new.vas
|
3
|
+
class << self
|
4
|
+
[:summary, :vas].each{|method| define_method(method) { new.send(method) }}
|
9
5
|
end
|
10
6
|
|
11
7
|
def summary
|
12
|
-
|
8
|
+
call_ussd "*100#"
|
13
9
|
end
|
14
10
|
|
15
11
|
def vas
|
16
|
-
|
12
|
+
call_ussd "*121#"
|
17
13
|
end
|
18
14
|
|
19
15
|
private
|
20
16
|
# @param [String] number USSD number service
|
21
|
-
def
|
17
|
+
def call_ussd number
|
22
18
|
File.open(Utel::DEVICE, "w+") do |f|
|
23
19
|
f.write "AT+CUSD=1,#{Utel::Pdu.encode(number)},15\r\n"
|
24
20
|
parse_result f
|
data/lib/utel/device.rb
CHANGED
@@ -1,15 +1,14 @@
|
|
1
1
|
module Utel
|
2
2
|
class Device
|
3
|
-
|
4
|
-
new.send_at
|
5
|
-
end
|
6
|
-
|
7
|
-
def self.pin(*args)
|
8
|
-
new.pin(*args)
|
9
|
-
end
|
3
|
+
[:send_at, :pin].each{|method| define_method(method) {|*args| new.send(method, *args) }}
|
10
4
|
|
11
5
|
def pin(code=PIN_CODE)
|
12
|
-
|
6
|
+
File.open(Utel::DEVICE, 'w+') do |f|
|
7
|
+
f.write "AT+CPIN=\"code\"\r\n"
|
8
|
+
while (s = f.gets) do
|
9
|
+
break if s.slice(0,2) == "OK"
|
10
|
+
end
|
11
|
+
end
|
13
12
|
end
|
14
13
|
|
15
14
|
def send_at
|
data/lib/utel/operator.rb
CHANGED
File without changes
|
data/lib/utel/pdu.rb
CHANGED
@@ -1,43 +1,45 @@
|
|
1
1
|
module Utel
|
2
2
|
class Pdu
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
3
|
+
class << self
|
4
|
+
# Encode and decode pdu strings
|
5
|
+
def encode string
|
6
|
+
out = ''
|
7
|
+
for i in (0..string.length - 1) do
|
8
|
+
t = i%8+1
|
9
|
+
next if t == 8
|
10
|
+
c = string[i] >> i%8
|
11
|
+
b = (string[i+1] || 0) & ((1 << t)-1)
|
12
|
+
c = (b << (8-t)) | c
|
13
|
+
out << c.to_s(16).rjust(2, '0').upcase
|
14
|
+
end
|
15
|
+
out
|
13
16
|
end
|
14
|
-
out
|
15
|
-
end
|
16
17
|
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
18
|
+
def decode string
|
19
|
+
out = ''
|
20
|
+
b = 0; d = 0
|
21
|
+
string.scan(/.{2}/).each do |part|
|
22
|
+
byte = part.to_i(16)
|
23
|
+
c = ((byte & ((1 << 7-d)-1)) << d) | b;
|
24
|
+
b = byte >> (7-d);
|
25
|
+
out << c.chr
|
26
|
+
d += 1
|
27
|
+
if d == 7
|
28
|
+
out << b.chr
|
29
|
+
d = 0; b = 0
|
30
|
+
end
|
29
31
|
end
|
32
|
+
out
|
30
33
|
end
|
31
|
-
out
|
32
|
-
end
|
33
34
|
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
35
|
+
def decimal_semi_octets number
|
36
|
+
reversed = ''
|
37
|
+
number.to_s.split('').each_slice(2) do |pair|
|
38
|
+
a,b = pair
|
39
|
+
reversed << (b.nil? ? "F" : b) << a
|
40
|
+
end
|
41
|
+
reversed
|
39
42
|
end
|
40
|
-
reversed
|
41
43
|
end
|
42
44
|
end
|
43
45
|
end
|
data/lib/utel/sms.rb
CHANGED
File without changes
|
data/lib/utel/version.rb
CHANGED
data/utel.gemspec
CHANGED
@@ -8,7 +8,7 @@ Gem::Specification.new do |s|
|
|
8
8
|
s.version = Utel::VERSION
|
9
9
|
s.authors = ["Eugene Russkikh"]
|
10
10
|
s.email = ["eugene@russkikh.org.ua"]
|
11
|
-
s.homepage = "
|
11
|
+
s.homepage = "https://github.com/komba/utel"
|
12
12
|
s.summary = %q{Utel USSD}
|
13
13
|
s.description = %q{Utel USSD services balance checker}
|
14
14
|
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: utel
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 31
|
5
5
|
prerelease:
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 2
|
9
|
-
-
|
10
|
-
version: 0.2.
|
9
|
+
- 4
|
10
|
+
version: 0.2.4
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Eugene Russkikh
|
@@ -15,8 +15,7 @@ autorequire:
|
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
17
17
|
|
18
|
-
date:
|
19
|
-
default_executable:
|
18
|
+
date: 2012-07-19 00:00:00 Z
|
20
19
|
dependencies: []
|
21
20
|
|
22
21
|
description: Utel USSD services balance checker
|
@@ -42,8 +41,7 @@ files:
|
|
42
41
|
- lib/utel/sms.rb
|
43
42
|
- lib/utel/version.rb
|
44
43
|
- utel.gemspec
|
45
|
-
|
46
|
-
homepage: http://komba.org.ua
|
44
|
+
homepage: https://github.com/komba/utel
|
47
45
|
licenses: []
|
48
46
|
|
49
47
|
post_install_message:
|
@@ -72,7 +70,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
72
70
|
requirements: []
|
73
71
|
|
74
72
|
rubyforge_project:
|
75
|
-
rubygems_version: 1.
|
73
|
+
rubygems_version: 1.8.10
|
76
74
|
signing_key:
|
77
75
|
specification_version: 3
|
78
76
|
summary: Utel USSD
|