aurita-gui 0.1.6 → 0.2.0
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/History.txt +11 -0
- data/TODO +4 -0
- data/aurita-gui.gemspec +2 -2
- data/cheatsheet.rb +112 -0
- data/lib/aurita-gui/element.rb +26 -7
- data/lib/aurita-gui/form.rb +12 -4
- data/lib/aurita-gui/form/checkbox_field.rb +25 -1
- data/lib/aurita-gui/form/input_field.rb +13 -2
- data/lib/aurita-gui/form/password_field.rb +23 -0
- data/lib/aurita-gui/form/radio_field.rb +23 -0
- data/lib/aurita-gui/form/text_field.rb +23 -0
- data/lib/aurita-gui/html.rb +37 -8
- metadata +7 -5
- data/aurita-gui-0.1.0.gem +0 -0
- data/aurita-gui-0.1.5.gem +0 -0
data/History.txt
CHANGED
data/aurita-gui.gemspec
CHANGED
@@ -14,7 +14,7 @@ as stand-alone library in any context (such as rails).
|
|
14
14
|
As there seems to be a lack of ruby form generators, i decided to release this
|
15
15
|
part of Aurita in a single gem with no dependencies.
|
16
16
|
EOF
|
17
|
-
s.version = '0.
|
17
|
+
s.version = '0.2.0'
|
18
18
|
s.author = 'Tobias Fuchs'
|
19
19
|
s.email = 'fuchs@atomnode.net'
|
20
20
|
s.date = Time.now
|
@@ -29,7 +29,7 @@ part of Aurita in a single gem with no dependencies.
|
|
29
29
|
|
30
30
|
s.has_rdoc = true
|
31
31
|
s.rdoc_options << '--title' << 'Aurita::GUI' <<
|
32
|
-
'--main' << '
|
32
|
+
'--main' << './cheatsheet.rb' <<
|
33
33
|
'--line-numbers'
|
34
34
|
|
35
35
|
s.homepage = 'http://aurita.wortundform.de/'
|
data/cheatsheet.rb
ADDED
@@ -0,0 +1,112 @@
|
|
1
|
+
|
2
|
+
require('rubygems')
|
3
|
+
require('aurita-gui')
|
4
|
+
require('test/unit/assertions')
|
5
|
+
|
6
|
+
include Test::Unit::Assertions
|
7
|
+
|
8
|
+
include Aurita::GUI
|
9
|
+
|
10
|
+
#== The basics
|
11
|
+
|
12
|
+
# This is the most convenient way to build
|
13
|
+
# HTML using aurita-gui.
|
14
|
+
# (Thanks to oGMo for demanding more magic)
|
15
|
+
t1 = HTML.build {
|
16
|
+
div(:class => :css_class,
|
17
|
+
:onmouseover => "do_something_with(this);") {
|
18
|
+
ul(:id => :the_list) {
|
19
|
+
li(:class => :first) { 'foo' } +
|
20
|
+
li(:class => :second) { 'bar' } +
|
21
|
+
li(:class => :third) { 'batz' }
|
22
|
+
}
|
23
|
+
}
|
24
|
+
}
|
25
|
+
puts t1.to_s
|
26
|
+
puts '-----------------------------------------'
|
27
|
+
|
28
|
+
# The previous example effectively does the
|
29
|
+
# following:
|
30
|
+
t2 = HTML.div(:class => :css_class,
|
31
|
+
:onmouseover => "do_something_with(this);") {
|
32
|
+
HTML.ul(:id => :the_list) {
|
33
|
+
[
|
34
|
+
HTML.li(:class => :first) { 'foo' },
|
35
|
+
HTML.li(:class => :second) { 'bar' },
|
36
|
+
HTML.li(:class => :third) { 'batz' }
|
37
|
+
]
|
38
|
+
}
|
39
|
+
}
|
40
|
+
assert_equal(t1.to_s, t2.to_s)
|
41
|
+
|
42
|
+
# Element is not a full Enumerable implementation (yet),
|
43
|
+
# but it offers random access operators ...
|
44
|
+
|
45
|
+
assert_equal(t1[0].tag, :ul) # First element of div is <ul>
|
46
|
+
|
47
|
+
t1[0][1] = HTML.li(:class => :changed) { 'wombat' }
|
48
|
+
puts t1.to_s
|
49
|
+
puts '-----------------------------------------'
|
50
|
+
|
51
|
+
# ... as well as #each ...
|
52
|
+
|
53
|
+
t1[0].each { |element|
|
54
|
+
element.id = 'each_change'
|
55
|
+
}
|
56
|
+
|
57
|
+
puts t1.to_s
|
58
|
+
|
59
|
+
# ... empty? and length. More to come in future releases.
|
60
|
+
|
61
|
+
assert_equal(t1[0].length, 3) # List has 3 entries
|
62
|
+
assert_equal(t1[0].empty?, false) # List has 3 entries
|
63
|
+
|
64
|
+
|
65
|
+
#== Form generation
|
66
|
+
|
67
|
+
puts '-----------------------------------------'
|
68
|
+
form = Form.new(:name => :the_form,
|
69
|
+
:id => :the_form_id,
|
70
|
+
:action => :where_to_send)
|
71
|
+
# You can either set all attributes in the
|
72
|
+
# constructor call ...
|
73
|
+
text = Input_Field.new(:name => :description,
|
74
|
+
:class => :the_css_class,
|
75
|
+
:onfocus => "alert('input focussed');",
|
76
|
+
:value => 'some text')
|
77
|
+
# Or set them afterwards:
|
78
|
+
text.onblur = "alert('i lost focus :(');"
|
79
|
+
|
80
|
+
# Enable / disable:
|
81
|
+
text.disable!
|
82
|
+
text.enable!
|
83
|
+
puts text.to_s
|
84
|
+
puts '-----------------------------------------'
|
85
|
+
|
86
|
+
# Set an element to readonly mode (display value only):
|
87
|
+
text.readonly!
|
88
|
+
puts text.to_s
|
89
|
+
puts '-----------------------------------------'
|
90
|
+
# And back to editable mode:
|
91
|
+
text.editable!
|
92
|
+
|
93
|
+
# Add it to the form:
|
94
|
+
form.add(text)
|
95
|
+
puts form.to_s
|
96
|
+
puts '-----------------------------------------'
|
97
|
+
|
98
|
+
# Access it again, via name:
|
99
|
+
assert_equal(form[:description], text)
|
100
|
+
# Or by using its index:
|
101
|
+
assert_equal(form[0], text)
|
102
|
+
|
103
|
+
# This is useful!
|
104
|
+
form[:description].value = 'change value'
|
105
|
+
|
106
|
+
checkbox = Checkbox_Field.new(:name => :enable_me,
|
107
|
+
:value => :foo,
|
108
|
+
:label => 'Check me',
|
109
|
+
:options => [ :foo, :bar ] )
|
110
|
+
form.add(checkbox)
|
111
|
+
puts form.to_s
|
112
|
+
|
data/lib/aurita-gui/element.rb
CHANGED
@@ -59,7 +59,8 @@ module GUI
|
|
59
59
|
if block_given? then
|
60
60
|
@content = yield
|
61
61
|
else
|
62
|
-
@content = params[:content]
|
62
|
+
@content = params[:content]
|
63
|
+
@content = [ @content ] unless @content.kind_of? Array
|
63
64
|
end
|
64
65
|
params.delete(:content)
|
65
66
|
@tag = params[:tag]
|
@@ -84,11 +85,17 @@ module GUI
|
|
84
85
|
# Render this element to a string and append another
|
85
86
|
# element.
|
86
87
|
def +(other)
|
87
|
-
|
88
|
-
return
|
88
|
+
# return string << other.string if other.kind_of? Element
|
89
|
+
return [ self, other ]
|
89
90
|
end
|
90
91
|
alias << +
|
91
92
|
|
93
|
+
def to_ary
|
94
|
+
[ self ]
|
95
|
+
end
|
96
|
+
alias to_a to_ary
|
97
|
+
|
98
|
+
|
92
99
|
# Redirect methods to setting or retreiving tag
|
93
100
|
# attributes.
|
94
101
|
def method_missing(meth, value=nil)
|
@@ -113,12 +120,20 @@ module GUI
|
|
113
120
|
end
|
114
121
|
|
115
122
|
# Do not redirect random access operators.
|
116
|
-
def [](
|
117
|
-
|
123
|
+
def [](index)
|
124
|
+
return @content[index]
|
125
|
+
# raise ::Exception.new('Undefined method [] for ' << self.class.to_s)
|
118
126
|
end
|
119
127
|
# Do not redirect random access operators.
|
120
|
-
def []=(
|
121
|
-
|
128
|
+
def []=(index,element)
|
129
|
+
@content[index] = element
|
130
|
+
# raise ::Exception.new('Undefined method []= for ' << self.class.to_s)
|
131
|
+
end
|
132
|
+
def length
|
133
|
+
@content.length
|
134
|
+
end
|
135
|
+
def empty?
|
136
|
+
@content.length == 0
|
122
137
|
end
|
123
138
|
|
124
139
|
# Static helper definition for clearing
|
@@ -153,6 +168,10 @@ module GUI
|
|
153
168
|
|
154
169
|
end
|
155
170
|
alias to_s string
|
171
|
+
|
172
|
+
def each(&block)
|
173
|
+
@content.each(&block)
|
174
|
+
end
|
156
175
|
|
157
176
|
end # class
|
158
177
|
|
data/lib/aurita-gui/form.rb
CHANGED
@@ -14,6 +14,9 @@ require('aurita-gui/form/textarea_field')
|
|
14
14
|
require('aurita-gui/form/date_field')
|
15
15
|
require('aurita-gui/form/datetime_field')
|
16
16
|
require('aurita-gui/form/file_field')
|
17
|
+
require('aurita-gui/form/boolean_field')
|
18
|
+
require('aurita-gui/form/text_field')
|
19
|
+
require('aurita-gui/form/password_field')
|
17
20
|
|
18
21
|
module Aurita
|
19
22
|
module GUI
|
@@ -25,7 +28,8 @@ module GUI
|
|
25
28
|
def initialize(field)
|
26
29
|
label_params = { :for => field.dom_id }
|
27
30
|
label_params[:id] = field.dom_id.to_s + '_label'
|
28
|
-
|
31
|
+
label = field.label
|
32
|
+
@content = [ HTML.label(label_params) { label }, field ]
|
29
33
|
params = { :tag => :li,
|
30
34
|
:content => @content,
|
31
35
|
:id => field.dom_id + '_wrap',
|
@@ -71,6 +75,7 @@ module GUI
|
|
71
75
|
@element_map = {}
|
72
76
|
@values ||= {}
|
73
77
|
@title = false
|
78
|
+
@custom_fields = false
|
74
79
|
if block_given? then
|
75
80
|
yield.each { |e| add(e) }
|
76
81
|
end
|
@@ -139,6 +144,7 @@ module GUI
|
|
139
144
|
# form.fields = [ :name, :description, :date ]
|
140
145
|
#
|
141
146
|
def fields=(attrib_array)
|
147
|
+
@custom_fields = true
|
142
148
|
@fields = attrib_array.flatten.collect { |fieldname| fieldname.to_s }
|
143
149
|
@elements.each { |field|
|
144
150
|
@element_map[field.name.to_s] = field
|
@@ -167,7 +173,7 @@ module GUI
|
|
167
173
|
# Return array of field names currently
|
168
174
|
# available for rendering.
|
169
175
|
def fields()
|
170
|
-
if !@
|
176
|
+
if !@custom_fields || @fields.length == 0 then
|
171
177
|
@elements.each { |field|
|
172
178
|
@fields << field.name.to_s
|
173
179
|
@element_map[field.name.to_s] = field
|
@@ -197,14 +203,16 @@ module GUI
|
|
197
203
|
end
|
198
204
|
end
|
199
205
|
}
|
200
|
-
|
206
|
+
cont = @content
|
207
|
+
@content = HTML.ul(:class => :form_fields) { cont }
|
201
208
|
return @content
|
202
209
|
end
|
203
210
|
|
204
211
|
# Render this form to an HTML.form instance.
|
205
212
|
# Wraps result of #content.
|
206
213
|
def element
|
207
|
-
|
214
|
+
cont = content()
|
215
|
+
HTML.form(@attrib) { cont }
|
208
216
|
end
|
209
217
|
|
210
218
|
# Render this form to a string
|
@@ -4,19 +4,43 @@ require('aurita-gui/form/options_field')
|
|
4
4
|
module Aurita
|
5
5
|
module GUI
|
6
6
|
|
7
|
+
# Factory for checkbox input fields, specialization
|
8
|
+
# of Options_Field.
|
9
|
+
# For usage see documentation of Options_Fiels.
|
10
|
+
#
|
7
11
|
class Checkbox_Field < Options_Field
|
8
12
|
def option_elements
|
9
13
|
options = []
|
10
14
|
@option_elements.each { |option|
|
11
15
|
if option.kind_of? Hash then
|
16
|
+
# Options have been set as value/label pair, like
|
17
|
+
#
|
18
|
+
# @options = { 1 => 'first', 2 => 'second' }
|
19
|
+
#
|
12
20
|
option.each_pair { |k,v|
|
13
|
-
|
21
|
+
box_attribs = { :type => :checkbox,
|
22
|
+
:value => k,
|
23
|
+
:name => @attrib[:name] }
|
24
|
+
box_attribs[:checked] = true if (v.to_s == @value.to_s)
|
25
|
+
options << HTML.input(box_attribs)
|
14
26
|
}
|
15
27
|
elsif option.kind_of? Element then
|
28
|
+
# Option element has been built externally, like in
|
29
|
+
#
|
30
|
+
# @options = [ HTML.option(:class => :custom, :label => 'built manually') ]
|
31
|
+
#
|
16
32
|
option.name = @attrib[:name]
|
17
33
|
option.tag = :input
|
18
34
|
option.type = :checkbox
|
19
35
|
options << option
|
36
|
+
else
|
37
|
+
# For @options = [ :foo, :bar, 'wombat' ],
|
38
|
+
#
|
39
|
+
box_attribs = { :type => :checkbox,
|
40
|
+
:value => option.to_s,
|
41
|
+
:name => @attrib[:name] }
|
42
|
+
box_attribs[:checked] = true if (option.to_s == @value.to_s)
|
43
|
+
options << HTML.input(box_attribs)
|
20
44
|
end
|
21
45
|
}
|
22
46
|
options
|
@@ -4,10 +4,21 @@ require('aurita-gui/form/form_field')
|
|
4
4
|
module Aurita
|
5
5
|
module GUI
|
6
6
|
|
7
|
+
# Factory for input fields.
|
8
|
+
# Default type is :text, accoring to W3C, possible
|
9
|
+
# types are :password, :radio, :checkbox.
|
10
|
+
#
|
11
|
+
# For radio and checkbox input fields, there are
|
12
|
+
# classes Radio_Field and Checkbox_Field, providing
|
13
|
+
# more convenience than building option fields
|
14
|
+
# manually.
|
15
|
+
# See also Options_Field on this topic.
|
16
|
+
#
|
7
17
|
# Usage:
|
8
18
|
#
|
9
|
-
# i = Input_Field.new(:
|
10
|
-
# :
|
19
|
+
# i = Input_Field.new(:type => :text,
|
20
|
+
# :name => :description,
|
21
|
+
# :label => 'Enter a discription',
|
11
22
|
# :value => 'Lorem ipsum dolor')
|
12
23
|
#
|
13
24
|
class Input_Field < Form_Field
|
@@ -0,0 +1,23 @@
|
|
1
|
+
|
2
|
+
require('aurita-gui/form/form_field')
|
3
|
+
|
4
|
+
module Aurita
|
5
|
+
module GUI
|
6
|
+
|
7
|
+
# Wrapper for Input_Field, defaults type to :password.
|
8
|
+
#
|
9
|
+
# Usage:
|
10
|
+
#
|
11
|
+
# i = Password_Field.new(:name => :pass_confirm,
|
12
|
+
# :label => 'Confirm password',
|
13
|
+
# :value => 'oldpass') # Possible, but not recommended
|
14
|
+
#
|
15
|
+
class Password_Field < Input_Field
|
16
|
+
def initialize(params, &block)
|
17
|
+
params[:type] = :password unless params[:type]
|
18
|
+
super(params)
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
22
|
+
end
|
23
|
+
end
|
@@ -4,8 +4,29 @@ require('aurita-gui/form/options_field')
|
|
4
4
|
module Aurita
|
5
5
|
module GUI
|
6
6
|
|
7
|
+
# Factory for radio input fields, specialization
|
8
|
+
# of Options_Field.
|
9
|
+
# Example:
|
10
|
+
#
|
11
|
+
# r = Radio_Field.new(:name => :color,
|
12
|
+
# :value => :red,
|
13
|
+
# :label => 'Select a color',
|
14
|
+
# :options => { :red => 'red color', :blue => 'blue color' })
|
15
|
+
#
|
16
|
+
# Same as
|
17
|
+
#
|
18
|
+
# r = Radio_Field.new(:name => :color, :value => :red, :label => 'Select a color') {
|
19
|
+
# :red => 'red color', :blue => 'blue_color
|
20
|
+
# }
|
21
|
+
#
|
22
|
+
# For usage details see documentation of Options_Fiels.
|
23
|
+
#
|
7
24
|
class Radio_Field < Options_Field
|
8
25
|
|
26
|
+
# Returns array of option elements for this
|
27
|
+
# radio field.
|
28
|
+
# Each option is a radio input field with
|
29
|
+
# @name as common name attribute.
|
9
30
|
def option_elements
|
10
31
|
options = []
|
11
32
|
@option_elements.each { |option|
|
@@ -23,6 +44,8 @@ module GUI
|
|
23
44
|
options
|
24
45
|
end
|
25
46
|
|
47
|
+
# Renders this radio field to a HTML.ul element,
|
48
|
+
# including options from #option_elements.
|
26
49
|
def element
|
27
50
|
HTML.ul(:class => :radio_options) {
|
28
51
|
option_elements().map { |o| HTML.li() { o } }
|
@@ -0,0 +1,23 @@
|
|
1
|
+
|
2
|
+
require('aurita-gui/form/form_field')
|
3
|
+
|
4
|
+
module Aurita
|
5
|
+
module GUI
|
6
|
+
|
7
|
+
# Wrapper for Input_Field, sets type to :text.
|
8
|
+
#
|
9
|
+
# Usage:
|
10
|
+
#
|
11
|
+
# i = Text_Field.new(:name => :description,
|
12
|
+
# :label => 'Description',
|
13
|
+
# :value => 'Lorem ipsum dolor')
|
14
|
+
#
|
15
|
+
class Text_Field < Input_Field
|
16
|
+
def initialize(params, &block)
|
17
|
+
params[:type] = :text unless params[:type]
|
18
|
+
super(params)
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
22
|
+
end
|
23
|
+
end
|
data/lib/aurita-gui/html.rb
CHANGED
@@ -29,30 +29,58 @@ module GUI
|
|
29
29
|
# HTML.a(:href => 'http://domain.com') { 'click me' }
|
30
30
|
# # --> '<a href="http://domain.com">click me</a>'
|
31
31
|
#
|
32
|
+
|
33
|
+
XHTML_TAGS = [ :html, :div, :p, :input, :select, :option, :ul, :ol, :li ]
|
34
|
+
|
32
35
|
class HTML
|
33
36
|
|
37
|
+
# Statically defined as <br /> must not have any attributes.
|
34
38
|
def self.br
|
35
|
-
|
39
|
+
Element.new(:tag => :br)
|
36
40
|
end
|
37
41
|
|
38
42
|
def self.render(meth_name, attrib_hash={}, &block)
|
39
43
|
raise ::Exception.new('Missing attributes for HTML.' << meth_name.inspect) unless attrib_hash
|
40
44
|
attrib_hash[:tag] = meth_name
|
41
|
-
|
42
|
-
|
43
|
-
attrib_hash[:content] =
|
45
|
+
cont = yield if block_given?
|
46
|
+
# cont = self.class_eval(&block)
|
47
|
+
attrib_hash[:content] = cont
|
44
48
|
Element.new(attrib_hash)
|
45
49
|
end
|
50
|
+
|
51
|
+
def self.build(&block)
|
52
|
+
raise ::Exception.new('Missing block for HTML.render') unless block_given?
|
53
|
+
self.class_eval(&block)
|
54
|
+
end
|
55
|
+
|
46
56
|
|
47
57
|
def self.a(attrib_hash={}, &block)
|
48
58
|
render(:a, attrib_hash, &block)
|
49
59
|
end
|
50
60
|
|
61
|
+
# p is defined in Kernel, so we have to
|
62
|
+
# redirect it manually (method_missing won't be
|
63
|
+
# triggered for it)
|
64
|
+
def self.p(attrib_hash={}, &block)
|
65
|
+
render(:p, attrib_hash, &block)
|
66
|
+
end
|
67
|
+
|
51
68
|
def self.method_missing(meth_name, attrib_hash={}, &block)
|
52
|
-
render(meth_name, attrib_hash, &block)
|
69
|
+
render(meth_name, attrib_hash, &block)
|
53
70
|
end
|
54
71
|
|
55
|
-
|
72
|
+
=begin
|
73
|
+
for t in XHTML_TAGS do
|
74
|
+
meth = <<EOC
|
75
|
+
def self.#{t.to_s}(attribs=nil, &block)
|
76
|
+
render(:#{t.to_s}, attribs, &block)
|
77
|
+
end
|
78
|
+
EOC
|
79
|
+
class_eval(meth)
|
80
|
+
end
|
81
|
+
=end
|
82
|
+
|
83
|
+
end # class
|
56
84
|
|
57
85
|
# A minimalistic generator for javascript calls.
|
58
86
|
# Usage:
|
@@ -111,8 +139,9 @@ module GUI
|
|
111
139
|
args_string = args.join(',')
|
112
140
|
meth.to_s << '(' << args_string + ');'
|
113
141
|
end
|
114
|
-
|
115
|
-
end
|
142
|
+
|
143
|
+
end # class
|
144
|
+
|
116
145
|
|
117
146
|
end # module
|
118
147
|
end # module
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: aurita-gui
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Tobias Fuchs
|
@@ -9,7 +9,7 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date: 2009-01-
|
12
|
+
date: 2009-01-12 00:00:00 +01:00
|
13
13
|
default_executable:
|
14
14
|
dependencies: []
|
15
15
|
|
@@ -22,13 +22,13 @@ extensions: []
|
|
22
22
|
extra_rdoc_files: []
|
23
23
|
|
24
24
|
files:
|
25
|
+
- cheatsheet.rb
|
25
26
|
- History.txt
|
26
27
|
- lib
|
27
|
-
- aurita-gui-0.1.0.gem
|
28
28
|
- aurita-gui.gemspec
|
29
29
|
- bin
|
30
|
+
- TODO
|
30
31
|
- test
|
31
|
-
- aurita-gui-0.1.5.gem
|
32
32
|
- LICENSE
|
33
33
|
- lib/aurita-gui
|
34
34
|
- lib/aurita-gui.rb
|
@@ -38,6 +38,7 @@ files:
|
|
38
38
|
- lib/aurita-gui/table.rb
|
39
39
|
- lib/aurita-gui/form
|
40
40
|
- lib/aurita-gui/element.rb
|
41
|
+
- lib/aurita-gui/form/password_field.rb
|
41
42
|
- lib/aurita-gui/form/options_field.rb
|
42
43
|
- lib/aurita-gui/form/file_field.rb
|
43
44
|
- lib/aurita-gui/form/form_error.rb
|
@@ -50,6 +51,7 @@ files:
|
|
50
51
|
- lib/aurita-gui/form/select_field.rb
|
51
52
|
- lib/aurita-gui/form/radio_field.rb
|
52
53
|
- lib/aurita-gui/form/hidden_field.rb
|
54
|
+
- lib/aurita-gui/form/text_field.rb
|
53
55
|
- lib/aurita-gui/form/input_field.rb
|
54
56
|
- lib/aurita-gui/form/date_field.rb
|
55
57
|
- test/tc_options.rb
|
@@ -62,7 +64,7 @@ rdoc_options:
|
|
62
64
|
- --title
|
63
65
|
- Aurita::GUI
|
64
66
|
- --main
|
65
|
-
-
|
67
|
+
- ./cheatsheet.rb
|
66
68
|
- --line-numbers
|
67
69
|
require_paths:
|
68
70
|
- lib
|
data/aurita-gui-0.1.0.gem
DELETED
Binary file
|
data/aurita-gui-0.1.5.gem
DELETED
Binary file
|