yakuake_controller 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 2cd828dfa3e629e21a15397d2f5cbcec04104af0
4
+ data.tar.gz: 0a59cd4fadd6acc99989c0c812af7f51c0a4cb8d
5
+ SHA512:
6
+ metadata.gz: d8af7efa8ffbf373a96fa3e1f2e5ab48918be4e1aa9d4c418dc999a54e0c2f8b3a24e029a3e8926cd5aa91540ac57959ef1af1e9c1a1a1d031fd236f3a2b09bd
7
+ data.tar.gz: ae041f43909aeb50f0943df0a6e4b9215eb8ddfbefdc54ebaec1689b2861703590a91e25a9d9ad4e6b1327a13f99339aa65123ccd118c87dd07e01aa4eace7b7
data/.gitignore ADDED
@@ -0,0 +1,5 @@
1
+ *.sublime-project
2
+ *.sublime-workspace
3
+ Gemfile.lock
4
+ pkg
5
+ coverage
data/Gemfile ADDED
@@ -0,0 +1,7 @@
1
+ #ruby=ruby-2.2.1
2
+ #ruby-gemset=yakuake_controller
3
+
4
+ source 'https://rubygems.org'
5
+
6
+ # Specify your gem's dependencies in yakuake_controller.gemspec
7
+ gemspec
data/LICENSE.txt ADDED
@@ -0,0 +1,22 @@
1
+ Copyright (c) 2014 Tomislav Adamic
2
+
3
+ MIT License
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining
6
+ a copy of this software and associated documentation files (the
7
+ "Software"), to deal in the Software without restriction, including
8
+ without limitation the rights to use, copy, modify, merge, publish,
9
+ distribute, sublicense, and/or sell copies of the Software, and to
10
+ permit persons to whom the Software is furnished to do so, subject to
11
+ the following conditions:
12
+
13
+ The above copyright notice and this permission notice shall be
14
+ included in all copies or substantial portions of the Software.
15
+
16
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
17
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
18
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
19
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
20
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
21
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
22
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
data/README.md ADDED
@@ -0,0 +1,31 @@
1
+ # YakuakeController
2
+
3
+ Ruby gem to interact with [Yakuake] through DBus.
4
+
5
+ ## Installation
6
+
7
+ Add this line to your application's Gemfile:
8
+
9
+ gem 'yakuake_controller'
10
+
11
+ And then execute:
12
+
13
+ $ bundle
14
+
15
+ Or install it yourself as:
16
+
17
+ $ gem install yakuake_controller
18
+
19
+ ## Usage
20
+
21
+ TODO: Write usage instructions here
22
+
23
+ ## Contributing
24
+
25
+ 1. Fork it ( https://github.com/[my-github-username]/yakuake_controller/fork )
26
+ 2. Create your feature branch (`git checkout -b my-new-feature`)
27
+ 3. Commit your changes (`git commit -am 'Add some feature'`)
28
+ 4. Push to the branch (`git push origin my-new-feature`)
29
+ 5. Create a new Pull Request
30
+
31
+ [Yakuake]:https://yakuake.kde.org/
data/Rakefile ADDED
@@ -0,0 +1,18 @@
1
+ # require 'rubygems'
2
+ require "bundler/gem_tasks"
3
+ require 'bundler/setup'
4
+
5
+ begin
6
+ Bundler.setup(:default, :development)
7
+ rescue Bundler::BundlerError => e
8
+ $stderr.puts e.message
9
+ $stderr.puts "Run `bundle install` to install missing gems"
10
+ exit e.status_code
11
+ end
12
+
13
+ require 'rake'
14
+
15
+ # load rakefile extensions (tasks)
16
+ Dir['tasks/*.rake'].sort.each { |f| load f }
17
+
18
+ task :default => [:test]
@@ -0,0 +1,68 @@
1
+ require_relative "./yakuake_dbus.rb"
2
+
3
+ module YakuakeController
4
+
5
+ class DBusClient
6
+ def initialize(dbus: YakuakeDbus.new)
7
+ @dbus = dbus
8
+ end
9
+
10
+ def terminal_ids_for_tab tab_index:
11
+ terminal_ids_for_session session_id: session_id(tab_index: tab_index)
12
+ end
13
+
14
+ def tab_title tab_index:
15
+ @dbus.tabs_interface.tabTitle(session_id tab_index: tab_index).first
16
+ end
17
+
18
+ def set_tab_title tab_index:, new_title:
19
+ @dbus.tabs_interface.setTabTitle session_id(tab_index: tab_index).to_i,
20
+ new_title
21
+ end
22
+
23
+ def run_command_in_tab tab_index:, command_text:
24
+ terminal_id = terminal_ids_for_tab(tab_index: tab_index).first
25
+ run_command_in_terminal terminal_id: terminal_id,
26
+ command_text: command_text
27
+ end
28
+
29
+ def run_command_in_terminal terminal_id:, command_text:
30
+ @dbus.sessions_interface.runCommandInTerminal terminal_id.to_i, command_text
31
+ end
32
+
33
+ def add_tabs_if_needed count:
34
+ if count > sessions_ids.length
35
+ active_session = @dbus.sessions_interface.activeSessionId.first.to_i
36
+ (count - sessions_ids.length).times do
37
+ @dbus.sessions_interface.addSession
38
+ end
39
+ @dbus.sessions_interface.raiseSession active_session
40
+ end
41
+ end
42
+
43
+ def remove_tab tab_index:
44
+ @dbus.sessions_interface.removeSession session_id(tab_index: tab_index).to_i
45
+ end
46
+
47
+ def remove_terminal terminal_id:
48
+ @dbus.sessions_interface.removeTerminal terminal_id.to_i
49
+ end
50
+
51
+ private
52
+
53
+ def sessions_ids
54
+ @dbus.sessions_interface.sessionIdList.first.split(',').map{|i| i.strip}
55
+ end
56
+
57
+ def terminal_ids_for_session session_id:
58
+ @dbus.sessions_interface.terminalIdsForSessionId(session_id.to_i).
59
+ first.split(',').map{|i| i.strip}
60
+ end
61
+
62
+ def session_id tab_index:
63
+ @dbus.tabs_interface.sessionAtTab(tab_index.to_i).first
64
+ end
65
+
66
+ end
67
+
68
+ end
@@ -0,0 +1,3 @@
1
+ module YakuakeController
2
+ VERSION = "0.1.0"
3
+ end
@@ -0,0 +1,26 @@
1
+ require "dbus"
2
+
3
+ # to explore yakuake interfaces use
4
+ # qdbus org.kde.yakuake /yakuake/sessions
5
+ # qdbus org.kde.yakuake /yakuake/tabs
6
+
7
+ module YakuakeController
8
+
9
+ class YakuakeDBus
10
+
11
+ attr_reader :sessions_interface, :tabs_interface
12
+
13
+ def initialize
14
+ bus = DBus.session_bus
15
+ service = bus['org.kde.yakuake']
16
+ sessions_proxy = service.object '/yakuake/sessions'
17
+ sessions_proxy.introspect
18
+ tabs_proxy = service.object '/yakuake/tabs'
19
+ tabs_proxy.introspect
20
+ @sessions_interface = sessions_proxy['org.kde.yakuake']
21
+ @tabs_interface = tabs_proxy['org.kde.yakuake']
22
+ end
23
+
24
+ end
25
+
26
+ end
@@ -0,0 +1,6 @@
1
+ require "yakuake_controller/version"
2
+ require "yakuake_controller/yakuake_dbus"
3
+ require "yakuake_controller/dbus_client"
4
+
5
+ module YakuakeController
6
+ end
data/tasks/test.rake ADDED
@@ -0,0 +1,31 @@
1
+ require 'rake/testtask'
2
+
3
+ ALL_TEST_FILES = FileList[
4
+ 'test/{functional,unit,yakuake_controller,lib,ext}/**/*_test.rb',
5
+ 'test/*_test.rb'
6
+ ]
7
+
8
+ Rake::TestTask.new do |t|
9
+ t.libs << 'test'
10
+ t.test_files = ALL_TEST_FILES
11
+ t.verbose = false
12
+ t.warning = false
13
+ end
14
+
15
+ namespace :test do
16
+
17
+ desc 'Run all tests and calculate code coverage'
18
+ task :simplecov do
19
+ ENV['COVERAGE'] = "true"
20
+ Rake::Task['test'].execute
21
+ end
22
+
23
+ desc 'Run single test: "rake test:single[foo_test_method]"'
24
+ task :single, [:test_file] do |t, args|
25
+ filename = File.basename(args[:test_file])
26
+ filepath = ALL_TEST_FILES[ ALL_TEST_FILES.find_index{|f| /.*#{filename}.*/ === f } ]
27
+ ENV["TEST"] = filepath
28
+ Rake::Task[:test].execute
29
+ end
30
+
31
+ end
@@ -0,0 +1,140 @@
1
+ require 'test_helper'
2
+
3
+ describe YakuakeController::DBusClient do
4
+
5
+ before do
6
+ @dbus = YakuakeController::YakuakeDBus.new
7
+ @client = YakuakeController::DBusClient.new(dbus: @dbus)
8
+
9
+ @tab_index = 1
10
+ @tab_title = 'Foo tab'
11
+ @command_text = 'Foo command'
12
+ @terminal_id = 2
13
+ @session_id = 3
14
+ @terminal_ids = "4, 5"
15
+ @session_ids = "6, 7"
16
+ @session_ids_array = @session_ids.split(',').map{|i| i.strip}
17
+ @terminal_ids_array = @terminal_ids.split(',').map{|i| i.strip}
18
+ end
19
+
20
+ describe '#session_id'do
21
+ it 'finds Yakuake session ID for tab index' do
22
+ @dbus.tabs_interface.expects(:sessionAtTab).
23
+ with(@tab_index).
24
+ returns(["#{@session_id}"])
25
+
26
+ assert_equal @client.send(:session_id, **{tab_index: @tab_index}),
27
+ "#{@session_id}"
28
+ end
29
+ end
30
+
31
+ describe '#terminal_ids_for_session' do
32
+ it 'finds all terminal IDs for one session ID' do
33
+ @dbus.sessions_interface.expects(:terminalIdsForSessionId).
34
+ with(@session_id).
35
+ returns([@terminal_ids])
36
+
37
+ assert_equal @client.send(:terminal_ids_for_session, **{session_id: @session_id}),
38
+ @terminal_ids_array
39
+ end
40
+ end
41
+
42
+ describe '#sessions_ids' do
43
+ it 'finds all session IDs in Yakuake instance' do
44
+ @dbus.sessions_interface.expects(:sessionIdList).
45
+ returns([@session_ids])
46
+ assert_equal @client.send(:sessions_ids), @session_ids_array
47
+ end
48
+ end
49
+
50
+ describe '#remove_terminal' do
51
+ it 'removes terminal by ID' do
52
+ @dbus.sessions_interface.expects(:removeTerminal).
53
+ with(@terminal_id).at_most_once
54
+ @client.remove_terminal(terminal_id: @terminal_id)
55
+ end
56
+ end
57
+
58
+ describe '#remove_tab' do
59
+ it 'removes tab by tab index' do
60
+ @dbus.sessions_interface.expects(:removeSession).
61
+ with(@session_id).at_most_once
62
+ @dbus.tabs_interface.expects(:sessionAtTab).
63
+ with(@tab_index).returns(["#{@session_id}"])
64
+ @client.remove_tab(tab_index: @tab_index)
65
+ end
66
+ end
67
+
68
+ describe '#add_tabs_if_needed' do
69
+ it 'Adds tabs to Yakuake if there are less than :count of them' do
70
+ @dbus.sessions_interface.expects(:raiseSession).at_most_once
71
+ @dbus.sessions_interface.expects(:activeSessionId).returns([@session_id])
72
+
73
+ @client.expects(:sessions_ids).returns(@session_ids_array).at_most(2)
74
+ @dbus.sessions_interface.expects(:addSession).at_most(4)
75
+ @client.add_tabs_if_needed(count: 6)
76
+ end
77
+
78
+ it 'Does nothing if there are already :count or more tabs' do
79
+ @client.expects(:sessions_ids).returns(@session_ids_array).at_most(2)
80
+ @dbus.sessions_interface.expects(:addSession).at_most(0)
81
+ @client.add_tabs_if_needed(count: 1)
82
+ end
83
+ end
84
+
85
+ describe '#run_command_in_terminal' do
86
+ it 'Sends text command to terminal ID specified' do
87
+ @dbus.sessions_interface.expects(:runCommandInTerminal).
88
+ with(@terminal_id, @command_text).at_most_once
89
+ @client.run_command_in_terminal terminal_id: @terminal_id, command_text: @command_text
90
+ end
91
+ end
92
+
93
+ describe '#run_command_in_tab' do
94
+ it 'Sends text command to first terminal in specified tab index' do
95
+ @client.expects(:terminal_ids_for_tab).
96
+ with(tab_index: @tab_index).returns(@terminal_ids_array)
97
+
98
+ @client.expects(:run_command_in_terminal).
99
+ with(terminal_id: @terminal_ids_array.first,
100
+ command_text:@command_text)
101
+
102
+ @client.run_command_in_tab tab_index: @tab_index, command_text: @command_text
103
+ end
104
+ end
105
+
106
+ describe '#set_tab_title' do
107
+ it 'sets title of tab with provided tab index' do
108
+ @dbus.tabs_interface.expects(:setTabTitle).
109
+ with(@session_id, @tab_title)
110
+ @client.expects(:session_id).with(tab_index: @tab_index).
111
+ returns(@session_id)
112
+
113
+ @client.set_tab_title tab_index: @tab_index, new_title: @tab_title
114
+ end
115
+ end
116
+
117
+ describe '#tab_title' do
118
+ it 'returns title of tab with specified tab index' do
119
+ @dbus.tabs_interface.expects('tabTitle').
120
+ with(@session_id).returns([@tab_title])
121
+ @client.expects(:session_id).with(tab_index: @tab_index).
122
+ returns(@session_id)
123
+
124
+ assert_equal @client.tab_title(tab_index: @tab_index), @tab_title
125
+ end
126
+ end
127
+
128
+ describe '#terminal_ids_for_tab' do
129
+ it 'returns IDs of all terminals in tab specified by tab index' do
130
+ @client.expects(:session_id).with(tab_index: @tab_index).
131
+ returns(@session_id)
132
+ @client.expects(:terminal_ids_for_session).with(session_id: @session_id).
133
+ returns(@terminal_ids)
134
+
135
+ assert_equal @client.terminal_ids_for_tab(tab_index: @tab_index),
136
+ @terminal_ids
137
+ end
138
+ end
139
+
140
+ end
@@ -0,0 +1,9 @@
1
+ require 'test_helper'
2
+
3
+ describe YakuakeController do
4
+
5
+ it "defines VERSION" do
6
+ refute YakuakeController::VERSION.nil?
7
+ end
8
+
9
+ end
@@ -0,0 +1,9 @@
1
+ require 'test_helper'
2
+
3
+ describe YakuakeController do
4
+
5
+ it "tests that tests are loaded" do
6
+ assert true
7
+ end
8
+
9
+ end
@@ -0,0 +1,8 @@
1
+ require 'minitest/autorun'
2
+ require "minitest/reporters"
3
+
4
+ Minitest::Reporters.use! Minitest::Reporters::DefaultReporter.new(:color => true) # => Redgreen-capable version of standard Minitest reporter
5
+ # Minitest::Reporters.use! Minitest::Reporters::SpecReporter.new # => Turn-like output that reads like a spec
6
+
7
+ Minitest.after_run do
8
+ end
@@ -0,0 +1,15 @@
1
+ if ENV['COVERAGE']
2
+ require 'simplecov'
3
+ SimpleCov.start do
4
+ add_filter 'test'
5
+ command_name 'test'
6
+ end
7
+ end
8
+
9
+ require 'yakuake_controller'
10
+ require "pry"
11
+
12
+ require File.expand_path('test/minitest_extensions.rb')
13
+
14
+ require 'mocha/mini_test'
15
+ # require 'minitest/given'
@@ -0,0 +1,40 @@
1
+ # coding: utf-8
2
+ lib = File.expand_path('../lib', __FILE__)
3
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
+ require 'yakuake_controller/version'
5
+
6
+ Gem::Specification.new do |spec|
7
+
8
+ spec.name = 'yakuake_controller'
9
+ spec.version = YakuakeController::VERSION
10
+
11
+ spec.required_ruby_version = '~> 2.2'
12
+
13
+ spec.authors = ['Tomislav Adamic']
14
+ spec.email = ['tomislav.adamic@gmail.com']
15
+ spec.summary = %q{Client for Yakuake DBus interface.}
16
+ spec.description = %q{Client for Yakuake DBus interface.}
17
+ # spec.homepage = 'TODO - enter homepage'
18
+ spec.license = 'MIT'
19
+
20
+ spec.files = `git ls-files -z`.split("\x0")
21
+ spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
22
+ spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
23
+ spec.require_paths = ['lib']
24
+
25
+ spec.add_runtime_dependency 'ruby-dbus', '~> 0.11'
26
+
27
+ spec.add_development_dependency 'bundler', '~> 1.6'
28
+ spec.add_development_dependency 'rake', '~> 10.3'
29
+
30
+ spec.add_development_dependency 'pry', '~> 0.10'
31
+ spec.add_development_dependency 'pry-doc', '~> 0.8'
32
+ spec.add_development_dependency 'minitest', '~> 5.4'
33
+ spec.add_development_dependency 'minitest-reporters', '~> 1.0'
34
+ spec.add_development_dependency 'simplecov', '~> 0.9'
35
+ spec.add_development_dependency 'mocha', '~> 1.1'
36
+ # spec.add_development_dependency 'minitest-given', '~> 3.7'
37
+
38
+ spec.add_development_dependency 'activesupport', '~> 4.1'
39
+
40
+ end
metadata ADDED
@@ -0,0 +1,206 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: yakuake_controller
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ platform: ruby
6
+ authors:
7
+ - Tomislav Adamic
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2015-10-09 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: ruby-dbus
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '0.11'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '0.11'
27
+ - !ruby/object:Gem::Dependency
28
+ name: bundler
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: '1.6'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: '1.6'
41
+ - !ruby/object:Gem::Dependency
42
+ name: rake
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: '10.3'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: '10.3'
55
+ - !ruby/object:Gem::Dependency
56
+ name: pry
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - "~>"
60
+ - !ruby/object:Gem::Version
61
+ version: '0.10'
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - "~>"
67
+ - !ruby/object:Gem::Version
68
+ version: '0.10'
69
+ - !ruby/object:Gem::Dependency
70
+ name: pry-doc
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - "~>"
74
+ - !ruby/object:Gem::Version
75
+ version: '0.8'
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - "~>"
81
+ - !ruby/object:Gem::Version
82
+ version: '0.8'
83
+ - !ruby/object:Gem::Dependency
84
+ name: minitest
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - "~>"
88
+ - !ruby/object:Gem::Version
89
+ version: '5.4'
90
+ type: :development
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - "~>"
95
+ - !ruby/object:Gem::Version
96
+ version: '5.4'
97
+ - !ruby/object:Gem::Dependency
98
+ name: minitest-reporters
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - "~>"
102
+ - !ruby/object:Gem::Version
103
+ version: '1.0'
104
+ type: :development
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - "~>"
109
+ - !ruby/object:Gem::Version
110
+ version: '1.0'
111
+ - !ruby/object:Gem::Dependency
112
+ name: simplecov
113
+ requirement: !ruby/object:Gem::Requirement
114
+ requirements:
115
+ - - "~>"
116
+ - !ruby/object:Gem::Version
117
+ version: '0.9'
118
+ type: :development
119
+ prerelease: false
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ requirements:
122
+ - - "~>"
123
+ - !ruby/object:Gem::Version
124
+ version: '0.9'
125
+ - !ruby/object:Gem::Dependency
126
+ name: mocha
127
+ requirement: !ruby/object:Gem::Requirement
128
+ requirements:
129
+ - - "~>"
130
+ - !ruby/object:Gem::Version
131
+ version: '1.1'
132
+ type: :development
133
+ prerelease: false
134
+ version_requirements: !ruby/object:Gem::Requirement
135
+ requirements:
136
+ - - "~>"
137
+ - !ruby/object:Gem::Version
138
+ version: '1.1'
139
+ - !ruby/object:Gem::Dependency
140
+ name: activesupport
141
+ requirement: !ruby/object:Gem::Requirement
142
+ requirements:
143
+ - - "~>"
144
+ - !ruby/object:Gem::Version
145
+ version: '4.1'
146
+ type: :development
147
+ prerelease: false
148
+ version_requirements: !ruby/object:Gem::Requirement
149
+ requirements:
150
+ - - "~>"
151
+ - !ruby/object:Gem::Version
152
+ version: '4.1'
153
+ description: Client for Yakuake DBus interface.
154
+ email:
155
+ - tomislav.adamic@gmail.com
156
+ executables: []
157
+ extensions: []
158
+ extra_rdoc_files: []
159
+ files:
160
+ - ".gitignore"
161
+ - Gemfile
162
+ - LICENSE.txt
163
+ - README.md
164
+ - Rakefile
165
+ - lib/yakuake_controller.rb
166
+ - lib/yakuake_controller/dbus_client.rb
167
+ - lib/yakuake_controller/version.rb
168
+ - lib/yakuake_controller/yakuake_dbus.rb
169
+ - tasks/test.rake
170
+ - test/lib/yakuake_controller/dbus_client_test.rb
171
+ - test/lib/yakuake_controller/version_test.rb
172
+ - test/lib/yakuake_controller_test.rb
173
+ - test/minitest_extensions.rb
174
+ - test/test_helper.rb
175
+ - yakuake_controller.gemspec
176
+ homepage:
177
+ licenses:
178
+ - MIT
179
+ metadata: {}
180
+ post_install_message:
181
+ rdoc_options: []
182
+ require_paths:
183
+ - lib
184
+ required_ruby_version: !ruby/object:Gem::Requirement
185
+ requirements:
186
+ - - "~>"
187
+ - !ruby/object:Gem::Version
188
+ version: '2.2'
189
+ required_rubygems_version: !ruby/object:Gem::Requirement
190
+ requirements:
191
+ - - ">="
192
+ - !ruby/object:Gem::Version
193
+ version: '0'
194
+ requirements: []
195
+ rubyforge_project:
196
+ rubygems_version: 2.4.8
197
+ signing_key:
198
+ specification_version: 4
199
+ summary: Client for Yakuake DBus interface.
200
+ test_files:
201
+ - test/lib/yakuake_controller/dbus_client_test.rb
202
+ - test/lib/yakuake_controller/version_test.rb
203
+ - test/lib/yakuake_controller_test.rb
204
+ - test/minitest_extensions.rb
205
+ - test/test_helper.rb
206
+ has_rdoc: