romo 0.0.1 → 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (46) hide show
  1. data/.gitignore +2 -0
  2. data/Gemfile +9 -1
  3. data/README.md +1 -1
  4. data/assets/css/romo/_mixins.scss +486 -0
  5. data/assets/css/romo/_vars.scss +159 -0
  6. data/assets/css/romo/base.scss +454 -0
  7. data/assets/css/romo/buttons.scss +211 -0
  8. data/assets/css/romo/datepicker.scss +73 -0
  9. data/assets/css/romo/dropdown.scss +33 -0
  10. data/assets/css/romo/forms.scss +193 -0
  11. data/assets/css/romo/grid.scss +271 -0
  12. data/assets/css/romo/grid_table.scss +129 -0
  13. data/assets/css/romo/labels.scss +41 -0
  14. data/assets/css/romo/lists.scss +37 -0
  15. data/assets/css/romo/modal.scss +32 -0
  16. data/assets/css/romo/normalize.scss +425 -0
  17. data/assets/css/romo/select.scss +89 -0
  18. data/assets/css/romo/sortable.scss +14 -0
  19. data/assets/css/romo/table.scss +99 -0
  20. data/assets/css/romo/tabs.scss +71 -0
  21. data/assets/css/romo/tooltip.scss +89 -0
  22. data/assets/css/romo/z_index.scss +26 -0
  23. data/assets/js/romo/base.js +177 -0
  24. data/assets/js/romo/datepicker.js +541 -0
  25. data/assets/js/romo/dropdown.js +309 -0
  26. data/assets/js/romo/dropdown_form.js +92 -0
  27. data/assets/js/romo/form.js +182 -0
  28. data/assets/js/romo/indicator.js +88 -0
  29. data/assets/js/romo/inline.js +77 -0
  30. data/assets/js/romo/inline_form.js +86 -0
  31. data/assets/js/romo/invoke.js +87 -0
  32. data/assets/js/romo/modal.js +311 -0
  33. data/assets/js/romo/modal_form.js +101 -0
  34. data/assets/js/romo/select.js +139 -0
  35. data/assets/js/romo/select_dropdown.js +325 -0
  36. data/assets/js/romo/sortable.js +201 -0
  37. data/assets/js/romo/tooltip.js +258 -0
  38. data/lib/romo/dassets.rb +64 -0
  39. data/lib/romo/version.rb +1 -1
  40. data/lib/romo.rb +9 -0
  41. data/romo.gemspec +4 -2
  42. data/test/support/.gitkeep +0 -0
  43. data/test/system/.gitkeep +0 -0
  44. data/test/unit/dassets_tests.rb +67 -0
  45. data/test/unit/romo_tests.rb +21 -0
  46. metadata +53 -10
@@ -0,0 +1,258 @@
1
+ $.fn.romoTooltip = function() {
2
+ return $.map(this, function(element) {
3
+ return new RomoTooltip(element);
4
+ });
5
+ }
6
+
7
+ var RomoTooltip = function(element) {
8
+ this.elem = $(element);
9
+ this.popupElem = $('<div class="romo-tooltip-popup"><div class="romo-tooltip-arrow"></div><div class="romo-tooltip-body"></div></div>');
10
+ this.popupElem.appendTo('body');
11
+ this.doSetPopupZIndex(this.elem);
12
+ this.arrowElem = this.popupElem.find('> .romo-tooltip-arrow');
13
+ this.bodyElem = this.popupElem.find('> .romo-tooltip-body');
14
+
15
+ this.hoverState = 'out';
16
+ this.delayEnter = 0;
17
+ this.delayLeave = 0;
18
+ if (this.elem.data('romo-tooltip-delay') !== undefined && this.elem.data('romo-tooltip-delay') !== '') {
19
+ this.delayEnter = this.elem.data('romo-tooltip-delay');
20
+ this.delayLeave = this.elem.data('romo-tooltip-delay');
21
+ }
22
+ if (this.elem.data('romo-tooltip-delay-enter') !== undefined && this.elem.data('romo-tooltip-delay-enter') !== '') {
23
+ this.delayEnter = this.elem.data('romo-tooltip-delay-enter');
24
+ }
25
+ if (this.elem.data('romo-tooltip-delay-leave') !== undefined && this.elem.data('romo-tooltip-delay-leave') !== '') {
26
+ this.delayLeave = this.elem.data('romo-tooltip-delay-leave');
27
+ }
28
+
29
+ this.popupPosition = this.elem.data('romo-tooltip-position') || 'top';
30
+ this.popupElem.attr('data-romo-tooltip-position', this.popupPosition);
31
+ this.popupAlignment = this.elem.data('romo-tooltip-alignment') || 'center';
32
+ this.popupElem.attr('data-romo-tooltip-alignment', this.popupAlignment);
33
+
34
+ // don't propagate click events on the popup elem. this prevents the popup
35
+ // from closing when clicked (see body click event bind on popup open)
36
+ this.popupElem.on('click', function(e) {
37
+ if (e !== undefined) {
38
+ e.stopPropagation();
39
+ }
40
+ })
41
+
42
+ if (this.elem.data('romo-tooltip-style-class') !== undefined) {
43
+ this.bodyElem.addClass(this.elem.data('romo-tooltip-style-class'));
44
+ }
45
+ this.contentData = this.elem.data('romo-tooltip-content');
46
+ this.bodyElem.html(this.contentData || '');
47
+
48
+ this.elem.on('mouseenter', $.proxy(this.onToggleEnter, this));
49
+ this.elem.on('mouseleave', $.proxy(this.onToggleLeave, this));
50
+ this.elem.on('tooltip:triggerPopupOpen', $.proxy(this.onPopupOpen, this));
51
+ this.elem.on('tooltip:triggerPopupClose', $.proxy(this.onPopupClose, this));
52
+ $(window).on('resize', $.proxy(this.onResizeWindow, this))
53
+
54
+ this.doInit();
55
+ this.doInitBody();
56
+ if (this.contentData === undefined) {
57
+ this.doBindInvoke();
58
+ }
59
+
60
+ this.elem.trigger('tooltip:ready', [this]);
61
+ }
62
+
63
+ RomoTooltip.prototype.doInit = function() {
64
+ // override as needed
65
+ }
66
+
67
+ RomoTooltip.prototype.doInitBody = function() {
68
+ this.doResetBody();
69
+
70
+ this.bodyElem.css({
71
+ 'min-width': this.elem.data('romo-tooltip-min-width'),
72
+ 'max-width': this.elem.data('romo-tooltip-max-width'),
73
+ 'width': this.elem.data('romo-tooltip-width'),
74
+ 'min-height': this.elem.data('romo-tooltip-min-height'),
75
+ 'max-height': this.elem.data('romo-tooltip-max-height'),
76
+ 'height': this.elem.data('romo-tooltip-height')
77
+ });
78
+ }
79
+
80
+ RomoTooltip.prototype.doResetBody = function() {
81
+ this.bodyElem.css({
82
+ 'min-width': '',
83
+ 'max-width': '',
84
+ 'width': '',
85
+ 'min-height': '',
86
+ 'max-height': '',
87
+ 'height': '',
88
+ });
89
+ }
90
+
91
+ RomoTooltip.prototype.doBindInvoke = function() {
92
+ this.romoInvoke = this.elem.romoInvoke()[0];
93
+ this.romoInvoke.doUnBindInvoke(); // disable auto invoke on click
94
+
95
+ this.elem.on('invoke:loadStart', $.proxy(function(e, invoke) {
96
+ this.doLoadBodyStart();
97
+ }, this));
98
+ this.elem.on('invoke:loadSuccess', $.proxy(function(e, data, invoke) {
99
+ this.doLoadBodySuccess(data);
100
+ }, this));
101
+ this.elem.on('invoke:loadError', $.proxy(function(e, xhr, invoke) {
102
+ this.doLoadBodyError(xhr);
103
+ }, this));
104
+ }
105
+
106
+ RomoTooltip.prototype.doLoadBodyStart = function() {
107
+ this.bodyElem.html('');
108
+ this.doInitBody();
109
+ this.doPlacePopupElem();
110
+ this.elem.trigger('tooltip:loadBodyStart', [this]);
111
+ }
112
+
113
+ RomoTooltip.prototype.doLoadBodySuccess = function(data) {
114
+ Romo.initHtml(this.bodyElem, data);
115
+ this.doInitBody();
116
+ this.doPlacePopupElem();
117
+ this.elem.trigger('tooltip:loadBodySuccess', [data, this]);
118
+ }
119
+
120
+ RomoTooltip.prototype.doLoadBodyError = function(xhr) {
121
+ this.elem.trigger('tooltip:loadBodyError', [xhr, this]);
122
+ }
123
+
124
+ RomoTooltip.prototype.onToggleEnter = function(e) {
125
+ if (e !== undefined) {
126
+ e.preventDefault();
127
+ }
128
+
129
+ this.hoverState = 'in';
130
+ if (this.elem.hasClass('disabled') === false) {
131
+ clearTimeout(this.timeout);
132
+ this.timeout = setTimeout($.proxy(function() {
133
+ if (this.hoverState ==='in') {
134
+ this.doPopupOpen();
135
+ }
136
+ }, this), this.delayEnter);
137
+ }
138
+ }
139
+
140
+ RomoTooltip.prototype.onToggleLeave = function(e) {
141
+ if (e !== undefined) {
142
+ e.preventDefault();
143
+ }
144
+
145
+ this.hoverState = 'out';
146
+ if (this.elem.hasClass('disabled') === false) {
147
+ clearTimeout(this.timeout);
148
+ this.timeout = setTimeout($.proxy(function() {
149
+ if (this.hoverState === 'out') {
150
+ this.doPopupClose();
151
+ }
152
+ }, this), this.delayLeave);
153
+ }
154
+ }
155
+
156
+ RomoTooltip.prototype.onResizeWindow = function(e) {
157
+ if (this.elem.hasClass('disabled') === false && this.hoverState === 'in') {
158
+ this.doPlacePopupElem();
159
+ }
160
+ }
161
+
162
+ RomoTooltip.prototype.onPopupOpen = function(e) {
163
+ if (e !== undefined) {
164
+ e.preventDefault();
165
+ }
166
+
167
+ if (this.elem.hasClass('disabled') === false) {
168
+ this.doPopupOpen();
169
+ }
170
+ }
171
+
172
+ RomoTooltip.prototype.doPopupOpen = function() {
173
+ if (this.romoInvoke !== undefined) {
174
+ this.romoInvoke.doInvoke();
175
+ }
176
+ this.popupElem.addClass('romo-tooltip-open');
177
+ this.doPlacePopupElem();
178
+
179
+ if (this.elem.parents('.romo-modal-popup').size() !== 0) {
180
+ $('body').on('modal:mousedown', $.proxy(this.onModalPopupChange, this));
181
+ $('body').on('modal:popupclose', $.proxy(this.onModalPopupChange, this));
182
+ }
183
+ $(window).on('resize', $.proxy(this.onResizeWindow, this));
184
+
185
+ this.elem.trigger('tooltip:popupOpen', [this]);
186
+ }
187
+
188
+ RomoTooltip.prototype.onPopupClose = function(e) {
189
+ if (e !== undefined) {
190
+ e.preventDefault();
191
+ }
192
+
193
+ if (this.elem.hasClass('disabled') === false) {
194
+ this.doPopupClose();
195
+ }
196
+ }
197
+
198
+ RomoTooltip.prototype.doPopupClose = function() {
199
+ this.popupElem.removeClass('romo-tooltip-open');
200
+
201
+ if (this.elem.parents('.romo-modal-popup').size() !== 0) {
202
+ $('body').off('modal:mousedown', $.proxy(this.onModalPopupChange, this));
203
+ $('body').off('modal:popupclose', $.proxy(this.onModalPopupChange, this));
204
+ }
205
+ $(window).off('resize', $.proxy(this.onResizeWindow, this));
206
+
207
+ this.elem.trigger('tooltip:popupClose', [this]);
208
+ }
209
+
210
+ RomoTooltip.prototype.onModalPopupChange = function(e) {
211
+ if (e !== undefined) {
212
+ this.doPopupClose();
213
+ }
214
+ return true;
215
+ }
216
+
217
+ RomoTooltip.prototype.onResizeWindow = function(e) {
218
+ this.doPlacePopupElem();
219
+ return true;
220
+ }
221
+
222
+ RomoTooltip.prototype.doPlacePopupElem = function() {
223
+ if (this.elem.parents('.romo-modal-popup').size() !== 0) {
224
+ this.popupElem.css({'position': 'fixed'});
225
+ }
226
+
227
+ var pos = $.extend({}, this.elem[0].getBoundingClientRect(), this.elem.offset());
228
+ var w = this.popupElem[0].offsetWidth;
229
+ var h = this.popupElem[0].offsetHeight;
230
+ var pad = 6 + 1; // arrow size + spacing
231
+ var offset = {};
232
+
233
+ switch (this.popupPosition) {
234
+ case 'top':
235
+ $.extend(offset, { top: pos.top - h - pad, left: pos.left + pos.width / 2 - w / 2 });
236
+ break;
237
+ case 'bottom':
238
+ $.extend(offset, { top: pos.top + pos.height + pad, left: pos.left + pos.width / 2 - w / 2 });
239
+ break;
240
+ case 'left':
241
+ $.extend(offset, { top: pos.top + pos.height / 2 - h / 2, left: pos.left - w - pad });
242
+ break;
243
+ case 'right':
244
+ $.extend(offset, { top: pos.top + pos.height / 2 - h / 2, left: pos.left + pos.width + pad });
245
+ break;
246
+ }
247
+
248
+ this.popupElem.offset(offset);
249
+ }
250
+
251
+ RomoTooltip.prototype.doSetPopupZIndex = function(relativeElem) {
252
+ var relativeZIndex = Romo.parseZIndex(relativeElem);
253
+ this.popupElem.css({'z-index': relativeZIndex + 1100}); // see z-index.css
254
+ }
255
+
256
+ Romo.onInitUI(function(e) {
257
+ Romo.initUIElems(e, '[data-romo-tooltip-auto="true"]').romoTooltip();
258
+ });
@@ -0,0 +1,64 @@
1
+ require 'dassets'
2
+ require 'dassets-sass'
3
+ require 'dassets-erb'
4
+ require 'romo'
5
+
6
+ module Romo; end
7
+ module Romo::Dassets
8
+
9
+ # TODO: this is a prototype - I'm not even sure how this API will shake out.
10
+ # eventually would have a gem, "romo-dassets", do this or something
11
+
12
+ def self.configure!
13
+ Dassets.configure do |c|
14
+ c.source Romo.gem_assets_path do |s|
15
+ s.filter{ |paths| paths.reject{ |p| File.basename(p) =~ /^_/ } }
16
+
17
+ s.engine 'erb', Dassets::Erb::Engine
18
+ s.engine 'scss', Dassets::Sass::Engine, {
19
+ :syntax => 'scss',
20
+ :output_style => 'compressed' # TODO: let them override output style
21
+ }
22
+ end
23
+
24
+ c.combination "css/romo.css", [
25
+ 'css/romo/normalize.css',
26
+ 'css/romo/base.css',
27
+ 'css/romo/forms.css',
28
+ 'css/romo/buttons.css',
29
+ 'css/romo/labels.css',
30
+ 'css/romo/tabs.css',
31
+ 'css/romo/lists.css',
32
+ 'css/romo/grid.css',
33
+ 'css/romo/table.css',
34
+ 'css/romo/grid_table.css',
35
+ 'css/romo/dropdown.css',
36
+ 'css/romo/modal.css',
37
+ 'css/romo/select.css',
38
+ 'css/romo/datepicker.css',
39
+ 'css/romo/tooltip.css',
40
+ 'css/romo/sortable.css',
41
+ 'css/romo/z_index.css',
42
+ ]
43
+ c.combination "js/romo.js", [
44
+ 'js/romo/base.js',
45
+ 'js/romo/invoke.js',
46
+ 'js/romo/form.js',
47
+ 'js/romo/dropdown.js',
48
+ 'js/romo/dropdown_form.js',
49
+ 'js/romo/select_dropdown.js',
50
+ 'js/romo/select.js',
51
+ 'js/romo/datepicker.js',
52
+ 'js/romo/inline.js',
53
+ 'js/romo/inline_form.js',
54
+ 'js/romo/modal.js',
55
+ 'js/romo/modal_form.js',
56
+ 'js/romo/tooltip.js',
57
+ 'js/romo/indicator.js',
58
+ 'js/romo/sortable.js',
59
+ ]
60
+
61
+ end
62
+ end
63
+
64
+ end
data/lib/romo/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Romo
2
- VERSION = "0.0.1"
2
+ VERSION = "0.1.0"
3
3
  end
data/lib/romo.rb CHANGED
@@ -1,4 +1,13 @@
1
1
  require "romo/version"
2
2
 
3
3
  module Romo
4
+
5
+ def self.gem_assets_path; self.gem_path.join('assets'); end
6
+
7
+ private
8
+
9
+ def self.gem_path
10
+ @gem_path ||= Pathname(Gem.loaded_specs['romo'].full_gem_path)
11
+ end
12
+
4
13
  end
data/romo.gemspec CHANGED
@@ -13,11 +13,13 @@ Gem::Specification.new do |gem|
13
13
  gem.homepage = "http://github.com/redding/romo"
14
14
  gem.license = 'MIT'
15
15
 
16
- gem.files = `git ls-files`.split($/)
16
+ gem_files = `git ls-files`.split($/)
17
+ gem_files -= gem_files.grep(%r{^(gh-pages)/})
18
+ gem.files = gem_files
17
19
  gem.executables = gem.files.grep(%r{^bin/}).map{ |f| File.basename(f) }
18
20
  gem.test_files = gem.files.grep(%r{^(test|spec|features)/})
19
21
  gem.require_paths = ["lib"]
20
22
 
21
- gem.add_development_dependency("assert", ["~> 2.3"])
23
+ gem.add_development_dependency("assert", ["~> 2.12"])
22
24
 
