ruby-dbus 0.12.0 → 0.13.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/NEWS.md +344 -0
- data/Rakefile +21 -15
- data/VERSION +1 -1
- data/doc/Reference.md +26 -37
- data/examples/doc/_extract_examples +4 -4
- data/examples/gdbus/gdbus +40 -39
- data/examples/no-introspect/nm-test.rb +1 -3
- data/examples/no-introspect/tracker-test.rb +2 -4
- data/examples/rhythmbox/playpause.rb +1 -2
- data/examples/service/call_service.rb +0 -3
- data/examples/service/service_newapi.rb +3 -4
- data/examples/simple/call_introspect.rb +0 -3
- data/examples/simple/get_id.rb +1 -3
- data/examples/simple/properties.rb +3 -4
- data/examples/utils/listnames.rb +6 -7
- data/examples/utils/notify.rb +3 -5
- data/lib/dbus.rb +8 -20
- data/lib/dbus/auth.rb +59 -61
- data/lib/dbus/bus.rb +86 -97
- data/lib/dbus/error.rb +1 -1
- data/lib/dbus/export.rb +20 -18
- data/lib/dbus/introspect.rb +26 -28
- data/lib/dbus/logger.rb +1 -1
- data/lib/dbus/marshall.rb +72 -74
- data/lib/dbus/matchrule.rb +22 -26
- data/lib/dbus/message.rb +24 -33
- data/lib/dbus/message_queue.rb +30 -30
- data/lib/dbus/proxy_object.rb +34 -30
- data/lib/dbus/proxy_object_factory.rb +5 -2
- data/lib/dbus/proxy_object_interface.rb +10 -8
- data/lib/dbus/type.rb +154 -156
- data/lib/dbus/xml.rb +22 -16
- data/ruby-dbus.gemspec +15 -3
- data/spec/async_spec.rb +2 -4
- data/spec/binding_spec.rb +1 -5
- data/spec/bus_and_xml_backend_spec.rb +6 -9
- data/spec/bus_spec.rb +1 -1
- data/spec/byte_array_spec.rb +0 -2
- data/spec/err_msg_spec.rb +13 -10
- data/spec/introspect_xml_parser_spec.rb +2 -2
- data/spec/introspection_spec.rb +1 -1
- data/spec/main_loop_spec.rb +4 -5
- data/spec/property_spec.rb +0 -3
- data/spec/proxy_object_spec.rb +42 -0
- data/spec/server_robustness_spec.rb +0 -2
- data/spec/service_newapi.rb +51 -41
- data/spec/session_bus_spec.rb +6 -7
- data/spec/signal_spec.rb +2 -3
- data/spec/spec_helper.rb +28 -24
- data/spec/thread_safety_spec.rb +1 -2
- data/spec/type_spec.rb +2 -2
- data/spec/value_spec.rb +7 -10
- data/spec/variant_spec.rb +15 -16
- metadata +60 -3
- data/NEWS +0 -279
data/spec/session_bus_spec.rb
CHANGED
@@ -19,14 +19,14 @@ describe DBus::ASessionBus do
|
|
19
19
|
end
|
20
20
|
|
21
21
|
describe "#address_from_file" do
|
22
|
-
let(:session_bus_file_path) {
|
22
|
+
let(:session_bus_file_path) { %r{\.dbus/session-bus/baz-\d} }
|
23
23
|
|
24
24
|
before do
|
25
25
|
# mocks of files for address_from_file method
|
26
26
|
machine_id_path = File.expand_path("/etc/machine-id", __FILE__)
|
27
|
-
expect(Dir).to receive(:[]).with(any_args) {[machine_id_path] }
|
27
|
+
expect(Dir).to receive(:[]).with(any_args) { [machine_id_path] }
|
28
28
|
expect(File).to receive(:read).with(machine_id_path) { "baz" }
|
29
|
-
expect(File).to receive(:
|
29
|
+
expect(File).to receive(:exist?).with(session_bus_file_path) { true }
|
30
30
|
end
|
31
31
|
|
32
32
|
around(:each) do |example|
|
@@ -36,9 +36,8 @@ describe DBus::ASessionBus do
|
|
36
36
|
end
|
37
37
|
|
38
38
|
context "when DBUS_SESSION_BUS_ADDRESS from file is surrounded by quotation marks" do
|
39
|
-
|
40
39
|
it "returns session bus address without single quotation marks" do
|
41
|
-
expect(File).to receive(:open).with(session_bus_file_path) { <<-EOS.gsub(/^\s*/,
|
40
|
+
expect(File).to receive(:open).with(session_bus_file_path) { <<-EOS.gsub(/^\s*/, "") }
|
42
41
|
DBUS_SESSION_BUS_ADDRESS='#{dbus_session_bus_address}'
|
43
42
|
DBUS_SESSION_BUS_PID=12345
|
44
43
|
DBUS_SESSION_BUS_WINDOWID=12345678
|
@@ -47,7 +46,7 @@ describe DBus::ASessionBus do
|
|
47
46
|
end
|
48
47
|
|
49
48
|
it "returns session bus address without double quotation marks" do
|
50
|
-
expect(File).to receive(:open).with(session_bus_file_path) { <<-EOS.gsub(/^\s*/,
|
49
|
+
expect(File).to receive(:open).with(session_bus_file_path) { <<-EOS.gsub(/^\s*/, "") }
|
51
50
|
DBUS_SESSION_BUS_ADDRESS="#{dbus_session_bus_address}"
|
52
51
|
DBUS_SESSION_BUS_PID=12345
|
53
52
|
DBUS_SESSION_BUS_WINDOWID=12345678
|
@@ -58,7 +57,7 @@ describe DBus::ASessionBus do
|
|
58
57
|
|
59
58
|
context "when DBUS_SESSION_BUS_ADDRESS from file is not surrounded by any quotation marks" do
|
60
59
|
it "returns session bus address as it is" do
|
61
|
-
expect(File).to receive(:open).with(session_bus_file_path) { <<-EOS.gsub(/^\s*/,
|
60
|
+
expect(File).to receive(:open).with(session_bus_file_path) { <<-EOS.gsub(/^\s*/, "") }
|
62
61
|
DBUS_SESSION_BUS_ADDRESS=#{dbus_session_bus_address}
|
63
62
|
DBUS_SESSION_BUS_PID=12345
|
64
63
|
DBUS_SESSION_BUS_WINDOWID=12345678
|
data/spec/signal_spec.rb
CHANGED
@@ -8,7 +8,6 @@ describe "SignalHandlerTest" do
|
|
8
8
|
@session_bus = DBus::ASessionBus.new
|
9
9
|
svc = @session_bus.service("org.ruby.service")
|
10
10
|
@obj = svc.object("/org/ruby/MyInstance")
|
11
|
-
@obj.introspect # necessary
|
12
11
|
@obj.default_iface = "org.ruby.Loop"
|
13
12
|
@intf = @obj["org.ruby.Loop"]
|
14
13
|
|
@@ -35,7 +34,7 @@ describe "SignalHandlerTest" do
|
|
35
34
|
|
36
35
|
quitter = Thread.new do
|
37
36
|
DBus.logger.debug "sleep before quit"
|
38
|
-
# FIXME if we sleep for too long
|
37
|
+
# FIXME: if we sleep for too long
|
39
38
|
# the socket will be drained and we deadlock in a select.
|
40
39
|
# It could be worked around by sending ourselves a Unix signal
|
41
40
|
# (with a dummy handler) to interrupt the select
|
@@ -73,7 +72,7 @@ describe "SignalHandlerTest" do
|
|
73
72
|
expect(started).to eq(true)
|
74
73
|
expect(counter).to eq(1)
|
75
74
|
expect { @intf.on_signal }.to raise_error(ArgumentError) # not enough
|
76
|
-
expect { @intf.on_signal
|
75
|
+
expect { @intf.on_signal "to", "many", "yarrrrr!" }.to raise_error(ArgumentError)
|
77
76
|
end
|
78
77
|
|
79
78
|
it "tests too many rules" do
|
data/spec/spec_helper.rb
CHANGED
@@ -1,9 +1,10 @@
|
|
1
|
-
if ENV["COVERAGE"]
|
2
|
-
|
3
|
-
else
|
4
|
-
|
5
|
-
|
6
|
-
|
1
|
+
coverage = if ENV["COVERAGE"]
|
2
|
+
ENV["COVERAGE"] == "true"
|
3
|
+
else
|
4
|
+
# heuristics: enable for interactive builds (but not in OBS)
|
5
|
+
# or in Travis
|
6
|
+
ENV["DISPLAY"] || ENV["TRAVIS"]
|
7
|
+
end
|
7
8
|
|
8
9
|
if coverage
|
9
10
|
require "simplecov"
|
@@ -21,7 +22,7 @@ if coverage
|
|
21
22
|
SimpleCov.start
|
22
23
|
end
|
23
24
|
|
24
|
-
|
25
|
+
$LOAD_PATH.unshift File.expand_path("../../lib", __FILE__)
|
25
26
|
|
26
27
|
if Object.const_defined? "RSpec"
|
27
28
|
# http://betterspecs.org/#expect
|
@@ -56,35 +57,38 @@ def with_private_bus(&block)
|
|
56
57
|
pid_file = Tempfile.new("dbus-pid")
|
57
58
|
output_file = Tempfile.new("dbus-output") # just in case
|
58
59
|
|
59
|
-
|
60
|
-
with_env("XDG_DATA_DIRS",
|
61
|
-
cmd = "dbus-daemon --nofork --config-file=#{config_file_path}
|
60
|
+
temp_dir = Dir.mktmpdir
|
61
|
+
with_env("XDG_DATA_DIRS", temp_dir) do
|
62
|
+
cmd = "dbus-daemon --nofork --config-file=#{config_file_path} " \
|
63
|
+
"--print-address=3 3>#{address_file.path} " \
|
64
|
+
"--print-pid=4 4>#{pid_file.path} " \
|
65
|
+
">#{output_file.path} 2>&1 &"
|
62
66
|
system cmd
|
63
|
-
end
|
64
67
|
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
68
|
+
# wait until dbus-daemon writes the info
|
69
|
+
Timeout.timeout(10) do
|
70
|
+
until File.size?(address_file) && File.size?(pid_file)
|
71
|
+
sleep 0.1
|
72
|
+
end
|
69
73
|
end
|
70
|
-
end
|
71
74
|
|
72
|
-
|
73
|
-
|
75
|
+
address = address_file.read.chomp
|
76
|
+
pid = pid_file.read.chomp.to_i
|
74
77
|
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
+
with_env("DBUS_SESSION_BUS_ADDRESS", address) do
|
79
|
+
block.call
|
80
|
+
end
|
78
81
|
|
79
|
-
|
80
|
-
|
82
|
+
Process.kill("TERM", pid)
|
83
|
+
end
|
84
|
+
FileUtils.rm_rf temp_dir
|
81
85
|
end
|
82
86
|
|
83
87
|
def with_service_by_activation(&block)
|
84
88
|
name = "org.ruby.service"
|
85
89
|
exec = "#{TOPDIR}/spec/service_newapi.rb"
|
86
90
|
|
87
|
-
service_dir = "#{
|
91
|
+
service_dir = "#{ENV["XDG_DATA_DIRS"]}/dbus-1/services"
|
88
92
|
FileUtils.mkdir_p service_dir
|
89
93
|
# file name actually does not need to match the service name
|
90
94
|
File.open("#{service_dir}/#{name}.service", "w") do |f|
|
data/spec/thread_safety_spec.rb
CHANGED
@@ -15,7 +15,6 @@ describe "ThreadSafetyTest" do
|
|
15
15
|
bus = DBus::ASessionBus.new
|
16
16
|
svc = bus.service("org.ruby.service")
|
17
17
|
obj = svc.object("/org/ruby/MyInstance")
|
18
|
-
obj.introspect
|
19
18
|
obj.default_iface = "org.ruby.SampleInterface"
|
20
19
|
|
21
20
|
10.times do |i|
|
@@ -26,6 +25,6 @@ describe "ThreadSafetyTest" do
|
|
26
25
|
end
|
27
26
|
end
|
28
27
|
end
|
29
|
-
jobs.each
|
28
|
+
jobs.each(&:join)
|
30
29
|
end
|
31
30
|
end
|
data/spec/type_spec.rb
CHANGED
@@ -6,13 +6,13 @@ describe DBus do
|
|
6
6
|
describe ".type" do
|
7
7
|
%w{i ai a(ii) aai}.each do |s|
|
8
8
|
it "parses some type #{s}" do
|
9
|
-
expect(DBus
|
9
|
+
expect(DBus.type(s).to_s).to be_eql s
|
10
10
|
end
|
11
11
|
end
|
12
12
|
|
13
13
|
%w{aa (ii ii) hrmp}.each do |s|
|
14
14
|
it "raises exception for invalid type #{s}" do
|
15
|
-
expect {DBus
|
15
|
+
expect { DBus.type(s).to_s }.to raise_error DBus::Type::SignatureException
|
16
16
|
end
|
17
17
|
end
|
18
18
|
end
|
data/spec/value_spec.rb
CHANGED
@@ -8,14 +8,13 @@ describe "ValueTest" do
|
|
8
8
|
session_bus = DBus::ASessionBus.new
|
9
9
|
@svc = session_bus.service("org.ruby.service")
|
10
10
|
@obj = @svc.object("/org/ruby/MyInstance")
|
11
|
-
@obj.introspect # necessary
|
12
11
|
@obj.default_iface = "org.ruby.SampleInterface"
|
13
12
|
end
|
14
13
|
|
15
14
|
it "tests passing an array of structs through a variant" do
|
16
|
-
triple = [
|
15
|
+
triple = ["a(uuu)", []]
|
17
16
|
@obj.test_variant(triple)
|
18
|
-
quadruple = [
|
17
|
+
quadruple = ["a(uuuu)", []] # a(uuu) works fine
|
19
18
|
# The bus disconnects us because of malformed message,
|
20
19
|
# code 12: DBUS_INVALID_TOO_MUCH_DATA
|
21
20
|
@obj.test_variant(quadruple)
|
@@ -39,7 +38,6 @@ describe "ValueTest" do
|
|
39
38
|
|
40
39
|
it "retrieves a single return value with API V1" do
|
41
40
|
obj = @svc["/org/ruby/MyInstance"]
|
42
|
-
obj.introspect
|
43
41
|
obj.default_iface = "org.ruby.SampleInterface"
|
44
42
|
|
45
43
|
expect(obj.bounce_variant("cuckoo")).to eq("cuckoo")
|
@@ -51,16 +49,15 @@ describe "ValueTest" do
|
|
51
49
|
|
52
50
|
# these are ambiguous
|
53
51
|
it "tests pairs with a string" do
|
54
|
-
|
55
52
|
# deprecated
|
56
53
|
expect(@obj.bounce_variant(["s", "foo"])[0]).to eq("foo")
|
57
|
-
|
54
|
+
|
58
55
|
expect(@obj.bounce_variant(DBus.variant("s", "foo"))[0]).to eq("foo")
|
59
56
|
expect(@obj.bounce_variant([DBus.type("s"), "foo"])[0]).to eq("foo")
|
60
57
|
|
61
58
|
# does not work, because the server side forgets the explicit typing
|
62
|
-
# assert_equal ["s", "foo"], @obj.bounce_variant(["av", ["s", "foo"]])[0]
|
63
|
-
# assert_equal ["s", "foo"], @obj.bounce_variant(["as", ["s", "foo"]])[0]
|
59
|
+
# assert_equal ["s", "foo"], @obj.bounce_variant(["av", ["s", "foo"]])[0]
|
60
|
+
# assert_equal ["s", "foo"], @obj.bounce_variant(["as", ["s", "foo"]])[0]
|
64
61
|
|
65
62
|
# instead, use this to demonstrate that the variant is passed as expected
|
66
63
|
expect(@obj.variant_size(["s", "four"])[0]).to eq(4)
|
@@ -73,8 +70,8 @@ describe "ValueTest" do
|
|
73
70
|
# https://trac.luon.net/ruby-dbus/ticket/30
|
74
71
|
@obj.default_iface = "org.ruby.Ticket30"
|
75
72
|
choices = []
|
76
|
-
choices << [
|
77
|
-
choices << [
|
73
|
+
choices << ["s", "Plan A"]
|
74
|
+
choices << ["s", "Plan B"]
|
78
75
|
# old explicit typing
|
79
76
|
expect(@obj.Sybilla(choices)[0]).to eq("Do Plan A")
|
80
77
|
# automatic typing
|
data/spec/variant_spec.rb
CHANGED
@@ -25,7 +25,7 @@ describe "VariantTest" do
|
|
25
25
|
# less specific test: just run it thru a loopback
|
26
26
|
expect(make_variant(3_000_000_000)).to eq(["x", 3_000_000_000])
|
27
27
|
expect(make_variant(5_000_000_000)).to eq(["x", 5_000_000_000])
|
28
|
-
|
28
|
+
|
29
29
|
expect(make_variant(3.14)).to eq(["d", 3.14])
|
30
30
|
|
31
31
|
expect(make_variant("foo")).to eq(["s", "foo"])
|
@@ -34,32 +34,31 @@ describe "VariantTest" do
|
|
34
34
|
# left: strruct, array, dict
|
35
35
|
# object path: detect exported objects?, signature
|
36
36
|
|
37
|
-
# # by Ruby types
|
38
|
-
# class Foo
|
39
|
-
# end
|
40
|
-
# make_variant(Foo.new)
|
41
|
-
# if we don;t understand a class, the error should be informative -> new exception
|
37
|
+
# # by Ruby types
|
38
|
+
# class Foo
|
39
|
+
# end
|
40
|
+
# make_variant(Foo.new)
|
41
|
+
# if we don;t understand a class, the error should be informative -> new exception
|
42
42
|
end
|
43
43
|
|
44
44
|
it "tests make variant array" do
|
45
45
|
ai = [1, 2, 3]
|
46
|
-
# as = ["one", "two", "three"]
|
47
|
-
|
48
|
-
# expect(make_variant(ai)).to eq(["ai", [1, 2, 3]])
|
46
|
+
# as = ["one", "two", "three"]
|
47
|
+
# which?
|
48
|
+
# expect(make_variant(ai)).to eq(["ai", [1, 2, 3]])
|
49
49
|
expect(make_variant(ai)).to eq(["av", [["i", 1],
|
50
|
-
|
51
|
-
|
50
|
+
["i", 2],
|
51
|
+
["i", 3]]])
|
52
52
|
a0 = []
|
53
53
|
expect(make_variant(a0)).to eq(["av", []])
|
54
|
-
|
55
54
|
end
|
56
55
|
|
57
56
|
it "tests make variant hash" do
|
58
|
-
h = {"k1" => "v1", "k2" => "v2"}
|
57
|
+
h = { "k1" => "v1", "k2" => "v2" }
|
59
58
|
expect(make_variant(h)).to eq(["a{sv}", {
|
60
|
-
|
61
|
-
|
62
|
-
|
59
|
+
"k1" => ["s", "v1"],
|
60
|
+
"k2" => ["s", "v2"]
|
61
|
+
}])
|
63
62
|
h0 = {}
|
64
63
|
expect(make_variant(h0)).to eq(["a{sv}", {}])
|
65
64
|
end
|
metadata
CHANGED
@@ -1,15 +1,29 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ruby-dbus
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.13.0
|
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: 2016-09-
|
11
|
+
date: 2016-09-21 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: coveralls
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - ">="
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '0'
|
20
|
+
type: :development
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - ">="
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '0'
|
13
27
|
- !ruby/object:Gem::Dependency
|
14
28
|
name: packaging_rake_tasks
|
15
29
|
requirement: !ruby/object:Gem::Requirement
|
@@ -24,8 +38,50 @@ dependencies:
|
|
24
38
|
- - ">="
|
25
39
|
- !ruby/object:Gem::Version
|
26
40
|
version: '0'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: rake
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - ">="
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '0'
|
48
|
+
type: :development
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - ">="
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '0'
|
27
55
|
- !ruby/object:Gem::Dependency
|
28
56
|
name: rspec
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - "~>"
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '3'
|
62
|
+
type: :development
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - "~>"
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '3'
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: rubocop
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - '='
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: 0.41.2
|
76
|
+
type: :development
|
77
|
+
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - '='
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: 0.41.2
|
83
|
+
- !ruby/object:Gem::Dependency
|
84
|
+
name: simplecov
|
29
85
|
requirement: !ruby/object:Gem::Requirement
|
30
86
|
requirements:
|
31
87
|
- - ">="
|
@@ -46,7 +102,7 @@ extra_rdoc_files: []
|
|
46
102
|
files:
|
47
103
|
- ".rspec"
|
48
104
|
- COPYING
|
49
|
-
- NEWS
|
105
|
+
- NEWS.md
|
50
106
|
- README.md
|
51
107
|
- Rakefile
|
52
108
|
- VERSION
|
@@ -100,6 +156,7 @@ files:
|
|
100
156
|
- spec/introspection_spec.rb
|
101
157
|
- spec/main_loop_spec.rb
|
102
158
|
- spec/property_spec.rb
|
159
|
+
- spec/proxy_object_spec.rb
|
103
160
|
- spec/server_robustness_spec.rb
|
104
161
|
- spec/server_spec.rb
|
105
162
|
- spec/service_newapi.rb
|
data/NEWS
DELETED
@@ -1,279 +0,0 @@
|
|
1
|
-
= Ruby D-Bus NEWS
|
2
|
-
|
3
|
-
Note about bug numbers:
|
4
|
-
Ticket#1 - https://trac.luon.net/ruby-dbus/ticket/1
|
5
|
-
Issue#1 - http://github.com/mvidner/ruby-dbus/issues#issue/1
|
6
|
-
bnc#1 - https://bugzilla.novell.com/show_bug.cgi?id=1
|
7
|
-
|
8
|
-
== Unreleased
|
9
|
-
|
10
|
-
== Ruby D-Bus 0.12.0 - 2016-09-12
|
11
|
-
|
12
|
-
API:
|
13
|
-
* Added proxy objects whose methods return single values instead of arrays
|
14
|
-
(use Service#[] instead of Service#object; Issue#30).
|
15
|
-
|
16
|
-
Requirements:
|
17
|
-
* Require ruby 2.0.0, stopped supporting 1.9.3.
|
18
|
-
|
19
|
-
== Ruby D-Bus 0.11.2 - 2016-09-11
|
20
|
-
|
21
|
-
Bug fixes:
|
22
|
-
* Fixed reading a quoted session bus address, as written by dbus-1.10.10
|
23
|
-
(Yasuhiro Asaka)
|
24
|
-
|
25
|
-
== Ruby D-Bus 0.11.1 - 2016-05-12
|
26
|
-
|
27
|
-
Bug fixes:
|
28
|
-
* Fix default path finding on FreeBSD (Greg)
|
29
|
-
* Service#unexport fixed to really return the unexported object
|
30
|
-
|
31
|
-
Requirements:
|
32
|
-
* made tests compatible with RSpec 3
|
33
|
-
|
34
|
-
== Ruby D-Bus 0.11.0 - 2014-02-17
|
35
|
-
|
36
|
-
API:
|
37
|
-
* Connection: split off MessageQueue, marked other methods as private.
|
38
|
-
|
39
|
-
Requirements:
|
40
|
-
* converted tests to RSpec, rather mechanically for now
|
41
|
-
|
42
|
-
== Ruby D-Bus 0.10.0 - 2014-01-10
|
43
|
-
|
44
|
-
Bug fixes:
|
45
|
-
* fixed "Interfaces added with singleton_class.instance_eval aren't
|
46
|
-
exported" (Issue#22, by miaoufkirsh)
|
47
|
-
|
48
|
-
Requirements:
|
49
|
-
* Require ruby 1.9.3, stopped supporting 1.8.7.
|
50
|
-
|
51
|
-
== Ruby D-Bus 0.9.3 - 2014-01-02
|
52
|
-
|
53
|
-
Bug fixes:
|
54
|
-
* re-added COPYING, NEWS, README.md to the gem (Issue#47,
|
55
|
-
by Cédric Boutillier)
|
56
|
-
|
57
|
-
Packaging:
|
58
|
-
* use packaging_rake_tasks
|
59
|
-
|
60
|
-
== Ruby D-Bus 0.9.2 - 2013-05-08
|
61
|
-
|
62
|
-
Features:
|
63
|
-
* Ruby strings can be passed where byte arrays ("ay") are expected
|
64
|
-
(Issue#40, by Jesper B. Rosenkilde)
|
65
|
-
|
66
|
-
Bug fixes:
|
67
|
-
* Fixed accessing ModemManager properties (Issue#41, reported
|
68
|
-
by Ernest Bursa). MM introspection produces two elements
|
69
|
-
for a single interface; merge them.
|
70
|
-
|
71
|
-
== Ruby D-Bus 0.9.1 - 2013-04-23
|
72
|
-
|
73
|
-
Bug fixes:
|
74
|
-
* Prefer /etc/machine-id to /var/lib/dbus/machine-id
|
75
|
-
when DBUS_SESSION_BUS_ADDRESS is unset (Issue#39, by WU Jun).
|
76
|
-
|
77
|
-
== Ruby D-Bus 0.9.0 - 2012-11-06
|
78
|
-
|
79
|
-
Features:
|
80
|
-
* When calling methods, the interface can be left unspecified if unambiguous
|
81
|
-
(Damiano Stoffie)
|
82
|
-
* YARD documentation, Reference.md
|
83
|
-
|
84
|
-
Bug fixes:
|
85
|
-
* Introspection attribute "direction" can be omitted
|
86
|
-
as allowed by the specification (Noah Meyerhans).
|
87
|
-
* ProxyObjectInterface#on_signal no longer needs the "bus" parameter
|
88
|
-
(Issue#31, by Damiano Stoffie)
|
89
|
-
|
90
|
-
== Ruby D-Bus 0.8.0 - 2012-09-20
|
91
|
-
|
92
|
-
Features:
|
93
|
-
* Add Anonymous authentication (Issue#27, by Walter Brebels).
|
94
|
-
* Use Nokogiri for XML parsing when available (Issue#24, by Geoff Youngs).
|
95
|
-
|
96
|
-
Bug fixes:
|
97
|
-
* Use SCM_CREDS authentication only on FreeBSD, not on OpenBSD (Issue#21,
|
98
|
-
reported by Adde Nilsson).
|
99
|
-
* Recognize signature "h" (UNIX_FD) used eg. by Upstart (Issue#23,
|
100
|
-
by Bernd Ahlers).
|
101
|
-
* Find the session bus also via launchd, on OS X (Issue#20, reported
|
102
|
-
by Paul Sturgess).
|
103
|
-
|
104
|
-
Other:
|
105
|
-
* Now doing continuous integration with Travis:
|
106
|
-
http://travis-ci.org/#!/mvidner/ruby-dbus
|
107
|
-
|
108
|
-
|
109
|
-
== Ruby D-Bus 0.7.2 - 2012-04-05
|
110
|
-
|
111
|
-
A brown-paper-bag release.
|
112
|
-
|
113
|
-
Bug fixes:
|
114
|
-
* Fixed "undefined local variable or method `continue'" in
|
115
|
-
DBus::Main#run when a service becomes idle (by Ravil Bayramgalin)
|
116
|
-
|
117
|
-
== Ruby D-Bus 0.7.1 - 2012-04-04
|
118
|
-
|
119
|
-
Bug fixes:
|
120
|
-
* Fixed calling asynchronous methods on the default interface (Issue#13,
|
121
|
-
by Eugene Korbut).
|
122
|
-
* Fixed Main#quit to really quit the loop (by Josef Reidinger)
|
123
|
-
* Unbundled files from Active Support (by Bohuslav Kabrda)
|
124
|
-
|
125
|
-
== Ruby D-Bus 0.7.0 - 2011-07-26
|
126
|
-
|
127
|
-
Features:
|
128
|
-
* Added ASystemBus and ASessionBus, non-singletons useful in tests
|
129
|
-
and threads.
|
130
|
-
|
131
|
-
Bug fixes:
|
132
|
-
* Fixed handling of multibyte strings (Issue#8, by Takayuki YAMAGUCHI).
|
133
|
-
* Allow reopening of a dbus_interface declaration (Issue#9, by T. YAMAGUCHI).
|
134
|
-
* Fixed ruby-1.9.2 compatibility again (Issue#12).
|
135
|
-
* Fixed authentication on BSD (Issue#11, by Jonathan Walker)
|
136
|
-
* Fixed exiting a nested event loop for synchronous calls
|
137
|
-
(reported by Timo Warns).
|
138
|
-
* Fixed introspection calls leaking reply handlers.
|
139
|
-
* "rake test" now works, doing what was called "rake env:test"
|
140
|
-
|
141
|
-
== Ruby D-Bus 0.6.0 - 2010-12-11
|
142
|
-
|
143
|
-
Features:
|
144
|
-
* Clients can access properties conveniently (Ticket#28).
|
145
|
-
|
146
|
-
Bug fixes:
|
147
|
-
* Service won't crash whan handling an unknown method or interface (Ticket#31).
|
148
|
-
* Don't send an invalid error name when it originates from a NameError.
|
149
|
-
|
150
|
-
== Ruby D-Bus 0.5.0 - 2010-11-07
|
151
|
-
|
152
|
-
Features:
|
153
|
-
* Better binding of Ruby Exceptions to D-Bus Errors.
|
154
|
-
* Converted the package to a Gem (Issue#6).
|
155
|
-
* Converted the tutorial from Webgen to Markdown.
|
156
|
-
|
157
|
-
Bug fixes:
|
158
|
-
* Don't pass file descriptors to subprocesses.
|
159
|
-
* Fixed InterfaceElement::validate_name (Ticket#38, by Herwin Weststrate).
|
160
|
-
* Fixed a typo in InvalidDestinationName description (Ticket#40).
|
161
|
-
|
162
|
-
== Ruby D-Bus 0.4.0 - 2010-08-20
|
163
|
-
|
164
|
-
Features:
|
165
|
-
* TCP transport (by pangdudu)
|
166
|
-
* Enabled test code coverage report (rcov)
|
167
|
-
|
168
|
-
Bug fixes:
|
169
|
-
* Classes should not share all interfaces (Ticket#36/Issue#5)
|
170
|
-
* Ruby 1.9 compatibility (Ticket#37, by Myra Nelson)
|
171
|
-
|
172
|
-
== Ruby D-Bus 0.3.1 - 2010-07-22
|
173
|
-
|
174
|
-
Bug fixes:
|
175
|
-
* Many on_signal could cause DBus.Error.LimitsExceeded bnc#617350).
|
176
|
-
Don't add a match rule that already exists, enable removing match
|
177
|
-
rules. Now only one handler for a rule is called (but it is possible
|
178
|
-
for one signal to match more rules). This reverts the half-fix done
|
179
|
-
to fix Issue#3
|
180
|
-
* Re-added InterfaceElement#add_param for compatibility.
|
181
|
-
* Handle more ways which tell us that a bus connection has died.
|
182
|
-
|
183
|
-
== Ruby D-Bus 0.3.0 - 2010-03-28
|
184
|
-
|
185
|
-
Bug fixes:
|
186
|
-
|
187
|
-
* Fixed "undefined method `get_node' for nil:NilClass"
|
188
|
-
on Ubuntu Karmic (Ticket#34).
|
189
|
-
* Get the session bus address even if unset in ENV (Issue#4).
|
190
|
-
* Improved exceptions a bit:
|
191
|
-
UndefinedInterface, InvalidMethodName, NoMethodError, no RuntimeException
|
192
|
-
|
193
|
-
These are by Klaus Kaempf:
|
194
|
-
* Make the signal dispatcher call all handlers (Issue#3).
|
195
|
-
* Run on Ruby < 1.8.7 (Issue#2).
|
196
|
-
* Avoid needless DBus::IncompleteBufferException (Ticket#33).
|
197
|
-
* Don't ignore DBus Errors in request_service, raise them (Ticket#32).
|
198
|
-
|
199
|
-
Features:
|
200
|
-
|
201
|
-
* Automatic signature inference for variants.
|
202
|
-
* Introduced FormalParameter where a plain pair had been used.
|
203
|
-
|
204
|
-
== Ruby D-Bus 0.2.12 - 2010-01-24
|
205
|
-
|
206
|
-
Bug fixes:
|
207
|
-
|
208
|
-
* Fixed a long-standing bug where a service activated by the bus
|
209
|
-
would fail with "undefined method `get_node' for nil:NilClass"
|
210
|
-
(Tickets#25 and #29).
|
211
|
-
|
212
|
-
== Ruby D-Bus 0.2.11 - 2009-11-12
|
213
|
-
|
214
|
-
Features:
|
215
|
-
|
216
|
-
* Added DBus::Service#unexport (da1l6).
|
217
|
-
|
218
|
-
Bug fixes:
|
219
|
-
|
220
|
-
* Return org.freedesktop.DBus.Error.UnknownObject instead of crashing
|
221
|
-
(Ticket#31).
|
222
|
-
* Rescue exceptions in dbus_methods and reply with DBus errors instead of
|
223
|
-
crashing (da1l6).
|
224
|
-
* Better exception messages when sending nil, or mismatched structs.
|
225
|
-
* Call mktemp without --tmpdir, to build on older distros.
|
226
|
-
|
227
|
-
== Ruby D-Bus 0.2.10 - 2009-09-10
|
228
|
-
|
229
|
-
Bug fixes:
|
230
|
-
|
231
|
-
* DBus::Service.exists? fixed (Murat Demirten).
|
232
|
-
* Ruby 1.9 fixes (Jedediah Smith).
|
233
|
-
* Fixed an endless sleep in DBus::Main.run (bnc#537401).
|
234
|
-
* Added details to PacketMarshaller exceptions (bnc#538050).
|
235
|
-
|
236
|
-
(bnc#FOO refers to https://bugzilla.novell.com/show_bug.cgi?id=FOO )
|
237
|
-
|
238
|
-
== Ruby D-Bus "I'm not dead" 0.2.9 - 2009-08-26
|
239
|
-
|
240
|
-
Thank you to Paul and Arnaud for starting the project. I, Martin
|
241
|
-
Vidner, am continuing with it on GitHub.
|
242
|
-
|
243
|
-
* Fixed passing an array through a variant (no ticket).
|
244
|
-
* Fixed marshalling "av" (Ticket #30).
|
245
|
-
* Fixed variant alignment (Ticket #27).
|
246
|
-
* Added DBus::Main.quit.
|
247
|
-
* Mention the DBus interface in a NameError for an unknown method.
|
248
|
-
* Fixed ruby-1.9 "warning: default `to_a' will be obsolete".
|
249
|
-
* Added Rakefile and gemspec.
|
250
|
-
|
251
|
-
== Ruby D-Bus "Thanks for all the fish" 0.2.1 - 2007-12-29
|
252
|
-
|
253
|
-
More bugfixes, mostly supplied by users supplying us with patches. Thanks!
|
254
|
-
|
255
|
-
* Support for new types added:
|
256
|
-
- dict (courtesy of Drake Wilson);
|
257
|
-
- double (courtesy of Patrick Sissons);
|
258
|
-
- variant.
|
259
|
-
* Improved exception raise support (courtesy of Sjoerd Simons,
|
260
|
-
Patrick Sissons).
|
261
|
-
* Some polish (removed debug output, solved unnecessary warnings).
|
262
|
-
* Documentation updates, example fixes and updates.
|
263
|
-
|
264
|
-
== Ruby D-Bus "Almost live from DebConf 7" 0.2.0 - 2007-06-02
|
265
|
-
|
266
|
-
Again a bugfix release, also meant to be the public release
|
267
|
-
for exploratory purposes. New in 0.2.0:
|
268
|
-
|
269
|
-
* Complete tutorial revamp.
|
270
|
-
* Relicensed to the LGPL.
|
271
|
-
|
272
|
-
== Ruby D-Bus "Release Often" 0.1.1 - 2007-04-23
|
273
|
-
|
274
|
-
Bugfix release. Fixes hardcoded string for requesting bus names,
|
275
|
-
found by Rudi Cilibrasi.
|
276
|
-
|
277
|
-
== Ruby D-Bus "Happy Birthday Paul" 0.1.0 - 2007-04-17
|
278
|
-
|
279
|
-
First release. Supports most of D-Bus' features.
|