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 CHANGED
@@ -1,7 +1,4 @@
1
1
  source "https://rubygems.org"
2
- # Add dependencies required to use your gem here.
3
- # Example:
4
- # gem "activesupport", ">= 2.3.5"
5
2
 
6
3
  gem 'ruby-dbus', require: 'dbus', git: 'git://github.com/mvidner/ruby-dbus.git'
7
4
 
data/Gemfile.lock CHANGED
@@ -1,8 +1,8 @@
1
1
  GIT
2
2
  remote: git://github.com/mvidner/ruby-dbus.git
3
- revision: f25a6953df050ea53dd3bd455660ffabaa5dae75
3
+ revision: 617fb1a53a1ade138f1d7845e1937a901c302442
4
4
  specs:
5
- ruby-dbus (0.9.0)
5
+ ruby-dbus (0.9.1)
6
6
 
7
7
  GEM
8
8
  remote: https://rubygems.org/
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.modem_devices
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.14.1
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
- @s_modem.GetStatus[0]
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
- @ussd.Cancel
87
- @ussd.Initiate(message)
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
- "#<NetworkManager::Modem##{object_id} IMEI: #{imei} Device: #{vendor} #{model} #{version} >"
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 = []
@@ -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 modem_devices(opts = {})
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
- class << self
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
- end
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 || 'org.freedesktop.ModemManager'
39
- @modem_bus_path ||= '/org/freedesktop/ModemManager'
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.14.1"
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-04-20"
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.14.1
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-04-20 00:00:00.000000000 Z
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: 1807363723534505497
146
+ hash: -4413202439074915028
147
147
  required_rubygems_version: !ruby/object:Gem::Requirement
148
148
  none: false
149
149
  requirements: