zenity-wrapper 2.30.0.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.
- data/NEWS +9 -0
- data/README.markdown +160 -0
- data/Rakefile +29 -0
- data/TODO +2 -0
- data/VERSION +1 -0
- data/lib/zenity.rb +15 -0
- data/lib/zenity/base.rb +67 -0
- data/lib/zenity/list.rb +49 -0
- data/lib/zenity/message.rb +35 -0
- metadata +64 -0
data/NEWS
ADDED
data/README.markdown
ADDED
@@ -0,0 +1,160 @@
|
|
1
|
+
zenity-wrapper
|
2
|
+
================
|
3
|
+
|
4
|
+
|
5
|
+
Description
|
6
|
+
-----------
|
7
|
+
What did you expect with that name? Zenity-wrapper is a ruby wrapper over
|
8
|
+
the [zenity utilily][2].
|
9
|
+
|
10
|
+
I wrote it because I need it for a personal project. It is far from complete,
|
11
|
+
it could only open **list** and **message** dialog boxes.
|
12
|
+
Anyway I release it because it could be helpfull to somebody.
|
13
|
+
|
14
|
+
Install
|
15
|
+
-------------------------
|
16
|
+
|
17
|
+
gem install zenity-wrapper
|
18
|
+
apt-get zenity
|
19
|
+
|
20
|
+
|
21
|
+
Usage
|
22
|
+
--------------------------
|
23
|
+
|
24
|
+
You should check [zenity documentation][1] first.
|
25
|
+
|
26
|
+
### Simple example
|
27
|
+
|
28
|
+
require 'zenity'
|
29
|
+
|
30
|
+
Zenity::Message.new(:error, "content text").proceed
|
31
|
+
|
32
|
+
### General options
|
33
|
+
|
34
|
+
A big error message:
|
35
|
+
|
36
|
+
m = Zenity::Message.new(:error, "content text")
|
37
|
+
m.title = "Big error message"
|
38
|
+
m.width = 600
|
39
|
+
m.height = 400
|
40
|
+
m.proceed
|
41
|
+
|
42
|
+
### Exit Status
|
43
|
+
|
44
|
+
Zenity defines the following module constants:
|
45
|
+
|
46
|
+
+ OK
|
47
|
+
+ CANCEL
|
48
|
+
+ ERROR
|
49
|
+
+ EXPIRED
|
50
|
+
|
51
|
+
And the following methods for each dialogs classes:
|
52
|
+
|
53
|
+
+ `exit_status`
|
54
|
+
+ `ok?`
|
55
|
+
+ `cancel?`
|
56
|
+
+ `error?`
|
57
|
+
+ `expired?`
|
58
|
+
|
59
|
+
A dumb usage example:
|
60
|
+
|
61
|
+
m = Zenity::Message.new(:question, "your question")
|
62
|
+
answer = m.proceed
|
63
|
+
if m.exit_status == Zenity::OK
|
64
|
+
puts answer
|
65
|
+
elsif m.expired?
|
66
|
+
puts "too late..."
|
67
|
+
end
|
68
|
+
|
69
|
+
### Returned Value
|
70
|
+
|
71
|
+
The `proceed` method returns a String.
|
72
|
+
|
73
|
+
### Calendar
|
74
|
+
|
75
|
+
TODO
|
76
|
+
|
77
|
+
### File Select
|
78
|
+
|
79
|
+
TODO
|
80
|
+
|
81
|
+
### Notification
|
82
|
+
|
83
|
+
TODO
|
84
|
+
|
85
|
+
### List
|
86
|
+
|
87
|
+
list = List.new(columns = ["Reference", "Title"],
|
88
|
+
data = ['1 "title 1"', '2 "title 2"'])
|
89
|
+
# You could modify the separator
|
90
|
+
list.separator = "---"
|
91
|
+
# You could modify the returned column(s)
|
92
|
+
list.print_column = "ALL"
|
93
|
+
puts list.proceed
|
94
|
+
|
95
|
+
### Message
|
96
|
+
|
97
|
+
Message.new(:error, "This is an error message").proceed
|
98
|
+
|
99
|
+
Message.new(:info, "This is an info message").proceed
|
100
|
+
|
101
|
+
Message.new(:warning, "This is a warning message").proceed
|
102
|
+
|
103
|
+
answer = Message.new(:question, "This is a question message").proceed
|
104
|
+
puts answer
|
105
|
+
|
106
|
+
### Progress Bar
|
107
|
+
|
108
|
+
TODO
|
109
|
+
|
110
|
+
### Entry
|
111
|
+
|
112
|
+
TODO
|
113
|
+
|
114
|
+
### Text Info
|
115
|
+
|
116
|
+
TODO
|
117
|
+
|
118
|
+
|
119
|
+
Dependencies
|
120
|
+
--------------------------
|
121
|
+
|
122
|
+
+ ruby >= 1.9.3
|
123
|
+
+ zenity >= 2.30
|
124
|
+
|
125
|
+
License
|
126
|
+
--------------------------
|
127
|
+
|
128
|
+
MIT
|
129
|
+
|
130
|
+
Copyright (c) 2013 Xavier Nayrac
|
131
|
+
|
132
|
+
Permission is hereby granted, free of charge, to any person obtaining
|
133
|
+
a copy of this software and associated documentation files (the
|
134
|
+
"Software"), to deal in the Software without restriction, including
|
135
|
+
without limitation the rights to use, copy, modify, merge, publish,
|
136
|
+
distribute, sublicense, and/or sell copies of the Software, and to
|
137
|
+
permit persons to whom the Software is furnished to do so, subject to
|
138
|
+
the following conditions:
|
139
|
+
|
140
|
+
The above copyright notice and this permission notice shall be included
|
141
|
+
in all copies or substantial portions of the Software.
|
142
|
+
|
143
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
144
|
+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
145
|
+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
146
|
+
IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
|
147
|
+
CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
148
|
+
TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
149
|
+
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
150
|
+
|
151
|
+
|
152
|
+
Questions and/or Comments
|
153
|
+
--------------------------
|
154
|
+
|
155
|
+
Feel free to email [Xavier Nayrac](mailto:xavier.nayrac@gmail.com)
|
156
|
+
with any questions.
|
157
|
+
|
158
|
+
|
159
|
+
[1]: http://help.gnome.org/users/zenity/2.32/
|
160
|
+
[2]: http://en.wikipedia.org/wiki/Zenity
|
data/Rakefile
ADDED
@@ -0,0 +1,29 @@
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
2
|
+
|
3
|
+
require 'rake'
|
4
|
+
require 'rspec/core/rake_task'
|
5
|
+
|
6
|
+
desc 'Test Zenity'
|
7
|
+
task :default => :spec
|
8
|
+
|
9
|
+
desc 'Test Zenity with rspec'
|
10
|
+
RSpec::Core::RakeTask.new(:spec) do |t|
|
11
|
+
t.rspec_opts = ['--color']
|
12
|
+
end
|
13
|
+
|
14
|
+
desc 'Check for code smells'
|
15
|
+
task :reek do
|
16
|
+
puts 'Checking for code smells...'
|
17
|
+
files = Dir.glob 'lib/**/*.rb'
|
18
|
+
args = files.join(' ')
|
19
|
+
sh "reek --quiet #{args} | ./reek.sed"
|
20
|
+
end
|
21
|
+
|
22
|
+
desc 'Build Zenity & install it'
|
23
|
+
task :install do
|
24
|
+
sh "rm zenity-wrapper-*gem"
|
25
|
+
sh "gem build zenity-wrapper.gemspec"
|
26
|
+
f = FileList['zenity*gem'].to_a
|
27
|
+
sh "gem install #{f.first}"
|
28
|
+
end
|
29
|
+
|
data/VERSION
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
2.30.0.1
|
data/lib/zenity.rb
ADDED
@@ -0,0 +1,15 @@
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
2
|
+
|
3
|
+
$LOAD_PATH.unshift File.dirname(__FILE__)
|
4
|
+
$ZENITY_PATH = File.expand_path(File.expand_path(File.dirname(__FILE__)) + '/..')
|
5
|
+
|
6
|
+
require 'zenity/base'
|
7
|
+
require 'zenity/list'
|
8
|
+
require 'zenity/message'
|
9
|
+
|
10
|
+
module Zenity
|
11
|
+
OK = 0
|
12
|
+
CANCEL = 1
|
13
|
+
ERROR = -1
|
14
|
+
EXPIRED = 5
|
15
|
+
end
|
data/lib/zenity/base.rb
ADDED
@@ -0,0 +1,67 @@
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
2
|
+
|
3
|
+
module Zenity
|
4
|
+
|
5
|
+
# Internal: Base class for all dialog boxes.
|
6
|
+
class Base
|
7
|
+
attr_writer :title, :width, :height
|
8
|
+
attr_reader :exit_status
|
9
|
+
|
10
|
+
def initialize
|
11
|
+
@exit_status = nil
|
12
|
+
end
|
13
|
+
|
14
|
+
def proceed
|
15
|
+
ret = %x[ #{get_command} ]
|
16
|
+
@exit_status = $?.exitstatus
|
17
|
+
ret.delete("\n")
|
18
|
+
end
|
19
|
+
|
20
|
+
def ok?
|
21
|
+
@exit_status == OK
|
22
|
+
end
|
23
|
+
|
24
|
+
def cancel?
|
25
|
+
@exit_status == CANCEL
|
26
|
+
end
|
27
|
+
|
28
|
+
def error?
|
29
|
+
@exit_status == ERROR
|
30
|
+
end
|
31
|
+
|
32
|
+
def expired?
|
33
|
+
@exit_status == EXPIRED
|
34
|
+
end
|
35
|
+
|
36
|
+
private
|
37
|
+
|
38
|
+
def general_options
|
39
|
+
title + width + height
|
40
|
+
end
|
41
|
+
|
42
|
+
def title
|
43
|
+
if defined? @title
|
44
|
+
" --title=\"#{@title}\" "
|
45
|
+
else
|
46
|
+
""
|
47
|
+
end
|
48
|
+
end
|
49
|
+
|
50
|
+
def width
|
51
|
+
if defined? @width
|
52
|
+
" --width=\"#{@width}\" "
|
53
|
+
else
|
54
|
+
""
|
55
|
+
end
|
56
|
+
end
|
57
|
+
|
58
|
+
def height
|
59
|
+
if defined? @height
|
60
|
+
" --height=\"#{@height}\" "
|
61
|
+
else
|
62
|
+
""
|
63
|
+
end
|
64
|
+
end
|
65
|
+
|
66
|
+
end
|
67
|
+
end
|
data/lib/zenity/list.rb
ADDED
@@ -0,0 +1,49 @@
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
2
|
+
|
3
|
+
module Zenity
|
4
|
+
|
5
|
+
# Public: List dialog box wrapper.
|
6
|
+
class List < Base
|
7
|
+
attr_writer :separator, :print_column
|
8
|
+
|
9
|
+
def initialize columns = ["Column Title"], data = ["Data"], options = []
|
10
|
+
@command = "zenity --list \\\n"
|
11
|
+
unless options.empty?
|
12
|
+
options.each do |opt|
|
13
|
+
if ['checklist', 'radiolist', 'editable'].include? opt
|
14
|
+
@command += "--#{opt} \\\n"
|
15
|
+
else
|
16
|
+
raise "Unknown option #{opt} for zenity list"
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
20
|
+
columns.map! { |col| "--column=\"#{col}\"" }
|
21
|
+
@command += columns.join(" ") + " \\\n"
|
22
|
+
@command += data.join(" \\\n")
|
23
|
+
end
|
24
|
+
|
25
|
+
def get_command
|
26
|
+
@command + option_separator + option_print_column + general_options
|
27
|
+
end
|
28
|
+
|
29
|
+
private
|
30
|
+
|
31
|
+
def option_separator
|
32
|
+
if defined? @separator
|
33
|
+
" --separator=#{@separator} "
|
34
|
+
else
|
35
|
+
""
|
36
|
+
end
|
37
|
+
end
|
38
|
+
|
39
|
+
def option_print_column
|
40
|
+
if defined? @print_column
|
41
|
+
" --print-column=#{@print_column} "
|
42
|
+
else
|
43
|
+
""
|
44
|
+
end
|
45
|
+
end
|
46
|
+
|
47
|
+
end
|
48
|
+
|
49
|
+
end
|
@@ -0,0 +1,35 @@
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
2
|
+
|
3
|
+
module Zenity
|
4
|
+
|
5
|
+
# Public: Boite de dialogue de message.
|
6
|
+
class Message < Base
|
7
|
+
|
8
|
+
# Public:
|
9
|
+
#
|
10
|
+
# type - A String, the type of the message, one of:
|
11
|
+
# 'error'
|
12
|
+
# 'warning'
|
13
|
+
# 'question'
|
14
|
+
# 'info'
|
15
|
+
# text - The text String to display in dialog box.
|
16
|
+
def initialize type, text
|
17
|
+
if [:error, :warning, :question, :info].include? type
|
18
|
+
@command = "zenity --#{type} --text=\"#{text}\""
|
19
|
+
else
|
20
|
+
raise "Unknown message type #{type} for zenity message"
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
24
|
+
# Internal: Get the shell command for the dialog box.
|
25
|
+
# Used mostly for testing purposes.
|
26
|
+
#
|
27
|
+
# Returns the shell command as a String
|
28
|
+
def get_command
|
29
|
+
@command + general_options
|
30
|
+
end
|
31
|
+
|
32
|
+
end
|
33
|
+
|
34
|
+
end
|
35
|
+
|
metadata
ADDED
@@ -0,0 +1,64 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: zenity-wrapper
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 2.30.0.1
|
5
|
+
prerelease:
|
6
|
+
platform: ruby
|
7
|
+
authors:
|
8
|
+
- Xavier Nayrac
|
9
|
+
autorequire:
|
10
|
+
bindir: bin
|
11
|
+
cert_chain: []
|
12
|
+
date: 2013-03-13 00:00:00.000000000 Z
|
13
|
+
dependencies: []
|
14
|
+
description: ! 'What did you expect with that name? Zenity-wrapper is a ruby wrapper
|
15
|
+
over
|
16
|
+
|
17
|
+
the zenity utilily.
|
18
|
+
|
19
|
+
|
20
|
+
I wrote it because I need it for a personal project. It is far from complete,
|
21
|
+
|
22
|
+
it could only open **list** and **message** dialog boxes.
|
23
|
+
|
24
|
+
Anyway I release it because it could be helpfull to somebody.'
|
25
|
+
email: xavier.nayrac@gmail.com
|
26
|
+
executables: []
|
27
|
+
extensions: []
|
28
|
+
extra_rdoc_files: []
|
29
|
+
files:
|
30
|
+
- lib/zenity/list.rb
|
31
|
+
- lib/zenity/message.rb
|
32
|
+
- lib/zenity/base.rb
|
33
|
+
- lib/zenity.rb
|
34
|
+
- VERSION
|
35
|
+
- NEWS
|
36
|
+
- README.markdown
|
37
|
+
- Rakefile
|
38
|
+
- TODO
|
39
|
+
homepage: https://github.com/lkdjiin/zenity-wrapper
|
40
|
+
licenses:
|
41
|
+
- MIT
|
42
|
+
post_install_message:
|
43
|
+
rdoc_options: []
|
44
|
+
require_paths:
|
45
|
+
- lib
|
46
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
47
|
+
none: false
|
48
|
+
requirements:
|
49
|
+
- - ! '>='
|
50
|
+
- !ruby/object:Gem::Version
|
51
|
+
version: 1.9.3
|
52
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
53
|
+
none: false
|
54
|
+
requirements:
|
55
|
+
- - ! '>='
|
56
|
+
- !ruby/object:Gem::Version
|
57
|
+
version: '0'
|
58
|
+
requirements: []
|
59
|
+
rubyforge_project:
|
60
|
+
rubygems_version: 1.8.25
|
61
|
+
signing_key:
|
62
|
+
specification_version: 3
|
63
|
+
summary: Zenity-wrapper is a ruby wrapper over the zenity utilily
|
64
|
+
test_files: []
|