23
25
  end
File without changes
File without changes
@@ -0,0 +1,67 @@
1
+ require 'assert'
2
+ require 'romo/dassets'
3
+
4
+ require 'dassets'
5
+ require 'dassets-sass'
6
+ require 'dassets-erb'
7
+
8
+ module Romo::Dassets
9
+
10
+ class UnitTests < Assert::Context
11
+ desc "Romo::Dassets"
12
+ subject{ Romo::Dassets }
13
+
14
+ should "configure Romo with Dassets" do
15
+ subject.configure!
16
+
17
+ source = Dassets.config.sources.detect do |source|
18
+ source.path == Romo.gem_assets_path.to_s
19
+ end
20
+ assert source
21
+ assert_instance_of Dassets::Sass::Engine, source.engines["scss"]
22
+ assert_instance_of Dassets::Erb::Engine, source.engines["erb"]
23
+
24
+ exp_css_sources = [
25
+ 'css/romo/normalize.css',
26
+ 'css/romo/base.css',
27
+ 'css/romo/forms.css',
28
+ 'css/romo/buttons.css',
29
+ 'css/romo/labels.css',
30
+ 'css/romo/tabs.css',
31
+ 'css/romo/lists.css',
32
+ 'css/romo/grid.css',
33
+ 'css/romo/table.css',
34
+ 'css/romo/grid_table.css',
35
+ 'css/romo/dropdown.css',
36
+ 'css/romo/modal.css',
37
+ 'css/romo/select.css',
38
+ 'css/romo/datepicker.css',
39
+ 'css/romo/tooltip.css',
40
+ 'css/romo/sortable.css',
41
+ 'css/romo/z_index.css',
42
+ ]
43
+ assert_equal exp_css_sources, Dassets.config.combinations['css/romo.css']
44
+
45
+ exp_js_sources = [
46
+ 'js/romo/base.js',
47
+ 'js/romo/invoke.js',
48
+ 'js/romo/form.js',
49
+ 'js/romo/dropdown.js',
50
+ 'js/romo/dropdown_form.js',
51
+ 'js/romo/select_dropdown.js',
52
+ 'js/romo/select.js',
53
+ 'js/romo/datepicker.js',
54
+ 'js/romo/inline.js',
55
+ 'js/romo/inline_form.js',
56
+ 'js/romo/modal.js',
57
+ 'js/romo/modal_form.js',
58
+ 'js/romo/tooltip.js',
59
+ 'js/romo/indicator.js',
60
+ 'js/romo/sortable.js',
61
+ ]
62
+ assert_equal exp_js_sources, Dassets.config.combinations['js/romo.js']
63
+ end
64
+
65
+ end
66
+
67
+ end
@@ -0,0 +1,21 @@
1
+ require 'assert'
2
+ require 'romo'
3
+
4
+ module Romo
5
+
6
+ class UnitTests < Assert::Context
7
+ desc "Romo"
8
+ subject{ Romo }
9
+
10
+ should have_imeths :gem_assets_path
11
+
12
+ should "know its assets path based on the gem's path" do
13
+ spec = Gem::Specification.find_by_name('romo', Romo::VERSION)
14
+ expected = File.join(spec.gem_dir, 'assets')
15
+
16
+ assert_equal expected, subject.gem_assets_path.to_s
17
+ end
18
+
19
+ end
20
+
21
+ end
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: romo
3
3
  version: !ruby/object:Gem::Version
