ruby-dbus 0.11.0 → 0.11.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 +4 -4
- data/.rspec +1 -0
- data/NEWS +9 -0
- data/Rakefile +13 -6
- data/VERSION +1 -1
- data/doc/Reference.md +42 -6
- data/examples/doc/README.md +4 -0
- data/examples/doc/_extract_examples +37 -0
- data/lib/dbus/bus.rb +11 -5
- data/ruby-dbus.gemspec +1 -1
- data/{test → spec}/async_spec.rb +0 -0
- data/{test → spec}/binding_spec.rb +5 -5
- data/{test → spec}/bus_and_xml_backend_spec.rb +0 -0
- data/spec/bus_driver_spec.rb +28 -0
- data/{test → spec}/bus_spec.rb +0 -0
- data/{test → spec}/byte_array_spec.rb +0 -0
- data/{test → spec}/err_msg_spec.rb +0 -0
- data/{test → spec}/introspect_xml_parser_spec.rb +0 -0
- data/{test → spec}/introspection_spec.rb +0 -0
- data/{test → spec}/main_loop_spec.rb +0 -0
- data/{test → spec}/property_spec.rb +0 -0
- data/{test → spec}/server_robustness_spec.rb +0 -0
- data/{test → spec}/server_spec.rb +3 -3
- data/{test → spec}/service_newapi.rb +0 -0
- data/{test → spec}/session_bus_spec_manual.rb +1 -1
- data/{test → spec}/signal_spec.rb +0 -0
- data/spec/spec_helper.rb +102 -0
- data/{test → spec}/thread_safety_spec.rb +0 -0
- data/{test → spec}/tools/dbus-launch-simple +1 -1
- data/{test → spec}/tools/dbus-limited-session.conf +0 -0
- data/{test → spec}/tools/test_env +4 -3
- data/{test → spec}/tools/test_server +0 -0
- data/{test → spec}/type_spec.rb +0 -0
- data/{test → spec}/value_spec.rb +0 -0
- data/{test → spec}/variant_spec.rb +0 -0
- metadata +37 -42
- data/doc/ex-calling-methods.body.rb +0 -8
- data/doc/ex-calling-methods.rb +0 -3
- data/doc/ex-properties.body.rb +0 -9
- data/doc/ex-properties.rb +0 -3
- data/doc/ex-setup.rb +0 -7
- data/doc/ex-signal.body.rb +0 -20
- data/doc/ex-signal.rb +0 -3
- data/doc/example-helper.rb +0 -6
- data/test/bus_driver_spec.rb +0 -20
- data/test/spec_helper.rb +0 -33
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: cc5578c5ae560c5c6a45df876f49b57d165ba04f
|
4
|
+
data.tar.gz: 3f6ae11937fb008b74c8ddfa208288b5d6b0e584
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d3c0e16681e04bac203929ba4470e68431a88318d6b07cf34b6219e9ff9b19dd922874387bb43c8378eee0909703466aebd78882de20b5aec02065b4ec16226c
|
7
|
+
data.tar.gz: 30cdab56d6793c7027b2bce10b75fd6b1a9c31395fea2b741deb85ce00d79dc02a97ad79187416adebb36c612562d9ae03dc1750be69914adde4f9f6b65c46e1
|
data/.rspec
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
--color --format doc
|
data/NEWS
CHANGED
@@ -5,6 +5,15 @@ Note about bug numbers:
|
|
5
5
|
Issue#1 - http://github.com/mvidner/ruby-dbus/issues#issue/1
|
6
6
|
bnc#1 - https://bugzilla.novell.com/show_bug.cgi?id=1
|
7
7
|
|
8
|
+
== Ruby D-Bus 0.11.1 - 2016-05-12
|
9
|
+
|
10
|
+
Bug fixes:
|
11
|
+
* Fix default path finding on FreeBSD (Greg)
|
12
|
+
* Service#unexport fixed to really return the unexported object
|
13
|
+
|
14
|
+
Requirements:
|
15
|
+
* made tests compatible with RSpec 3
|
16
|
+
|
8
17
|
== Ruby D-Bus 0.11.0 - 2014-02-17
|
9
18
|
|
10
19
|
API:
|
data/Rakefile
CHANGED
@@ -9,10 +9,11 @@ require "packaging"
|
|
9
9
|
|
10
10
|
Packaging.configuration do |conf|
|
11
11
|
conf.obs_project = "devel:languages:ruby:extensions"
|
12
|
+
conf.obs_target = "openSUSE_Tumbleweed"
|
12
13
|
conf.package_name = "rubygem-ruby-dbus"
|
13
14
|
conf.obs_sr_project = "openSUSE:Factory"
|
14
15
|
conf.skip_license_check << /^[^\/]*$/
|
15
|
-
conf.skip_license_check << /^(doc|examples|
|
16
|
+
conf.skip_license_check << /^(doc|examples|spec)\/.*/
|
16
17
|
# "Ruby on Rails is released under the MIT License."
|
17
18
|
# but the files are missing copyright headers
|
18
19
|
conf.skip_license_check << /^lib\/dbus\/core_ext\//
|
@@ -22,15 +23,12 @@ desc 'Default: run specs in the proper environment'
|
|
22
23
|
task :default => :spec
|
23
24
|
task :test => :spec
|
24
25
|
|
25
|
-
RSpec::Core::RakeTask.new("bare:spec")
|
26
|
-
t.pattern = "**/test/**/*_spec.rb"
|
27
|
-
t.rspec_opts = "--color --format doc"
|
28
|
-
end
|
26
|
+
RSpec::Core::RakeTask.new("bare:spec")
|
29
27
|
|
30
28
|
%w(spec).each do |tname|
|
31
29
|
desc "Run bare:#{tname} in the proper environment"
|
32
30
|
task tname do |t|
|
33
|
-
cd "
|
31
|
+
cd "spec/tools" do
|
34
32
|
sh "./test_env rake bare:#{tname}"
|
35
33
|
end
|
36
34
|
end
|
@@ -56,3 +54,12 @@ task :tarball do |t|
|
|
56
54
|
cp Dir.glob("#{temp}/*.gem"), "package"
|
57
55
|
end
|
58
56
|
end
|
57
|
+
|
58
|
+
namespace :doc do
|
59
|
+
desc "Extract code examples from doc/Reference.md to examples/doc"
|
60
|
+
task :examples do
|
61
|
+
cd "examples/doc" do
|
62
|
+
sh "./_extract_examples ../../doc/Reference.md"
|
63
|
+
end
|
64
|
+
end
|
65
|
+
end
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.11.
|
1
|
+
0.11.1
|
data/doc/Reference.md
CHANGED
@@ -14,9 +14,11 @@ This section should be enough if you only want to consume DBus APIs.
|
|
14
14
|
|
15
15
|
#### Setting Up
|
16
16
|
|
17
|
-
|
17
|
+
Note that although the gem is named "ruby-dbus", the required name
|
18
|
+
is simply "dbus"
|
18
19
|
|
19
|
-
|
20
|
+
#! /usr/bin/env ruby
|
21
|
+
require "dbus"
|
20
22
|
|
21
23
|
#### Calling Methods
|
22
24
|
|
@@ -29,7 +31,15 @@ The following code is assumed as a prolog to all following ones
|
|
29
31
|
([I#28](https://github.com/mvidner/ruby-dbus/issues/28)).
|
30
32
|
3. Call one of its methods in a loop, solving [xkcd#196](http://xkcd.com/196).
|
31
33
|
|
32
|
-
|
34
|
+
|
35
|
+
mybus = DBus.session_bus
|
36
|
+
service = mybus['org.freedesktop.ScreenSaver']
|
37
|
+
object = service.object '/ScreenSaver'
|
38
|
+
object.introspect
|
39
|
+
loop do
|
40
|
+
object.SimulateUserActivity
|
41
|
+
sleep 5 * 60
|
42
|
+
end
|
33
43
|
|
34
44
|
##### Retrieving Return Values
|
35
45
|
|
@@ -38,7 +48,6 @@ accomodate the rare cases of a DBus method specifying more than one
|
|
38
48
|
*out* parameter. For nearly all methods you should use `Method[0]` or
|
39
49
|
`Method.first`
|
40
50
|
([I#30](https://github.com/mvidner/ruby-dbus/issues/30)).
|
41
|
-
|
42
51
|
|
43
52
|
# wrong
|
44
53
|
if upower_i.SuspendAllowed # [false] is true!
|
@@ -57,7 +66,15 @@ To access properties, think of the {DBus::ProxyObjectInterface interface} as a
|
|
57
66
|
or use {DBus::ProxyObjectInterface#all_properties} to get
|
58
67
|
an actual Hash of them.
|
59
68
|
|
60
|
-
|
69
|
+
sysbus = DBus.system_bus
|
70
|
+
upower_s = sysbus['org.freedesktop.UPower']
|
71
|
+
upower_o = upower_s.object '/org/freedesktop/UPower'
|
72
|
+
upower_o.introspect
|
73
|
+
upower_i = upower_o['org.freedesktop.UPower']
|
74
|
+
|
75
|
+
on_battery = upower_i['OnBattery']
|
76
|
+
|
77
|
+
puts "Is the computer on battery now? #{on_battery}"
|
61
78
|
|
62
79
|
(TODO a writable property example)
|
63
80
|
|
@@ -89,7 +106,26 @@ To receive signals for a specific object and interface, use
|
|
89
106
|
{DBus::ProxyObjectInterface#on\_signal}(name, &block) or
|
90
107
|
{DBus::ProxyObject#on_signal}(name, &block), for the default interface.
|
91
108
|
|
92
|
-
|
109
|
+
sysbus = DBus.system_bus
|
110
|
+
login_s = sysbus['org.freedesktop.login1'] # part of systemd
|
111
|
+
login_o = login_s.object '/org/freedesktop/login1'
|
112
|
+
login_o.introspect
|
113
|
+
login_o.default_iface = 'org.freedesktop.login1.Manager'
|
114
|
+
|
115
|
+
# to trigger this signal, login on the Linux console
|
116
|
+
login_o.on_signal("SessionNew") do |name, opath|
|
117
|
+
puts "New session: #{name}"
|
118
|
+
|
119
|
+
session_o = login_s.object(opath)
|
120
|
+
session_o.introspect
|
121
|
+
session_i = session_o['org.freedesktop.login1.Session']
|
122
|
+
uid, user_opath = session_i['User']
|
123
|
+
puts "Its UID: #{uid}"
|
124
|
+
end
|
125
|
+
|
126
|
+
main = DBus::Main.new
|
127
|
+
main << sysbus
|
128
|
+
main.run
|
93
129
|
|
94
130
|
### Intermediate Concepts
|
95
131
|
#### Names
|
@@ -0,0 +1,37 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
if ARGV[0].nil?
|
3
|
+
puts "Usage: #{$0} file.md"
|
4
|
+
exit
|
5
|
+
end
|
6
|
+
|
7
|
+
File.open(ARGV[0]) do |f|
|
8
|
+
title = nil
|
9
|
+
setup = ""
|
10
|
+
example = ""
|
11
|
+
f.each_line do |line|
|
12
|
+
case line
|
13
|
+
when /^#+ *(.*)/
|
14
|
+
new_title = $1
|
15
|
+
|
16
|
+
# write previous example
|
17
|
+
unless example.empty?
|
18
|
+
basename = title.downcase.gsub(/ +/, "_")
|
19
|
+
if basename == "setting_up"
|
20
|
+
setup = example
|
21
|
+
else
|
22
|
+
File.open("#{basename}.rb", "w") do |e|
|
23
|
+
e.write setup
|
24
|
+
e.write example
|
25
|
+
e.chmod(0755)
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
29
|
+
|
30
|
+
# set new
|
31
|
+
title = new_title
|
32
|
+
example = ""
|
33
|
+
when /^ (.*)/
|
34
|
+
example << $1 << "\n"
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
data/lib/dbus/bus.rb
CHANGED
@@ -77,9 +77,9 @@ module DBus
|
|
77
77
|
parent_node = get_node(parent_path, false)
|
78
78
|
return false unless parent_node
|
79
79
|
obj.service = nil
|
80
|
-
parent_node.delete(node_name)
|
80
|
+
parent_node.delete(node_name).object
|
81
81
|
end
|
82
|
-
|
82
|
+
|
83
83
|
# Get the object node corresponding to the given _path_. if _create_ is
|
84
84
|
# true, the the nodes in the path are created if they do not already exist.
|
85
85
|
def get_node(path, create = false)
|
@@ -597,14 +597,20 @@ module DBus
|
|
597
597
|
class ASessionBus < Connection
|
598
598
|
# Get the the default session bus.
|
599
599
|
def initialize
|
600
|
-
super(
|
600
|
+
super(self.class.session_bus_address)
|
601
601
|
send_hello
|
602
602
|
end
|
603
603
|
|
604
|
-
def
|
604
|
+
def self.session_bus_address
|
605
|
+
ENV["DBUS_SESSION_BUS_ADDRESS"] ||
|
606
|
+
address_from_file ||
|
607
|
+
"launchd:env=DBUS_LAUNCHD_SESSION_BUS_SOCKET"
|
608
|
+
end
|
609
|
+
|
610
|
+
def self.address_from_file
|
605
611
|
# systemd uses /etc/machine-id
|
606
612
|
# traditional dbus uses /var/lib/dbus/machine-id
|
607
|
-
machine_id_path = Dir['{/etc,/var/lib/dbus}/machine-id'].first
|
613
|
+
machine_id_path = Dir['{/etc,/var/lib/dbus,/var/db/dbus}/machine-id'].first
|
608
614
|
return nil unless machine_id_path
|
609
615
|
machine_id = File.read(machine_id_path).chomp
|
610
616
|
|
data/ruby-dbus.gemspec
CHANGED
@@ -12,7 +12,7 @@ GEMSPEC = Gem::Specification.new do |s|
|
|
12
12
|
s.author = "Ruby DBus Team"
|
13
13
|
s.email = "ruby-dbus-devel@lists.luon.net"
|
14
14
|
s.homepage = "https://trac.luon.net/ruby-dbus"
|
15
|
-
s.files = FileList["{doc,examples,lib,
|
15
|
+
s.files = FileList["{doc,examples,lib,spec}/**/*", "COPYING", "NEWS", "Rakefile", "README.md", "ruby-dbus.gemspec", "VERSION", ".rspec"].to_a.sort
|
16
16
|
s.require_path = "lib"
|
17
17
|
s.required_ruby_version = ">= 1.9.3"
|
18
18
|
s.add_development_dependency("packaging_rake_tasks")
|
data/{test → spec}/async_spec.rb
RENAMED
File without changes
|
@@ -52,11 +52,11 @@ describe "BindingTest" do
|
|
52
52
|
expect(e.message).to match(/failed as designed/)
|
53
53
|
end
|
54
54
|
end
|
55
|
-
|
55
|
+
|
56
56
|
it "tests dynamic interface definition" do
|
57
57
|
# interfaces can be defined dynamicaly
|
58
58
|
derived = DBus::Object.new "/org/ruby/MyDerivedInstance"
|
59
|
-
|
59
|
+
|
60
60
|
#define a new interface
|
61
61
|
derived.singleton_class.instance_eval do
|
62
62
|
dbus_interface "org.ruby.DynamicInterface" do
|
@@ -65,10 +65,10 @@ describe "BindingTest" do
|
|
65
65
|
end
|
66
66
|
end
|
67
67
|
end
|
68
|
-
|
68
|
+
|
69
69
|
# the object should have the new iface
|
70
70
|
ifaces = derived.intfs
|
71
|
-
expect(ifaces
|
71
|
+
expect(ifaces).to include "org.ruby.DynamicInterface"
|
72
72
|
end
|
73
|
-
|
73
|
+
|
74
74
|
end
|
File without changes
|
@@ -0,0 +1,28 @@
|
|
1
|
+
#!/usr/bin/env rspec
|
2
|
+
require_relative "spec_helper"
|
3
|
+
require "dbus"
|
4
|
+
|
5
|
+
describe DBus::Service do
|
6
|
+
context "when a private bus is set up" do
|
7
|
+
around(:each) do |example|
|
8
|
+
with_private_bus do
|
9
|
+
with_service_by_activation(&example)
|
10
|
+
end
|
11
|
+
end
|
12
|
+
|
13
|
+
let(:bus) { DBus::ASessionBus.new }
|
14
|
+
|
15
|
+
describe "#exists?" do
|
16
|
+
it "is true for an existing service" do
|
17
|
+
svc = bus.service("org.ruby.service")
|
18
|
+
svc.object("/").introspect # must activate the service first :-/
|
19
|
+
expect(svc.exists?).to be true
|
20
|
+
end
|
21
|
+
|
22
|
+
it "is false for a nonexisting service" do
|
23
|
+
svc = bus.service("org.ruby.nosuchservice")
|
24
|
+
expect(svc.exists?).to be false
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
data/{test → spec}/bus_spec.rb
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
@@ -36,18 +36,18 @@ describe "ServerTest" do
|
|
36
36
|
it "tests unexporting an object" do
|
37
37
|
obj = Foo.new "/org/ruby/Foo"
|
38
38
|
@svc.export obj
|
39
|
-
expect(@svc.unexport(obj)).to
|
39
|
+
expect(@svc.unexport(obj)).to be_a DBus::Object
|
40
40
|
end
|
41
41
|
|
42
42
|
it "tests unexporting an object not exported" do
|
43
43
|
obj = Foo.new "/org/ruby/Foo"
|
44
|
-
expect(@svc.unexport(obj)).to
|
44
|
+
expect(@svc.unexport(obj)).to be false
|
45
45
|
end
|
46
46
|
|
47
47
|
it "tests emiting signals" do
|
48
48
|
obj = Foo.new "/org/ruby/Foo"
|
49
49
|
@svc.export obj
|
50
|
-
obj.signal_without_arguments
|
50
|
+
obj.signal_without_arguments
|
51
51
|
obj.signal_with_argument(-0.1)
|
52
52
|
end
|
53
53
|
end
|
File without changes
|
File without changes
|
data/spec/spec_helper.rb
ADDED
@@ -0,0 +1,102 @@
|
|
1
|
+
if ENV["COVERAGE"]
|
2
|
+
coverage = ENV["COVERAGE"] == "true"
|
3
|
+
else
|
4
|
+
# heuristics: enable for interactive builds (but not in OBS) or in Travis
|
5
|
+
coverage = !!ENV["DISPLAY"] || ENV["TRAVIS"]
|
6
|
+
end
|
7
|
+
|
8
|
+
if coverage
|
9
|
+
require "simplecov"
|
10
|
+
SimpleCov.root File.expand_path("../..", __FILE__)
|
11
|
+
|
12
|
+
# do not cover specs
|
13
|
+
SimpleCov.add_filter "_spec.rb"
|
14
|
+
# do not cover the activesupport helpers
|
15
|
+
SimpleCov.add_filter "/core_ext/"
|
16
|
+
|
17
|
+
# use coveralls for on-line code coverage reporting at Travis CI
|
18
|
+
if ENV["TRAVIS"]
|
19
|
+
require "coveralls"
|
20
|
+
end
|
21
|
+
SimpleCov.start
|
22
|
+
end
|
23
|
+
|
24
|
+
$:.unshift File.expand_path("../../lib", __FILE__)
|
25
|
+
|
26
|
+
if Object.const_defined? "RSpec"
|
27
|
+
# http://betterspecs.org/#expect
|
28
|
+
RSpec.configure do |config|
|
29
|
+
config.expect_with :rspec do |c|
|
30
|
+
c.syntax = :expect
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
34
|
+
|
35
|
+
require "tempfile"
|
36
|
+
require "timeout"
|
37
|
+
|
38
|
+
TOPDIR = File.expand_path("../..", __FILE__)
|
39
|
+
|
40
|
+
# path of config file for a private bus
|
41
|
+
def config_file_path
|
42
|
+
"#{TOPDIR}/spec/tools/dbus-limited-session.conf"
|
43
|
+
end
|
44
|
+
|
45
|
+
# set ENV[variable] to value and restore it after block is done
|
46
|
+
def with_env(variable, value, &block)
|
47
|
+
old_value = ENV[variable]
|
48
|
+
ENV[variable] = value
|
49
|
+
block.call
|
50
|
+
ENV[variable] = old_value
|
51
|
+
end
|
52
|
+
|
53
|
+
# Set up a private session bus and run *block* with that.
|
54
|
+
def with_private_bus(&block)
|
55
|
+
address_file = Tempfile.new("dbus-address")
|
56
|
+
pid_file = Tempfile.new("dbus-pid")
|
57
|
+
output_file = Tempfile.new("dbus-output") # just in case
|
58
|
+
|
59
|
+
$temp_dir = Dir.mktmpdir
|
60
|
+
with_env("XDG_DATA_DIRS", $temp_dir) do
|
61
|
+
cmd = "dbus-daemon --nofork --config-file=#{config_file_path} --print-address=3 3>#{address_file.path} --print-pid=4 4>#{pid_file.path} >#{output_file.path} 2>&1 &"
|
62
|
+
system cmd
|
63
|
+
end
|
64
|
+
|
65
|
+
# wait until dbus-daemon writes the info
|
66
|
+
Timeout.timeout(10) do
|
67
|
+
until File.size?(address_file) and File.size?(pid_file) do
|
68
|
+
sleep 0.1
|
69
|
+
end
|
70
|
+
end
|
71
|
+
|
72
|
+
address = address_file.read.chomp
|
73
|
+
pid = pid_file.read.chomp.to_i
|
74
|
+
|
75
|
+
with_env("DBUS_SESSION_BUS_ADDRESS", address) do
|
76
|
+
block.call
|
77
|
+
end
|
78
|
+
|
79
|
+
Process.kill("TERM", pid)
|
80
|
+
FileUtils.rm_rf $temp_dir
|
81
|
+
end
|
82
|
+
|
83
|
+
def with_service_by_activation(&block)
|
84
|
+
name = "org.ruby.service"
|
85
|
+
exec = "#{TOPDIR}/spec/service_newapi.rb"
|
86
|
+
|
87
|
+
service_dir = "#{$temp_dir}/dbus-1/services"
|
88
|
+
FileUtils.mkdir_p service_dir
|
89
|
+
# file name actually does not need to match the service name
|
90
|
+
File.open("#{service_dir}/#{name}.service", "w") do |f|
|
91
|
+
s = <<EOS
|
92
|
+
[D-BUS Service]
|
93
|
+
Name=#{name}
|
94
|
+
Exec=#{exec}
|
95
|
+
EOS
|
96
|
+
f.write(s)
|
97
|
+
end
|
98
|
+
|
99
|
+
block.call
|
100
|
+
|
101
|
+
system "pkill -f #{exec}"
|
102
|
+
end
|
File without changes
|
@@ -12,7 +12,7 @@ my_dbus_launch () {
|
|
12
12
|
AF=`mktemp dbus.addr.XXXXXX` || exit
|
13
13
|
RM_FILES="$RM_FILES $PF $AF"
|
14
14
|
|
15
|
-
dbus-daemon --config-file
|
15
|
+
dbus-daemon --config-file=$(dirname $0)/dbus-limited-session.conf --print-address=3 3>$AF --print-pid=4 4>$PF &
|
16
16
|
# wait for the daemon to print the info
|
17
17
|
TRIES=0
|
18
18
|
while [ ! -s $AF -o ! -s $PF ]; do
|
File without changes
|
@@ -6,8 +6,9 @@
|
|
6
6
|
#export DBUS_VERBOSE=1
|
7
7
|
#export RUBYOPT="-d"
|
8
8
|
export RUBYOPT="$RUBYOPT -w"
|
9
|
-
|
10
|
-
|
9
|
+
DIR=$(dirname $0)
|
10
|
+
$DIR/test_server \
|
11
|
+
$DIR/../service_newapi.rb \
|
11
12
|
-- \
|
12
|
-
|
13
|
+
$DIR/dbus-launch-simple \
|
13
14
|
"$@"
|
File without changes
|
data/{test → spec}/type_spec.rb
RENAMED
File without changes
|
data/{test → spec}/value_spec.rb
RENAMED
File without changes
|
File without changes
|
metadata
CHANGED
@@ -1,41 +1,41 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ruby-dbus
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.11.
|
4
|
+
version: 0.11.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ruby DBus Team
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2016-05-12 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: packaging_rake_tasks
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- -
|
17
|
+
- - ">="
|
18
18
|
- !ruby/object:Gem::Version
|
19
19
|
version: '0'
|
20
20
|
type: :development
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
|
-
- -
|
24
|
+
- - ">="
|
25
25
|
- !ruby/object:Gem::Version
|
26
26
|
version: '0'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: rspec
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
|
-
- -
|
31
|
+
- - ">="
|
32
32
|
- !ruby/object:Gem::Version
|
33
33
|
version: '0'
|
34
34
|
type: :development
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
|
-
- -
|
38
|
+
- - ">="
|
39
39
|
- !ruby/object:Gem::Version
|
40
40
|
version: '0'
|
41
41
|
description: Pure Ruby module for interaction with D-Bus IPC system
|
@@ -44,6 +44,7 @@ executables: []
|
|
44
44
|
extensions: []
|
45
45
|
extra_rdoc_files: []
|
46
46
|
files:
|
47
|
+
- ".rspec"
|
47
48
|
- COPYING
|
48
49
|
- NEWS
|
49
50
|
- README.md
|
@@ -51,14 +52,8 @@ files:
|
|
51
52
|
- VERSION
|
52
53
|
- doc/Reference.md
|
53
54
|
- doc/Tutorial.md
|
54
|
-
- doc/
|
55
|
-
- doc/
|
56
|
-
- doc/ex-properties.body.rb
|
57
|
-
- doc/ex-properties.rb
|
58
|
-
- doc/ex-setup.rb
|
59
|
-
- doc/ex-signal.body.rb
|
60
|
-
- doc/ex-signal.rb
|
61
|
-
- doc/example-helper.rb
|
55
|
+
- examples/doc/README.md
|
56
|
+
- examples/doc/_extract_examples
|
62
57
|
- examples/gdbus/gdbus
|
63
58
|
- examples/gdbus/gdbus.glade
|
64
59
|
- examples/gdbus/launch.sh
|
@@ -92,31 +87,31 @@ files:
|
|
92
87
|
- lib/dbus/type.rb
|
93
88
|
- lib/dbus/xml.rb
|
94
89
|
- ruby-dbus.gemspec
|
95
|
-
-
|
96
|
-
-
|
97
|
-
-
|
98
|
-
-
|
99
|
-
-
|
100
|
-
-
|
101
|
-
-
|
102
|
-
-
|
103
|
-
-
|
104
|
-
-
|
105
|
-
-
|
106
|
-
-
|
107
|
-
-
|
108
|
-
-
|
109
|
-
-
|
110
|
-
-
|
111
|
-
-
|
112
|
-
-
|
113
|
-
-
|
114
|
-
-
|
115
|
-
-
|
116
|
-
-
|
117
|
-
-
|
118
|
-
-
|
119
|
-
-
|
90
|
+
- spec/async_spec.rb
|
91
|
+
- spec/binding_spec.rb
|
92
|
+
- spec/bus_and_xml_backend_spec.rb
|
93
|
+
- spec/bus_driver_spec.rb
|
94
|
+
- spec/bus_spec.rb
|
95
|
+
- spec/byte_array_spec.rb
|
96
|
+
- spec/err_msg_spec.rb
|
97
|
+
- spec/introspect_xml_parser_spec.rb
|
98
|
+
- spec/introspection_spec.rb
|
99
|
+
- spec/main_loop_spec.rb
|
100
|
+
- spec/property_spec.rb
|
101
|
+
- spec/server_robustness_spec.rb
|
102
|
+
- spec/server_spec.rb
|
103
|
+
- spec/service_newapi.rb
|
104
|
+
- spec/session_bus_spec_manual.rb
|
105
|
+
- spec/signal_spec.rb
|
106
|
+
- spec/spec_helper.rb
|
107
|
+
- spec/thread_safety_spec.rb
|
108
|
+
- spec/tools/dbus-launch-simple
|
109
|
+
- spec/tools/dbus-limited-session.conf
|
110
|
+
- spec/tools/test_env
|
111
|
+
- spec/tools/test_server
|
112
|
+
- spec/type_spec.rb
|
113
|
+
- spec/value_spec.rb
|
114
|
+
- spec/variant_spec.rb
|
120
115
|
homepage: https://trac.luon.net/ruby-dbus
|
121
116
|
licenses:
|
122
117
|
- LGPL v2.1
|
@@ -127,17 +122,17 @@ require_paths:
|
|
127
122
|
- lib
|
128
123
|
required_ruby_version: !ruby/object:Gem::Requirement
|
129
124
|
requirements:
|
130
|
-
- -
|
125
|
+
- - ">="
|
131
126
|
- !ruby/object:Gem::Version
|
132
127
|
version: 1.9.3
|
133
128
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
134
129
|
requirements:
|
135
|
-
- -
|
130
|
+
- - ">="
|
136
131
|
- !ruby/object:Gem::Version
|
137
132
|
version: '0'
|
138
133
|
requirements: []
|
139
134
|
rubyforge_project:
|
140
|
-
rubygems_version: 2.
|
135
|
+
rubygems_version: 2.2.2
|
141
136
|
signing_key:
|
142
137
|
specification_version: 4
|
143
138
|
summary: Ruby module for interaction with D-Bus
|
data/doc/ex-calling-methods.rb
DELETED
data/doc/ex-properties.body.rb
DELETED
@@ -1,9 +0,0 @@
|
|
1
|
-
sysbus = DBus.system_bus
|
2
|
-
upower_s = sysbus['org.freedesktop.UPower']
|
3
|
-
upower_o = upower_s.object '/org/freedesktop/UPower'
|
4
|
-
upower_o.introspect
|
5
|
-
upower_i = upower_o['org.freedesktop.UPower']
|
6
|
-
|
7
|
-
on_battery = upower_i['OnBattery']
|
8
|
-
|
9
|
-
puts "Is the computer on battery now? #{on_battery}"
|
data/doc/ex-properties.rb
DELETED
data/doc/ex-setup.rb
DELETED
data/doc/ex-signal.body.rb
DELETED
@@ -1,20 +0,0 @@
|
|
1
|
-
sysbus = DBus.system_bus
|
2
|
-
login_s = sysbus['org.freedesktop.login1'] # part of systemd
|
3
|
-
login_o = login_s.object '/org/freedesktop/login1'
|
4
|
-
login_o.introspect
|
5
|
-
login_o.default_iface = 'org.freedesktop.login1.Manager'
|
6
|
-
|
7
|
-
# to trigger this signal, login on the Linux console
|
8
|
-
login_o.on_signal("SessionNew") do |name, opath|
|
9
|
-
puts "New session: #{name}"
|
10
|
-
|
11
|
-
session_o = login_s.object(opath)
|
12
|
-
session_o.introspect
|
13
|
-
session_i = session_o['org.freedesktop.login1.Session']
|
14
|
-
uid, user_opath = session_i['User']
|
15
|
-
puts "Its UID: #{uid}"
|
16
|
-
end
|
17
|
-
|
18
|
-
main = DBus::Main.new
|
19
|
-
main << sysbus
|
20
|
-
main.run
|
data/doc/ex-signal.rb
DELETED
data/doc/example-helper.rb
DELETED
data/test/bus_driver_spec.rb
DELETED
@@ -1,20 +0,0 @@
|
|
1
|
-
#!/usr/bin/env rspec
|
2
|
-
require_relative "spec_helper"
|
3
|
-
require "dbus"
|
4
|
-
|
5
|
-
describe DBus::Service do
|
6
|
-
let(:bus) { DBus::ASessionBus.new }
|
7
|
-
|
8
|
-
describe "#exists?" do
|
9
|
-
it "is true for an existing service" do
|
10
|
-
svc = bus.service("org.ruby.service")
|
11
|
-
svc.object("/").introspect # must activate the service first :-/
|
12
|
-
expect(svc.exists?).to be_true
|
13
|
-
end
|
14
|
-
|
15
|
-
it "is false for a nonexisting service" do
|
16
|
-
svc = bus.service("org.ruby.nosuchservice")
|
17
|
-
expect(svc.exists?).to be_false
|
18
|
-
end
|
19
|
-
end
|
20
|
-
end
|
data/test/spec_helper.rb
DELETED
@@ -1,33 +0,0 @@
|
|
1
|
-
if ENV["COVERAGE"]
|
2
|
-
coverage = ENV["COVERAGE"] == "true"
|
3
|
-
else
|
4
|
-
# heuristics: enable for interactive builds (but not in OBS) or in Travis
|
5
|
-
coverage = !!ENV["DISPLAY"] || ENV["TRAVIS"]
|
6
|
-
end
|
7
|
-
|
8
|
-
if coverage
|
9
|
-
require "simplecov"
|
10
|
-
SimpleCov.root File.expand_path("../..", __FILE__)
|
11
|
-
|
12
|
-
# do not cover specs
|
13
|
-
SimpleCov.add_filter "_spec.rb"
|
14
|
-
# do not cover the activesupport helpers
|
15
|
-
SimpleCov.add_filter "/core_ext/"
|
16
|
-
|
17
|
-
# use coveralls for on-line code coverage reporting at Travis CI
|
18
|
-
if ENV["TRAVIS"]
|
19
|
-
require "coveralls"
|
20
|
-
end
|
21
|
-
SimpleCov.start
|
22
|
-
end
|
23
|
-
|
24
|
-
$:.unshift File.expand_path("../../lib", __FILE__)
|
25
|
-
|
26
|
-
if Object.const_defined? "RSpec"
|
27
|
-
# http://betterspecs.org/#expect
|
28
|
-
RSpec.configure do |config|
|
29
|
-
config.expect_with :rspec do |c|
|
30
|
-
c.syntax = :expect
|
31
|
-
end
|
32
|
-
end
|
33
|
-
end
|