ruby-network-manager 0.14.1 → 1.0.10
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/Gemfile +0 -3
- data/Gemfile.lock +2 -2
- data/README.rdoc +18 -1
- data/VERSION +1 -1
- data/lib/network_manager/modem.rb +51 -14
- data/lib/ruby-network-manager.rb +17 -8
- data/ruby-network-manager.gemspec +2 -2
- metadata +3 -3
data/Gemfile
CHANGED
data/Gemfile.lock
CHANGED
data/README.rdoc
CHANGED
@@ -12,10 +12,27 @@ To fetch all available modems call:
|
|
12
12
|
|
13
13
|
require 'ruby-network-manager'
|
14
14
|
@network_mgr = NetworkManager.new
|
15
|
-
@devices = @network_mgr.
|
15
|
+
@devices = @network_mgr.modems
|
16
16
|
|
17
17
|
*modem_devices* method returns array of *NetworkManager::Modem#Object*.
|
18
18
|
|
19
|
+
Available methods on *NetworkManager::Modem#Object*:
|
20
|
+
* status
|
21
|
+
* enabled? / disabled?
|
22
|
+
* enable! / disable!
|
23
|
+
* model
|
24
|
+
* operator_code
|
25
|
+
* vendor
|
26
|
+
* version
|
27
|
+
* signal
|
28
|
+
* imei
|
29
|
+
* imsi
|
30
|
+
* scan
|
31
|
+
* send_ussd
|
32
|
+
* device
|
33
|
+
* ussd_state
|
34
|
+
* to_h
|
35
|
+
|
19
36
|
== Contributing to ruby-network-manager
|
20
37
|
|
21
38
|
* Check out the latest master to make sure the feature hasn't been implemented or the bug hasn't been fixed yet.
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.
|
1
|
+
1.0.10
|
@@ -8,6 +8,11 @@ class NetworkManager
|
|
8
8
|
instance_variable_set("@#{k}", v) unless v.nil?
|
9
9
|
end
|
10
10
|
|
11
|
+
unless defined?(@service)
|
12
|
+
@bus ||= DBus::SystemBus.instance
|
13
|
+
@service = @bus.service(NetworkManager::MM_DBUS_SERVICE)
|
14
|
+
end
|
15
|
+
|
11
16
|
# Set DBUS proxy
|
12
17
|
@proxy = @service.object(@bus_path)
|
13
18
|
@proxy.introspect
|
@@ -24,16 +29,6 @@ class NetworkManager
|
|
24
29
|
@device_info = @properties.GetInfo[0] rescue nil
|
25
30
|
end
|
26
31
|
|
27
|
-
def enabled?
|
28
|
-
begin
|
29
|
-
status
|
30
|
-
return true
|
31
|
-
rescue => e
|
32
|
-
return !e.message.include?('device is not enabled')
|
33
|
-
end
|
34
|
-
nil
|
35
|
-
end
|
36
|
-
|
37
32
|
def enable!
|
38
33
|
@modem.Enable(true) == [] if disabled?
|
39
34
|
end
|
@@ -51,8 +46,9 @@ class NetworkManager
|
|
51
46
|
end
|
52
47
|
|
53
48
|
def status
|
54
|
-
@
|
49
|
+
@properties['org.freedesktop.ModemManager.Modem']['Enabled']
|
55
50
|
end
|
51
|
+
alias :enabled? :status
|
56
52
|
|
57
53
|
def operator_code
|
58
54
|
status["operator_code"] rescue nil
|
@@ -83,14 +79,55 @@ class NetworkManager
|
|
83
79
|
end
|
84
80
|
|
85
81
|
def send_ussd(message)
|
86
|
-
|
87
|
-
|
82
|
+
rsp = case ussd_state
|
83
|
+
when 'idle'
|
84
|
+
@ussd.Initiate(message)
|
85
|
+
when 'active'
|
86
|
+
@ussd.Cancel rescue nil
|
87
|
+
@ussd.Initiate(message)
|
88
|
+
when 'user-response'
|
89
|
+
@ussd.Respond(message)
|
90
|
+
end
|
91
|
+
|
92
|
+
# @ussd.Cancel rescue nil
|
93
|
+
rsp[0] if rsp.is_a?(Array)
|
94
|
+
end
|
95
|
+
|
96
|
+
def device
|
97
|
+
{
|
98
|
+
model: model,
|
99
|
+
port: @properties[MM_DBUS_INTERFACE_MODEM]['Device'],
|
100
|
+
unlock_required: @properties[MM_DBUS_INTERFACE_MODEM]['UnlockRequired'],
|
101
|
+
master_device: @properties[MM_DBUS_INTERFACE_MODEM]['MasterDevice'],
|
102
|
+
dbus_path: @bus_path
|
103
|
+
}
|
104
|
+
end
|
105
|
+
|
106
|
+
def ussd_state
|
107
|
+
@properties['org.freedesktop.ModemManager.Modem.Gsm.Ussd']['State']
|
88
108
|
end
|
89
109
|
|
90
110
|
def inspect
|
91
|
-
|
111
|
+
if enabled?
|
112
|
+
"#<NetworkManager::Modem##{object_id} IMEI: #{imei} Device: #{vendor} #{model} #{version} USSD_STATE: #{ussd_state}>"
|
113
|
+
else
|
114
|
+
"#<NetworkManager::Modem##{object_id} DISABLED Device: #{vendor} #{model} #{version}"
|
115
|
+
end
|
92
116
|
end
|
93
117
|
|
118
|
+
def to_h
|
119
|
+
{
|
120
|
+
imei: imei,
|
121
|
+
imsi: imsi,
|
122
|
+
signal: signal,
|
123
|
+
operator_code: operator_code,
|
124
|
+
device: device,
|
125
|
+
status: (enabled? ? :enabled : :disabled )
|
126
|
+
}
|
127
|
+
end
|
128
|
+
|
129
|
+
alias :dbus_path :bus_path
|
130
|
+
|
94
131
|
class << self
|
95
132
|
def fetch(paths_array, opts = {})
|
96
133
|
devices = []
|
data/lib/ruby-network-manager.rb
CHANGED
@@ -5,6 +5,7 @@ require 'network_manager/modem'
|
|
5
5
|
class NetworkManager
|
6
6
|
attr_reader :modem_service, :modem_bus_path
|
7
7
|
|
8
|
+
MODEM_MANAGER_BUS_PATH = '/org/freedesktop/ModemManager'
|
8
9
|
DBUS_PROPERTIES = 'freedesktop.DBus.Properties'
|
9
10
|
MM_DBUS_SERVICE = 'org.freedesktop.ModemManager'
|
10
11
|
MM_DBUS_INTERFACE_MODEM = 'org.freedesktop.ModemManager.Modem'
|
@@ -17,26 +18,34 @@ class NetworkManager
|
|
17
18
|
def initialize(opts = {})
|
18
19
|
set_options opts
|
19
20
|
@bus = DBus::SystemBus.instance
|
21
|
+
@mm_service = @bus.service(@modem_service)
|
22
|
+
@mm_object = @mm_service.object(@modem_bus_path)
|
20
23
|
end
|
21
24
|
|
22
25
|
# Discover all enabled devices
|
23
|
-
def
|
24
|
-
@mm_service ||= @bus[@modem_service]
|
25
|
-
@mm_object ||= @mm_service.object(@modem_bus_path)
|
26
|
+
def modems(opts = {})
|
26
27
|
@mm_object.introspect
|
27
|
-
|
28
28
|
NetworkManager::Modem.fetch(@mm_object.EnumerateDevices()[0], service: @mm_service)
|
29
29
|
end
|
30
30
|
|
31
|
-
|
31
|
+
# def on_device_add(&block)
|
32
|
+
# @bus = DBus::SystemBus.instance
|
33
|
+
# @mm_service = @bus.service('org.freedesktop.ModemManager')
|
34
|
+
# @mm_object = @mm_service.object('/org/freedesktop/ModemManager')
|
35
|
+
# @mm_object.introspect
|
32
36
|
|
33
|
-
|
37
|
+
# @properties = @mm_object.dup
|
38
|
+
# @properties.default_iface = DBUS_PROPERTIES
|
39
|
+
# @properties.introspect
|
40
|
+
|
41
|
+
# @properties.on_signal('DeviceAdded') {|x| puts x}
|
42
|
+
# end
|
34
43
|
|
35
44
|
protected
|
36
45
|
|
37
46
|
def set_options(opts = {})
|
38
|
-
@modem_service ||= MM_DBUS_SERVICE
|
39
|
-
@modem_bus_path ||=
|
47
|
+
@modem_service ||= MM_DBUS_SERVICE
|
48
|
+
@modem_bus_path ||= MODEM_MANAGER_BUS_PATH
|
40
49
|
|
41
50
|
opts.each do |k,v|
|
42
51
|
instance_variable_set("@#{k}", v) unless v.nil?
|
@@ -5,11 +5,11 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = "ruby-network-manager"
|
8
|
-
s.version = "0.
|
8
|
+
s.version = "1.0.10"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Ernest Bursa"]
|
12
|
-
s.date = "2013-
|
12
|
+
s.date = "2013-05-02"
|
13
13
|
s.description = "This gem is simple binding for NetworkManager that aims to be tool for managing network interfaces such as 3G modems."
|
14
14
|
s.email = "ernest@bzdury.pl"
|
15
15
|
s.extra_rdoc_files = [
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ruby-network-manager
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 1.0.10
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2013-
|
12
|
+
date: 2013-05-02 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: ruby-dbus
|
@@ -143,7 +143,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
143
143
|
version: '0'
|
144
144
|
segments:
|
145
145
|
- 0
|
146
|
-
hash:
|
146
|
+
hash: -4413202439074915028
|
147
147
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
148
148
|
none: false
|
149
149
|
requirements:
|