RubyApp 0.0.55 → 0.0.56

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.
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- RubyApp (0.0.55)
4
+ RubyApp (0.0.56)
5
5
  BlueCloth
6
6
  chronic
7
7
  chronic_duration
@@ -31,7 +31,7 @@ GEM
31
31
  rack-test (>= 0.5.4)
32
32
  selenium-webdriver (~> 2.0)
33
33
  xpath (~> 0.1.4)
34
- childprocess (0.2.4)
34
+ childprocess (0.2.5)
35
35
  ffi (~> 1.0.6)
36
36
  chronic (0.6.6)
37
37
  chronic_duration (0.9.6)
@@ -47,7 +47,7 @@ GEM
47
47
  ffi (1.0.11)
48
48
  fileutils (0.7)
49
49
  rmagick (>= 2.13.1)
50
- gherkin (2.7.1)
50
+ gherkin (2.7.2)
51
51
  json (>= 1.4.6)
52
52
  haml (3.1.4)
53
53
  json (1.6.4)
@@ -63,20 +63,20 @@ GEM
63
63
  rack (>= 1.0)
64
64
  rake (0.9.2.2)
65
65
  rmagick (2.13.1)
66
- rspec (2.7.0)
67
- rspec-core (~> 2.7.0)
68
- rspec-expectations (~> 2.7.0)
69
- rspec-mocks (~> 2.7.0)
70
- rspec-core (2.7.1)
71
- rspec-expectations (2.7.0)
66
+ rspec (2.8.0)
67
+ rspec-core (~> 2.8.0)
68
+ rspec-expectations (~> 2.8.0)
69
+ rspec-mocks (~> 2.8.0)
70
+ rspec-core (2.8.0)
71
+ rspec-expectations (2.8.0)
72
72
  diff-lcs (~> 1.1.2)
73
- rspec-mocks (2.7.0)
73
+ rspec-mocks (2.8.0)
74
74
  ruby-event (1.0.0)
75
75
  ruby-openid (2.1.8)
76
76
  rubyzip (0.9.5)
77
77
  sass (3.1.12)
78
- selenium-webdriver (2.15.0)
79
- childprocess (>= 0.2.1)
78
+ selenium-webdriver (2.16.0)
79
+ childprocess (>= 0.2.5)
80
80
  ffi (~> 1.0.9)
81
81
  multi_json (~> 1.0.4)
82
82
  rubyzip
@@ -4,10 +4,10 @@ Feature: Input elements
4
4
  Given I go to the test pages
5
5
  When I click "InputTestPage"
6
6
  Then I should see "Input"
7
- And I fill in the "Input" field with "value" and I press enter
7
+ And I fill in the "Input" field with "value" and I change focus
8
8
  Then I should see "You input 'value'."
9
9
  When I click "Close"
10
- And I fill in the "Input" field with "" and I press enter
10
+ And I fill in the "Input" field with "" and I change focus
11
11
  Then I should see "You input '(nil)'."
12
12
  Then I click "Close"
13
13
  Then I quit
@@ -16,8 +16,32 @@ Feature: Input elements
16
16
  Given I go to the test pages
17
17
  When I click "InputTestPage"
18
18
  Then I should see "DurationInput"
19
- When I fill in the "DurationInput" field with "2h 3m" and I press enter
19
+ When I fill in the "DurationInput" field with "2h 3m" and I change focus
20
20
  Then I should see "You input '7,380'."
21
21
  When I click "Close"
22
22
  Then the "DurationInput" field should contain "2 hrs 3 mins"
23
23
  Then I quit