4
- hash: 29
4
+ hash: 27
5
5
  prerelease:
6
6
  segments:
7
7
  - 0
8
- - 0
9
8
  - 1
10
- version: 0.0.1
9
+ - 0
10
+ version: 0.1.0
11
11
  platform: ruby
12
12
  authors:
13
13
  - Kelly Redding
@@ -16,23 +16,23 @@ autorequire:
16
16
  bindir: bin
17
17
  cert_chain: []
18
18
 
19
- date: 2013-11-20 00:00:00 Z
19
+ date: 2014-11-07 00:00:00 Z
20
20
  dependencies:
21
21
  - !ruby/object:Gem::Dependency
22
- name: assert
23
- prerelease: false
24
22
  requirement: &id001 !ruby/object:Gem::Requirement
25
23
  none: false
26
24
  requirements:
27
25
  - - ~>
28
26
  - !ruby/object:Gem::Version
29
- hash: 5
27
+ hash: 27
30
28
  segments:
31
29
  - 2
32
- - 3
33
- version: "2.3"
30
+ - 12
31
+ version: "2.12"
34
32
  type: :development
33
+ name: assert
35
34
  version_requirements: *id001
35
+ prerelease: false
36
36
  description: A UI Toolkit
37
37
  email:
38
38
  - kelly@kellyredding.com