24
+
25
+ Scenario: Render a multiline input element and process its event
26
+ Given I go to the test pages
27
+ When I click "InputTestPage"
28
+ Then I should see "MultilineInput"
29
+ And I fill in the "MultilineInput" field with "value" and I change focus
30
+ Then I should see "You input 'value'."
31
+ When I click "Close"
32
+ And I fill in the "MultilineInput" field with "" and I change focus
33
+ Then I should see "You input '(nil)'."
34
+ Then I click "Close"
35
+ Then I quit
36
+
37
+ Scenario: Render a email input element and process its event
38
+ Given I go to the test pages
39
+ When I click "InputTestPage"
40
+ Then I should see "EmailInput"
41
+ And I fill in the "EmailInput" field with "value" and I change focus
42
+ Then I should see "You input 'value'."
43
+ When I click "Close"
44
+ And I fill in the "EmailInput" field with "" and I change focus
45
+ Then I should see "You input '(nil)'."
46
+ Then I click "Close"
47
+ Then I quit
@@ -13,7 +13,7 @@ Feature: A page
13
13
  Given I go to the test pages
14
14
  When I click "_TestPage"
15
15
  Then I should see "Rendered"
16
- When I fill in the "Enter a new cookie value" field with "value" and I press enter
16
+ When I fill in the "Enter a new cookie value" field with "value" and I change focus
17
17
  Then I should see "The cookie value is 'value'."
18
18
  Then I click "Close"
19
19
  Then I quit
@@ -19,10 +19,10 @@ When /^I click "([^"]*)"$/ do |text|
19
19
  #sleep 1
20
20
  end
21
21
 
22
- When /^I fill in the "([^"]*)" field with "([^"]*)"( and I press enter)?$/ do |field, value, enter|
22
+ When /^I fill in the "([^"]*)" field with "([^"]*)"( and I change focus)?$/ do |field, value, change_focus|
23
23
  fill_in(field, :with => value)
24
- if enter
25
- find_field(field).native.send_key(:enter)
24
+ if change_focus
25
+ find('body').click
26
26
  #sleep 1
27
27
  end
28
28
  end
@@ -9,7 +9,6 @@ module RubyApp
9
9
 
10
10
  def initialize
11
11
  super
12
- attributes.merge!(:type => :button)
13
12
  end
14
13
 
15
14
  end
@@ -2,7 +2,7 @@
2
2
  :plain
3
3
  // #{__FILE__}
4
4
  $(document).ready(function() {
5
- $('input[type="text"]').live('change', function(event) {
5
+ $('input').live('change', function(event) {
6
6
  event.preventDefault();
7
7
  RubyApp.queueEvent({_class:'RubyApp::Elements::Input::ChangedEvent', source_id:$(this).attr('id'), value:$(this).val()}, true);
8
8
  });
@@ -0,0 +1,3 @@
1
+ /
2
+ #{__FILE__}
3
+ %input{attributes.merge(:type => :email, :value => self.value)}
@@ -0,0 +1,24 @@
1
+ module RubyApp
2
+
3
+ module Elements
4
+
5
+ module Inputs
6
+ require 'ruby_app/elements/input'
7
+
8
+ class EmailInput < RubyApp::Elements::Input
9
+
10
+ template_path(:all, File.dirname(__FILE__))
11
+
12
+ exclude_parent_template(:html)
13
+
14
+ def initialize
15
+ super
16
+ end
17
+
18
+ end
19
+
20
+ end
21
+
22
+ end
23
+
24
+ end
@@ -0,0 +1,4 @@
1
+ /
2
+ #{__FILE__}
3
+ %textarea{attributes}
4
+ = self.value
@@ -0,0 +1,10 @@
1
+ - self.rendered?(__FILE__) do
2
+ :plain
3
+ // #{__FILE__}
4
+ $(document).ready(function() {
5
+ $('textarea').live('change', function(event) {
6
+ event.preventDefault();
7
+ RubyApp.queueEvent({_class:'RubyApp::Elements::Inputs::MultilineInput::ChangedEvent', source_id:$(this).attr('id'), value:$(this).val()}, true);
8
+ });
9
+ });
10
+ = yield
@@ -0,0 +1,24 @@
1
+ module RubyApp
2
+
3
+ module Elements
4
+
5
+ module Inputs
6
+ require 'ruby_app/elements/input'
7
+
8
+ class MultilineInput < RubyApp::Elements::Input
9
+
10
+ template_path(:all, File.dirname(__FILE__))
11
+
12
+ exclude_parent_template(:html, :js)
13
+
14
+ def initialize
15
+ super
16
+ end
17
+
18
+ end
19
+
20
+ end
21
+
22
+ end
23
+
24
+ end
@@ -1,5 +1,6 @@
1
1
  = RubyApp::Elements::Dialogs::MessageDialog.render(:css)
2
2
  = RubyApp::Elements::Input.render(:css)
3
3
  = RubyApp::Elements::Inputs::DurationInput.render(:css)
4
+ = RubyApp::Elements::Inputs::MultilineInput.render(:css)
4
5
  = RubyApp::Elements::Markdown.render(:css)
5
6
  = yield
@@ -10,3 +10,11 @@
10
10
  %label{:for => @duration_input.element_id}
11
11
  = self.translate.label.duration_input
12
12
  = @duration_input.render(:html)
13
+ %br
14
+ %label{:for => @multiline_input.element_id}
15
+ = self.translate.label.multiline_input
16
+ = @multiline_input.render(:html)
17
+ %br
18
+ %label{:for => @email_input.element_id}
19
+ = self.translate.label.email_input
20
+ = @email_input.render(:html)
@@ -1,5 +1,6 @@
1
1
  = RubyApp::Elements::Dialogs::MessageDialog.render(:js)
2
2
  = RubyApp::Elements::Input.render(:js)
3
3
  = RubyApp::Elements::Inputs::DurationInput.render(:js)
4
+ = RubyApp::Elements::Inputs::MultilineInput.render(:js)
4
5
  = RubyApp::Elements::Markdown.render(:js)
5
6
  = yield
@@ -9,6 +9,8 @@ module RubyApp
9
9
  require 'ruby_app/elements/markdown'
10
10
  require 'ruby_app/elements/input'
11
11
  require 'ruby_app/elements/inputs/duration_input'
12
+ require 'ruby_app/elements/inputs/email_input'
13
+ require 'ruby_app/elements/inputs/multiline_input'
12
14
  require 'ruby_app/elements/pages/blank_page'
13
15
  require 'ruby_app/session'
14
16
 
@@ -33,6 +35,18 @@ module RubyApp
33
35
  self.translate.message_dialog.message.message(@duration_input.duration || '(nil)')))
34
36
  end
35
37
 
38
+ @multiline_input = RubyApp::Elements::Inputs::MultilineInput.new
39
+ @multiline_input.changed do |element, event|
40
+ RubyApp::Session.show_dialog(event, RubyApp::Elements::Dialogs::MessageDialog.new(self.translate.message_dialog.message.title,
41
+ self.translate.message_dialog.message.message(@multiline_input.value || '(nil)')))
42
+ end
43
+
44
+ @email_input = RubyApp::Elements::Inputs::EmailInput.new
45
+ @email_input.changed do |element, event|
46
+ RubyApp::Session.show_dialog(event, RubyApp::Elements::Dialogs::MessageDialog.new(self.translate.message_dialog.message.title,
47
+ self.translate.message_dialog.message.message(@email_input.value || '(nil)')))
48
+ end
49
+
36
50
  end
37
51
 
38
52
  end
@@ -122,6 +122,8 @@ ruby_app:
122
122
  label:
123
123
  input: Input
124
124
  duration_input: DurationInput
125
+ email_input: EmailInput
126
+ multiline_input: MultilineInput
125
127
  message_dialog:
126
128
  message:
127
129
  title: Input Test
@@ -1,4 +1,4 @@
1
1
  module RubyApp
2
- VERSION = "0.0.55"
2
+ VERSION = "0.0.56"
3
3
  ROOT = File.expand_path(File.dirname(__FILE__))
4
4
  end
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: RubyApp
3
3
  version: !ruby/object:Gem::Version
4
- hash: 113
4
+ hash: 111
5
5
  prerelease:
6
6
  segments:
7
7
  - 0
8
8
  - 0
9
- - 55
10
- version: 0.0.55
9
+ - 56
10
+ version: 0.0.56
11
11
  platform: ruby
12
12
  authors:
13
13
  - Frank G. Ficnar
@@ -15,9 +15,11 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2012-01-05 00:00:00 Z
18
+ date: 2012-01-07 00:00:00 Z
19
19
  dependencies:
20
20
  - !ruby/object:Gem::Dependency
21
+ prerelease: false
22
+ name: BlueCloth
21
23
  version_requirements: &id001 !ruby/object:Gem::Requirement
22
24
  none: false
23
25
  requirements:
@@ -27,11 +29,11 @@ dependencies:
27
29
  segments:
28
30
  - 0
29
31
  version: "0"
30
- requirement: *id001
31
32
  type: :runtime
32
- prerelease: false
33
- name: BlueCloth
33
+ requirement: *id001
34
34
  - !ruby/object:Gem::Dependency
35
+ prerelease: false
36
+ name: chronic
35
37
  version_requirements: &id002 !ruby/object:Gem::Requirement
36
38
  none: false
37
39
  requirements:
@@ -41,11 +43,11 @@ dependencies:
41
43
  segments:
42
44
  - 0
43
45
  version: "0"
44
- requirement: *id002
45
46
  type: :runtime
46
- prerelease: false
47
- name: chronic
47
+ requirement: *id002
48
48
  - !ruby/object:Gem::Dependency
49
+ prerelease: false
50
+ name: chronic_duration
49
51
  version_requirements: &id003 !ruby/object:Gem::Requirement
50
52
  none: false
51
53
  requirements:
@@ -55,11 +57,11 @@ dependencies:
55
57
  segments:
56
58
  - 0
57
59
  version: "0"
58
- requirement: *id003
59
60
  type: :runtime
60
- prerelease: false
61
- name: chronic_duration
61
+ requirement: *id003
62
62
  - !ruby/object:Gem::Dependency
63
+ prerelease: false
64
+ name: facets
63
65
  version_requirements: &id004 !ruby/object:Gem::Requirement
64
66
  none: false
65
67
  requirements:
@@ -69,11 +71,11 @@ dependencies:
69
71
  segments:
70
72
  - 0
71
73
  version: "0"
72
- requirement: *id004
73
74
  type: :runtime
74
- prerelease: false
75
- name: facets
75
+ requirement: *id004
76
76
  - !ruby/object:Gem::Dependency
77
+ prerelease: false
78
+ name: fileutils
77
79
  version_requirements: &id005 !ruby/object:Gem::Requirement
78
80
  none: false
79
81
  requirements:
@@ -83,11 +85,11 @@ dependencies:
83
85
  segments:
84
86
  - 0
85
87
  version: "0"
86
- requirement: *id005
87
88
  type: :runtime
88
- prerelease: false
89
- name: fileutils
89
+ requirement: *id005
90
90
  - !ruby/object:Gem::Dependency
91
+ prerelease: false
92
+ name: haml
91
93
  version_requirements: &id006 !ruby/object:Gem::Requirement
92
94
  none: false
93
95
  requirements:
@@ -97,11 +99,11 @@ dependencies:
97
99
  segments:
98
100
  - 0
99
101
  version: "0"
100
- requirement: *id006
101
102
  type: :runtime
102
- prerelease: false
103
- name: haml
103
+ requirement: *id006
104
104
  - !ruby/object:Gem::Dependency
105
+ prerelease: false
106
+ name: json
105
107
  version_requirements: &id007 !ruby/object:Gem::Requirement
106
108
  none: false
107
109
  requirements:
@@ -111,11 +113,11 @@ dependencies:
111
113
  segments:
112
114
  - 0
113
115
  version: "0"
114
- requirement: *id007
115
116
  type: :runtime
116
- prerelease: false
117
- name: json
117
+ requirement: *id007
118
118
  - !ruby/object:Gem::Dependency
119
+ prerelease: false
120
+ name: mime-types
119
121
  version_requirements: &id008 !ruby/object:Gem::Requirement
120
122
  none: false
121
123
  requirements:
@@ -125,11 +127,11 @@ dependencies:
125
127
  segments:
126
128
  - 0
127
129
  version: "0"
128
- requirement: *id008
129
130
  type: :runtime
130
- prerelease: false
131
- name: mime-types
131
+ requirement: *id008
132
132
  - !ruby/object:Gem::Dependency
133
+ prerelease: false
134
+ name: r18n-core
133
135
  version_requirements: &id009 !ruby/object:Gem::Requirement
134
136
  none: false
135
137
  requirements:
@@ -139,11 +141,11 @@ dependencies:
139
141
  segments:
140
142
  - 0
141
143
  version: "0"
142
- requirement: *id009
143
144
  type: :runtime
144
- prerelease: false
145
- name: r18n-core
145
+ requirement: *id009
146
146
  - !ruby/object:Gem::Dependency
147
+ prerelease: false
148
+ name: rack
147
149
  version_requirements: &id010 !ruby/object:Gem::Requirement
148
150
  none: false
149
151
  requirements:
@@ -153,11 +155,11 @@ dependencies:
153
155
  segments:
154
156
  - 0
155
157
  version: "0"
156
- requirement: *id010
157
158
  type: :runtime
158
- prerelease: false
159
- name: rack
159
+ requirement: *id010
160
160
  - !ruby/object:Gem::Dependency
161
+ prerelease: false
162
+ name: ruby-event
161
163
  version_requirements: &id011 !ruby/object:Gem::Requirement
162
164
  none: false
163
165
  requirements:
@@ -167,11 +169,11 @@ dependencies:
167
169
  segments:
168
170
  - 0
169
171
  version: "0"
170
- requirement: *id011
171
172
  type: :runtime
172
- prerelease: false
173
- name: ruby-event
173
+ requirement: *id011
174
174
  - !ruby/object:Gem::Dependency
175
+ prerelease: false
176
+ name: ruby-openid
175
177
  version_requirements: &id012 !ruby/object:Gem::Requirement
176
178
  none: false
177
179
  requirements:
@@ -181,11 +183,11 @@ dependencies:
181
183
  segments:
182
184
  - 0
183
185
  version: "0"
184
- requirement: *id012
185
186
  type: :runtime
186
- prerelease: false
187
- name: ruby-openid
187
+ requirement: *id012
188
188
  - !ruby/object:Gem::Dependency
189
+ prerelease: false
190
+ name: sass
189
191
  version_requirements: &id013 !ruby/object:Gem::Requirement
190
192
  none: false
191
193
  requirements:
@@ -195,11 +197,11 @@ dependencies:
195
197
  segments:
196
198
  - 0
197
199
  version: "0"
198
- requirement: *id013
199
200
  type: :runtime
200
- prerelease: false
201
- name: sass
201
+ requirement: *id013
202
202
  - !ruby/object:Gem::Dependency
203
+ prerelease: false
204
+ name: term-ansicolor
203
205
  version_requirements: &id014 !ruby/object:Gem::Requirement
204
206
  none: false
205
207
  requirements:
@@ -209,11 +211,11 @@ dependencies:
209
211
  segments:
210
212
  - 0
211
213
  version: "0"
212
- requirement: *id014
213
214
  type: :runtime
214
- prerelease: false
215
- name: term-ansicolor
215
+ requirement: *id014
216
216
  - !ruby/object:Gem::Dependency
217
+ prerelease: false
218
+ name: yajl-ruby
217
219
  version_requirements: &id015 !ruby/object:Gem::Requirement
218
220
  none: false
219
221
  requirements:
@@ -223,11 +225,11 @@ dependencies:
223
225
  segments:
224
226
  - 0
225
227
  version: "0"
226
- requirement: *id015
227
228
  type: :runtime
228
- prerelease: false
229
- name: yajl-ruby
229
+ requirement: *id015
230
230
  - !ruby/object:Gem::Dependency
231
+ prerelease: false
232
+ name: capybara
231
233
  version_requirements: &id016 !ruby/object:Gem::Requirement
232
234
  none: false
233
235
  requirements:
@@ -237,11 +239,11 @@ dependencies:
237
239
  segments:
238
240
  - 0
239
241
  version: "0"
240
- requirement: *id016
241
242
  type: :development
242
- prerelease: false
243
- name: capybara
243
+ requirement: *id016
244
244
  - !ruby/object:Gem::Dependency
245
+ prerelease: false
246
+ name: cucumber
245
247
  version_requirements: &id017 !ruby/object:Gem::Requirement
246
248
  none: false
247
249
  requirements:
@@ -251,11 +253,11 @@ dependencies:
251
253
  segments:
252
254
  - 0
253
255
  version: "0"
254
- requirement: *id017
255
256
  type: :development
256
- prerelease: false
257
- name: cucumber
257
+ requirement: *id017
258
258
  - !ruby/object:Gem::Dependency
259
+ prerelease: false
260
+ name: launchy
259
261
  version_requirements: &id018 !ruby/object:Gem::Requirement
260
262
  none: false
261
263
  requirements:
@@ -265,11 +267,11 @@ dependencies:
265
267
  segments:
266
268
  - 0
267
269
  version: "0"
268
- requirement: *id018
269
270
  type: :development
270
- prerelease: false
271
- name: launchy
271
+ requirement: *id018
272
272
  - !ruby/object:Gem::Dependency
273
+ prerelease: false
274
+ name: rake
273
275
  version_requirements: &id019 !ruby/object:Gem::Requirement
274
276
  none: false
275
277
  requirements:
@@ -279,11 +281,11 @@ dependencies:
279
281
  segments:
280
282
  - 0
281
283
  version: "0"
282
- requirement: *id019
283
284
  type: :development
284
- prerelease: false
285
- name: rake
285
+ requirement: *id019
286
286
  - !ruby/object:Gem::Dependency
287
+ prerelease: false
288
+ name: rspec
287
289
  version_requirements: &id020 !ruby/object:Gem::Requirement
288
290
  none: false
289
291
  requirements:
@@ -293,11 +295,11 @@ dependencies:
293
295
  segments:
294
296
  - 0
295
297
  version: "0"
296
- requirement: *id020
297
298
  type: :development
298
- prerelease: false
299
- name: rspec
299
+ requirement: *id020
300
300
  - !ruby/object:Gem::Dependency
301
+ prerelease: false
302
+ name: rspec-mocks
301
303
  version_requirements: &id021 !ruby/object:Gem::Requirement
302
304
  none: false
303
305
  requirements:
@@ -307,11 +309,11 @@ dependencies:
307
309
  segments:
308
310
  - 0
309
311
  version: "0"
310
- requirement: *id021
311
312
  type: :development
312
- prerelease: false
313
- name: rspec-mocks
313
+ requirement: *id021
314
314
  - !ruby/object:Gem::Dependency
315
+ prerelease: false
316
+ name: ya2yaml
315
317
  version_requirements: &id022 !ruby/object:Gem::Requirement
316
318
  none: false
317
319
  requirements:
@@ -321,10 +323,8 @@ dependencies:
321
323
  segments:
322
324
  - 0
323
325
  version: "0"
324
- requirement: *id022
325
326
  type: :development
326
- prerelease: false
327
- name: ya2yaml
327
+ requirement: *id022
328
328
  description: A web application framework in Ruby
329
329
  email:
330
330
  - frank.ficnar@gmail.com
@@ -406,6 +406,11 @@ files:
406
406
  - lib/ruby_app/elements/input.js.haml
407
407
  - lib/ruby_app/elements/input.rb
408
408
  - lib/ruby_app/elements/inputs/duration_input.rb
409
+ - lib/ruby_app/elements/inputs/email_input.html.haml
410
+ - lib/ruby_app/elements/inputs/email_input.rb
411
+ - lib/ruby_app/elements/inputs/multiline_input.html.haml
412
+ - lib/ruby_app/elements/inputs/multiline_input.js.haml
413
+ - lib/ruby_app/elements/inputs/multiline_input.rb
409
414
  - lib/ruby_app/elements/link.html.haml
410
415
  - lib/ruby_app/elements/link.rb
411
416
  - lib/ruby_app/elements/list.html.haml
@@ -608,7 +613,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
608
613
  requirements: []
609
614
 
610
615
  rubyforge_project:
611
- rubygems_version: 1.8.10
616
+ rubygems_version: 1.8.13
612
617
  signing_key:
613
618
  specification_version: 3
614
619
  summary: A web application framework in Ruby