@@ -49,11 +49,50 @@ files:
49
49
  - LICENSE.txt
50
50
  - README.md
51
51
  - Rakefile
52
+ - assets/css/romo/_mixins.scss
53
+ - assets/css/romo/_vars.scss
54
+ - assets/css/romo/base.scss
55
+ - assets/css/romo/buttons.scss
56
+ - assets/css/romo/datepicker.scss
57
+ - assets/css/romo/dropdown.scss
58
+ - assets/css/romo/forms.scss
59
+ - assets/css/romo/grid.scss
60
+ - assets/css/romo/grid_table.scss
61
+ - assets/css/romo/labels.scss
62
+ - assets/css/romo/lists.scss
63
+ - assets/css/romo/modal.scss
64
+ - assets/css/romo/normalize.scss
65
+ - assets/css/romo/select.scss
66
+ - assets/css/romo/sortable.scss
67
+ - assets/css/romo/table.scss
68
+ - assets/css/romo/tabs.scss
69
+ - assets/css/romo/tooltip.scss
70
+ - assets/css/romo/z_index.scss
71
+ - assets/js/romo/base.js
72
+ - assets/js/romo/datepicker.js
73
+ - assets/js/romo/dropdown.js
74
+ - assets/js/romo/dropdown_form.js
75
+ - assets/js/romo/form.js
76
+ - assets/js/romo/indicator.js
77
+ - assets/js/romo/inline.js
78
+ - assets/js/romo/inline_form.js
79
+ - assets/js/romo/invoke.js
80
+ - assets/js/romo/modal.js
81
+ - assets/js/romo/modal_form.js
82
+ - assets/js/romo/select.js
83
+ - assets/js/romo/select_dropdown.js
84
+ - assets/js/romo/sortable.js
85
+ - assets/js/romo/tooltip.js
52
86
  - lib/romo.rb
87
+ - lib/romo/dassets.rb
53
88
  - lib/romo/version.rb
54
89
  - log/.gitkeep
55
90
  - romo.gemspec
56
91
  - test/helper.rb
92
+ - test/support/.gitkeep
93
+ - test/system/.gitkeep
94
+ - test/unit/dassets_tests.rb
95
+ - test/unit/romo_tests.rb
57
96
  - tmp/.gitkeep
58
97
  homepage: http://github.com/redding/romo
59
98
  licenses:
@@ -84,9 +123,13 @@ required_rubygems_version: !ruby/object:Gem::Requirement
84
123
  requirements: []
85
124
 
86
125
  rubyforge_project:
87
- rubygems_version: 1.8.24
126
+ rubygems_version: 1.8.25
88
127
  signing_key:
89
128
  specification_version: 3
90
129
  summary: A UI Toolkit
91
130
  test_files:
92
131
  - test/helper.rb
132
+ - test/support/.gitkeep
133
+ - test/system/.gitkeep
134
+ - test/unit/dassets_tests.rb
135
+ - test/unit/romo_tests.rb