RubyApp 0.6.39 → 0.6.40

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.
Files changed (27) hide show
  1. data/lib/ruby_app/element.rb +43 -3
  2. data/lib/ruby_app/elements/mobile/default/features/lists_page.css.haml +0 -2
  3. data/lib/ruby_app/elements/mobile/default/features/lists_page.js.haml +0 -2
  4. data/lib/ruby_app/elements/mobile/default/features/lists_page.rb +16 -5
  5. data/lib/ruby_app/elements/mobile/document.html.haml +16 -13
  6. data/lib/ruby_app/elements/mobile/document.js.haml +17 -0
  7. data/lib/ruby_app/elements/mobile/input.html.haml +1 -1
  8. data/lib/ruby_app/elements/mobile/input.js.haml +2 -1
  9. data/lib/ruby_app/elements/mobile/input.rb +1 -1
  10. data/lib/ruby_app/elements/mobile/inputs/date_input.rb +1 -1
  11. data/lib/ruby_app/elements/mobile/inputs/email_input.rb +1 -1
  12. data/lib/ruby_app/elements/mobile/inputs/search_input.rb +27 -0
  13. data/lib/ruby_app/elements/mobile/inputs/toggle_input.html.haml +2 -2
  14. data/lib/ruby_app/elements/mobile/inputs/toggle_input.rb +1 -1
  15. data/lib/ruby_app/elements/mobile/list.css.haml +3 -9
  16. data/lib/ruby_app/elements/mobile/list.html.haml +1 -1
  17. data/lib/ruby_app/elements/mobile/list.js.haml +14 -6
  18. data/lib/ruby_app/elements/mobile/list.rb +26 -0
  19. data/lib/ruby_app/elements/mobile/list_item.js.haml +9 -0
  20. data/lib/ruby_app/elements/mobile/list_split_item.css.haml +9 -0
  21. data/lib/ruby_app/elements/mobile/list_split_item.html.haml +1 -1
  22. data/lib/ruby_app/elements/mobile/list_split_item.js.haml +13 -0
  23. data/lib/ruby_app/scripts/elements/lists.rb +17 -7
  24. data/lib/ruby_app/version.rb +1 -1
  25. data/ruby_app.sublime-project +8 -0
  26. data/ruby_app.sublime-workspace +225 -0
  27. metadata +10 -4
@@ -119,6 +119,11 @@ module RubyApp
119
119
  self.execute("RubyApp.updateValue(#{_selector.to_json}, #{value.to_json}, #{change.to_json});")
120
120
  end
121
121
 
122
+ def update_search(text, value, change = true)
123
+ _selector = ".ui-page-active form.ui-listview-filter input[placeholder='#{text}']"
124
+ self.execute("RubyApp.updateValue(#{_selector.to_json}, #{value.to_json}, #{change.to_json});")
125
+ end
126
+
122
127
  def update_input(text, value, change = true)
123
128
  self.update_value_for("label:contains('#{text}')", value, change)
124
129
  end
@@ -179,9 +184,24 @@ module RubyApp
179
184
  self.execute("RubyApp.assertNotExists(#{_selector.to_json});")
180
185
  end
181
186
 
182
- def assert_exists_input(text, value = nil)
183
- self.assert_exists_selector_for("label:contains('#{text}')") unless value
184
- self.assert_exists_selector_value_for("label:contains('#{text}')", value) if value
187
+ def assert_exists_selector_value(selector)
188
+ _selector = ".ui-page-active #{selector}"
189
+ self.execute("RubyApp.assertExistsValue(#{_selector.to_json}, #{value.to_json});")
190
+ end
191
+
192
+ def assert_not_exists_selector_value(selector)
193
+ _selector = ".ui-page-active #{selector}"
194
+ self.execute("RubyApp.assertNotExistsValue(#{_selector.to_json}, #{value.to_json});")
195
+ end
196
+
197
+ def assert_exists_search(text, value = nil)
198
+ self.assert_exists_selector("form.ui-listview-filter input[placeholder='#{text}']") unless value
199
+ self.assert_exists_selector_value("form.ui-listview-filter input[placeholder='#{text}']", value) if value
200
+ end
201
+
202
+ def assert_not_exists_search(text, value = nil)
203
+ self.assert_not_exists_selector("form.ui-listview-filter input[placeholder='#{text}']") unless value
204
+ self.assert_not_exists_selector_value("form.ui-listview-filter input[placeholder='#{text}']", value) if value
185
205
  end
186
206
 
187
207
  def assert_exists_selector_for(selector)
@@ -189,11 +209,31 @@ module RubyApp
189
209
  self.execute("RubyApp.assertExistsFor(#{_selector.to_json});")
190
210
  end
191
211
 
212
+ def assert_not_exists_selector_for(selector)
213
+ _selector = ".ui-page-active #{selector}"
214
+ self.execute("RubyApp.assertNotExistsFor(#{_selector.to_json});")
215
+ end
216
+
192
217
  def assert_exists_selector_value_for(selector, value)
193
218
  _selector = ".ui-page-active #{selector}"
194
219
  self.execute("RubyApp.assertExistsValueFor(#{_selector.to_json}, #{value.to_json});")
195
220
  end
196
221
 
222
+ def assert_not_exists_selector_value_for(selector, value)
223
+ _selector = ".ui-page-active #{selector}"
224
+ self.execute("RubyApp.assertNotExistsValueFor(#{_selector.to_json}, #{value.to_json});")
225
+ end
226
+
227
+ def assert_exists_input(text, value = nil)
228
+ self.assert_exists_selector_for("label:contains('#{text}')") unless value
229
+ self.assert_exists_selector_value_for("label:contains('#{text}')", value) if value
230
+ end
231
+
232
+ def assert_not_exists_input(text, value = nil)
233
+ self.assert_not_exists_selector_for("label:contains('#{text}')") unless value
234
+ self.assert_not_exists_selector_value_for("label:contains('#{text}')", value) if value
235
+ end
236
+
197
237
  def assert(name, expression = nil)
198
238
  self.execute("RubyApp.assert(#{name.to_json}, #{(expression ? expression : yield).to_json});")
199
239
  end
@@ -1,6 +1,4 @@
1
1
  = RubyApp::Elements::Mobile::Dialogs::AcknowledgementDialog.render(:css)
2
2
  = RubyApp::Elements::Mobile::List.render(:css)
3
- = RubyApp::Elements::Mobile::List::ListDivider.render(:css)
4
- = RubyApp::Elements::Mobile::List::ListSplitItem.render(:css)
5
3
  = RubyApp::Elements::Mobile::Navigation::BackButton.render(:css)
6
4
  = yield
@@ -1,6 +1,4 @@
1
1
  = RubyApp::Elements::Mobile::Dialogs::AcknowledgementDialog.render(:js)
2
2
  = RubyApp::Elements::Mobile::List.render(:js)
3
- = RubyApp::Elements::Mobile::List::ListDivider.render(:js)
4
- = RubyApp::Elements::Mobile::List::ListSplitItem.render(:js)
5
3
  = RubyApp::Elements::Mobile::Navigation::BackButton.render(:js)
6
4
  = yield
@@ -22,18 +22,29 @@ module RubyApp
22
22
  @back_button = RubyApp::Elements::Mobile::Navigation::BackButton.new
23
23
 
24
24
  @list = RubyApp::Elements::Mobile::List.new
25
- @list.attributes.merge!('data-inset' => 'true')
25
+ @list.attributes.merge!('data-filter' => 'true',
26
+ 'data-filter-placeholder' => 'search')
27
+ @list.search_value = 'default'
26
28
  @list.items += [ RubyApp::Elements::Mobile::List::ListDivider.new('List') ]
27
29
  @list.items += [ 'Item 01',
28
30
  'Item 02',
29
- 'Item 03',
30
- 'Item 04',
31
- 'Item 05' ].collect { |item| RubyApp::Elements::Mobile::List::ListSplitItem.new(item) }
31
+ 'Item 03' ].collect { |item| RubyApp::Elements::Mobile::List::ListItem.new(item) }
32
32
 
33
- item = RubyApp::Elements::Mobile::List::ListSplitItem.new('Item 06')
33
+ item = RubyApp::Elements::Mobile::List::ListItem.new('Item 04')
34
34
  item.attributes.merge!('disabled' => true)
35
35
  @list.items += [ item ]
36
36
 
37
+ @list.items += [ 'Item 05',
38
+ 'Item 06',
39
+ 'Item 07' ].collect { |item| RubyApp::Elements::Mobile::List::ListSplitItem.new(item) }
40
+
41
+ item = RubyApp::Elements::Mobile::List::ListSplitItem.new('Item 08')
42
+ item.attributes.merge!('disabled' => true)
43
+ @list.items += [ item ]
44
+
45
+ @list.searched do |element, event|
46
+ RubyApp::Elements::Mobile::Dialog.show(event, RubyApp::Elements::Mobile::Dialogs::AcknowledgementDialog.new('List', "You input #{event.value}."))
47
+ end
37
48
  @list.item_clicked do |element, event|
38
49
  RubyApp::Elements::Mobile::Dialog.show(event, RubyApp::Elements::Mobile::Dialogs::AcknowledgementDialog.new('List', "You clicked the item #{event.item.item}."))
39
50
  end
@@ -4,23 +4,26 @@
4
4
  %html{self.attributes}
5
5
  %head
6
6
  - self.metadata.each do |name, value|
7
- %meta{:name => name,
8
- :content => value}
7
+ %meta{'name' => name,
8
+ 'content' => value}
9
9
  - self.links.each do |name, value|
10
- %link{:rel => name,
11
- :href => value}
10
+ %link{'rel' => name,
11
+ 'href' => value}
12
12
  - self.stylesheets.each do |stylesheet|
13
- %link{:rel => 'stylesheet',
14
- :href => stylesheet}
15
- %link{:rel => 'stylesheet',
16
- :href => "/#{RubyApp::Language.locale.code}/document.css"}
13
+ %link{'rel' => 'stylesheet',
14
+ 'href' => stylesheet}
15
+ %link{'rel' => 'stylesheet',
16
+ 'href' => "/#{RubyApp::Language.locale.code}/document.css"}
17
17
  - self.scripts.each do |script|
18
- %script{:src => script}
19
- %script{:src => "/#{RubyApp::Language.locale.code}/document.js"}
18
+ %script{'src' => script}
19
+ %script{'src' => "/#{RubyApp::Language.locale.code}/document.js"}
20
20
 
21
- %meta{:name => :session, :content => RubyApp::Session.session_id}
22
- %meta{:name => :locale, :content => RubyApp::Language.locale.code}
23
- %meta{:name => :error_message, :content => RubyApp::Elements::Mobile::Document.translate.error_message}
21
+ %meta{'name' => 'session',
22
+ 'content' => RubyApp::Session.session_id}
23
+ %meta{'name' => 'locale',
24
+ 'content' => RubyApp::Language.locale.code}
25
+ %meta{'name' => 'error_message',
26
+ 'content' => RubyApp::Elements::Mobile::Document.translate.error_message}
24
27
 
25
28
  %body
26
29
  - self.pages.reverse.each do |page|
@@ -183,15 +183,32 @@
183
183
  this.assertNotExists = function(selector) {
184
184
  RubyApp.assert('selector=' + selector, $(selector).length <= 0);
185
185
  },
186
+ this.assertExistsValue = function(selector, value) {
187
+ var _value = $(selector).val();
188
+ RubyApp.assert('selector=' + selector + ', value=' + value, _value == value);
189
+ },
190
+ this.assertNotExistsValue = function(selector, value) {
191
+ var _value = $(selector).val();
192
+ RubyApp.assert('selector=' + selector + ', value=' + value, _value != value);
193
+ },
186
194
  this.assertExistsFor = function(selector) {
187
195
  var _for = $(selector).attr('for');
188
196
  RubyApp.assert('selector=' + selector + ', for=' + _for, $('#' + _for).length > 0);
189
197
  },
198
+ this.assertNotExistsFor = function(selector) {
199
+ var _for = $(selector).attr('for');
200
+ RubyApp.assert('selector=' + selector + ', for=' + _for, $('#' + _for).length <= 0);
201
+ },
190
202
  this.assertExistsValueFor = function(selector, value) {
191
203
  var _for = $(selector).attr('for');
192
204
  var _value = $('#' + _for).val();
193
205
  RubyApp.assert('selector=' + selector + ', for=' + _for + ', value=' + value, _value == value);
194
206
  },
207
+ this.assertNotExistsValueFor = function(selector, value) {
208
+ var _for = $(selector).attr('for');
209
+ var _value = $('#' + _for).val();
210
+ RubyApp.assert('selector=' + selector + ', for=' + _for + ', value=' + value, _value != value);
211
+ },
195
212
  this.assert = function(name, value) {
196
213
  RubyApp.sendEvent({_class:'RubyApp::Element::AssertedEvent', source:$('html').attr('id'), name:name, value:eval(value)});
197
214
  },
@@ -1,3 +1,3 @@
1
1
  /
2
2
  #{__FILE__}
3
- %input{self.attributes.merge(:value => self.value)}
3
+ %input{self.attributes.merge('value' => self.value)}
@@ -3,7 +3,8 @@
3
3
  $(document).ready( function() {
4
4
  $(document).on('change', 'input', function(event) {
5
5
  event.preventDefault();
6
- RubyApp.sendEvent({_class:'RubyApp::Elements::Mobile::Input::ChangedEvent', source:$(this).attr('id'), value:$(this).val()});
6
+ if ($(this).attr('id'))
7
+ RubyApp.sendEvent({_class:'RubyApp::Elements::Mobile::Input::ChangedEvent', source:$(this).attr('id'), value:$(this).val()});
7
8
  });
8
9
  });
9
10
  = yield
@@ -36,7 +36,7 @@ module RubyApp
36
36
 
37
37
  def initialize
38
38
  super
39
- self.attributes.merge!(:type => :text)
39
+ self.attributes.merge!('type' => 'text')
40
40
 
41
41
  @value = nil
42
42
 
@@ -13,7 +13,7 @@ module RubyApp
13
13
 
14
14
  def initialize
15
15
  super
16
- self.attributes.merge!(:type => :date)
16
+ self.attributes.merge!('type' => 'date')
17
17
  end
18
18
 
19
19
  end
@@ -13,7 +13,7 @@ module RubyApp
13
13
 
14
14
  def initialize
15
15
  super
16
- self.attributes.merge!(:type => :email)
16
+ self.attributes.merge!('type' => 'email')
17
17
  end
18
18
 
19
19
  end
@@ -0,0 +1,27 @@
1
+ module RubyApp
2
+
3
+ module Elements
4
+
5
+ module Mobile
6
+
7
+ module Inputs
8
+ require 'ruby_app/elements/mobile/input'
9
+
10
+ class SearchInput < RubyApp::Elements::Mobile::Input
11
+
12
+ template_path(:all, File.dirname(__FILE__))
13
+
14
+ def initialize
15
+ super
16
+ self.attributes.merge!('type' => 'search')
17
+ end
18
+
19
+ end
20
+
21
+ end
22
+
23
+ end
24
+
25
+ end
26
+
27
+ end
@@ -1,7 +1,7 @@
1
1
  /
2
2
  #{__FILE__}
3
3
  %select{self.attributes}
4
- %option{:value => 'false', :selected => self.value == false}
4
+ %option{'value' => 'false', 'selected' => self.value == false}
5
5
  = yield(:off) || RubyApp::Elements::Mobile::Inputs::ToggleInput.translate._off
6
- %option{:value => 'true', :selected => self.value == true}
6
+ %option{'value' => 'true', 'selected' => self.value == true}
7
7
  = yield(:on) || RubyApp::Elements::Mobile::Inputs::ToggleInput.translate._on
@@ -24,7 +24,7 @@ module RubyApp
24
24
 
25
25
  def initialize
26
26
  super
27
- self.attributes.delete(:type)
27
+ self.attributes.delete('type')
28
28
  self.attributes.merge!('data-role' => 'slider')
29
29
 
30
30
  @value = false
@@ -1,10 +1,4 @@
1
- :sass
2
- /* #{__FILE__}
3
- ul.list
4
- li.item
5
- a.link
6
- span.ui-btn-inner
7
- span.ui-btn.ui-btn-icon-notext.ui-btn-corner-all.ui-shadow
8
- margin-left: 14px
9
- margin-top: -14px
1
+ = RubyApp::Elements::Mobile::List::ListItem.render(:css)
2
+ = RubyApp::Elements::Mobile::List::ListDivider.render(:css)
3
+ = RubyApp::Elements::Mobile::List::ListSplitItem.render(:css)
10
4
  = yield
@@ -1,5 +1,5 @@
1
1
  /
2
2
  #{__FILE__}
3
- %ul.list{self.attributes}
3
+ %ul.list{self.attributes.merge('data-search-value' => self.search_value)}
4
4
  - self.items.each do |item|
5
5
  = item.render(:html)
@@ -1,13 +1,21 @@
1
1
  :plain
2
2
  // #{__FILE__}
3
- $(document).ready( function() {
4
- $(document).on('click', 'ul.list > li.item a.item', function(event) {
5
- event.preventDefault();
6
- RubyApp.sendEvent({_class:'RubyApp::Elements::Mobile::List::ItemClickedEvent', source:$(this).parents('ul.list').attr('id'), item:$(this).parents('li.item').attr('id')});
3
+ $(document).on('pageinit', function() {
4
+ $('ul.list').listview('option', 'filterCallback', function() {});
5
+ $('form.ui-listview-filter input').each( function() {
6
+ $(this).val($(this).parents('form.ui-listview-filter').next('ul.list').attr('data-search-value'));
7
7
  });
8
- $(document).on('click', 'ul.list > li.item a.link', function(event) {
8
+ });
9
+ $(document).ready( function() {
10
+ $(document).on('change', 'form.ui-listview-filter input', function(event) {
9
11
  event.preventDefault();
10
- RubyApp.sendEvent({_class:'RubyApp::Elements::Mobile::List::LinkClickedEvent', source:$(this).parents('ul.list').attr('id'), item:$(this).parents('li.item').attr('id')});
12
+ var list = $(this).parents('form.ui-listview-filter').next('ul.list');
13
+ var value = $(this).val();
14
+ list.attr('data-search-value', value);
15
+ RubyApp.sendEvent({_class:'RubyApp::Elements::Mobile::List::SearchedEvent', source:list.attr('id'), value:value});
11
16
  });
12
17
  });
18
+ = RubyApp::Elements::Mobile::List::ListItem.render(:js)
19
+ = RubyApp::Elements::Mobile::List::ListDivider.render(:js)
20
+ = RubyApp::Elements::Mobile::List::ListSplitItem.render(:js)
13
21
  = yield
@@ -88,18 +88,38 @@ module RubyApp
88
88
 
89
89
  end
90
90
 
91
+ class SearchedEvent < RubyApp::Element::Event
92
+
93
+ attr_reader :value
94
+
95
+ def initialize(data)
96
+ super(data)
97
+ @value = data['value'].strip
98
+ @value = @value.empty? ? nil : @value
99
+ end
100
+
101
+ def to_hash
102
+ super.merge(:value => @value)
103
+ end
104
+
105
+ end
106
+
91
107
  template_path(:all, File.dirname(__FILE__))
92
108
 
93
109
  attr_accessor :items
110
+ attr_accessor :search_value
94
111
 
95
112
  event :item_clicked
96
113
  event :link_clicked
97
114
 
115
+ event :searched
116
+
98
117
  def initialize
99
118
  super
100
119
  self.attributes.merge!('data-role' => 'listview')
101
120
 
102
121
  @items = []
122
+ @search_value = nil
103
123
 
104
124
  end
105
125
 
@@ -108,6 +128,7 @@ module RubyApp
108
128
  def on_event(event)
109
129
  on_item_clicked(event) if event.is_a?(RubyApp::Elements::Mobile::List::ItemClickedEvent)
110
130
  on_link_clicked(event) if event.is_a?(RubyApp::Elements::Mobile::List::LinkClickedEvent)
131
+ on_searched(event) if event.is_a?(RubyApp::Elements::Mobile::List::SearchedEvent)
111
132
  super(event)
112
133
  end
113
134
 
@@ -119,6 +140,11 @@ module RubyApp
119
140
  link_clicked(event)
120
141
  end
121
142
 
143
+ def on_searched(event)
144
+ @search_value = event.value
145
+ searched(event)
146
+ end
147
+
122
148
  end
123
149
 
124
150
  end
@@ -0,0 +1,9 @@
1
+ :plain
2
+ // #{__FILE__}
3
+ $(document).ready( function() {
4
+ $(document).on('click', 'li.item a.item', function(event) {
5
+ event.preventDefault();
6
+ RubyApp.sendEvent({_class:'RubyApp::Elements::Mobile::List::ItemClickedEvent', source:$(this).parents('ul.list').attr('id'), item:$(this).parents('li.item').attr('id')});
7
+ });
8
+ });
9
+ = yield
@@ -0,0 +1,9 @@
1
+ :sass
2
+ /* #{__FILE__}
3
+ li.split-item
4
+ a.link
5
+ span.ui-btn-inner
6
+ span.ui-btn.ui-btn-icon-notext.ui-btn-corner-all.ui-shadow
7
+ margin-left: 14px
8
+ margin-top: -14px
9
+ = yield
@@ -1,6 +1,6 @@
1
1
  /
2
2
  #{__FILE__}
3
- %li.item{self.attributes}
3
+ %li.split-item{self.attributes}
4
4
  - unless self.attributes['disabled']
5
5
  %a.item{:href => '#'}
6
6
  = yield(:item) || self.item
@@ -0,0 +1,13 @@
1
+ :plain
2
+ // #{__FILE__}
3
+ $(document).ready( function() {
4
+ $(document).on('click', 'li.split-item a.item', function(event) {
5
+ event.preventDefault();
6
+ RubyApp.sendEvent({_class:'RubyApp::Elements::Mobile::List::ItemClickedEvent', source:$(this).parents('ul.list').attr('id'), item:$(this).parents('li.split-item').attr('id')});
7
+ });
8
+ $(document).on('click', 'li.split-item a.link', function(event) {
9
+ event.preventDefault();
10
+ RubyApp.sendEvent({_class:'RubyApp::Elements::Mobile::List::LinkClickedEvent', source:$(this).parents('ul.list').attr('id'), item:$(this).parents('li.split-item').attr('id')});
11
+ });
12
+ });
13
+ = yield
@@ -3,23 +3,33 @@ load_script! 'common/features'
3
3
  add_step! (RubyApp::Element::Event) { |event| event.assert_exists_link('Lists') }
4
4
  add_step! (RubyApp::Element::AssertedEvent) { |event| event.click_link('Lists') }
5
5
 
6
+ add_step! (RubyApp::Elements::Mobile::Page::ShownEvent) { |event| event.assert_exists_search('search') }
7
+ add_step! (RubyApp::Element::AssertedEvent) { |event| event.update_search('search', 'value') }
8
+ add_step! (RubyApp::Elements::Mobile::Page::ShownEvent) { |event| event.assert_exists_text('You input value.') }
9
+ add_step! (RubyApp::Element::AssertedEvent) { |event| event.assert_exists_link('OK') }
10
+ add_step! (RubyApp::Element::AssertedEvent) { |event| event.click_link('OK') }
11
+
6
12
  add_step! (RubyApp::Elements::Mobile::Page::ShownEvent) { |event| event.assert_exists_link('Item 01') }
7
13
  add_step! (RubyApp::Element::AssertedEvent) { |event| event.click_list_item('Item 01') }
8
-
9
14
  add_step! (RubyApp::Elements::Mobile::Page::ShownEvent) { |event| event.assert_exists_text('You clicked the item Item 01.') }
10
15
  add_step! (RubyApp::Element::AssertedEvent) { |event| event.assert_exists_link('OK') }
11
16
  add_step! (RubyApp::Element::AssertedEvent) { |event| event.click_link('OK') }
12
17
 
13
- add_step! (RubyApp::Elements::Mobile::Page::ShownEvent) { |event| event.assert_exists_link('Item 01') }
14
- add_step! (RubyApp::Element::AssertedEvent) { |event| event.click_list_link('Item 01') }
18
+ add_step! (RubyApp::Elements::Mobile::Page::ShownEvent) { |event| event.assert_not_exists_link('Item 04') }
15
19
 
16
- add_step! (RubyApp::Elements::Mobile::Page::ShownEvent) { |event| event.assert_exists_text('You clicked the link Item 01.') }
20
+ add_step! (RubyApp::Element::AssertedEvent) { |event| event.assert_exists_link('Item 05') }
21
+ add_step! (RubyApp::Element::AssertedEvent) { |event| event.click_list_item('Item 05') }
22
+ add_step! (RubyApp::Elements::Mobile::Page::ShownEvent) { |event| event.assert_exists_text('You clicked the item Item 05.') }
23
+ add_step! (RubyApp::Element::AssertedEvent) { |event| event.assert_exists_link('OK') }
24
+ add_step! (RubyApp::Element::AssertedEvent) { |event| event.click_link('OK') }
25
+ add_step! (RubyApp::Elements::Mobile::Page::ShownEvent) { |event| event.assert_exists_link('Item 05') }
26
+ add_step! (RubyApp::Element::AssertedEvent) { |event| event.click_list_link('Item 05') }
27
+ add_step! (RubyApp::Elements::Mobile::Page::ShownEvent) { |event| event.assert_exists_text('You clicked the link Item 05.') }
17
28
  add_step! (RubyApp::Element::AssertedEvent) { |event| event.assert_exists_link('OK') }
18
29
  add_step! (RubyApp::Element::AssertedEvent) { |event| event.click_link('OK') }
19
30
 
20
- add_step! (RubyApp::Elements::Mobile::Page::ShownEvent) { |event| event.assert_not_exists_link('Item 06') }
21
- add_step! (RubyApp::Element::AssertedEvent) { |event| event.click_link('Back') }
31
+ add_step! (RubyApp::Elements::Mobile::Page::ShownEvent) { |event| event.assert_not_exists_link('Item 08') }
22
32
 
33
+ add_step! (RubyApp::Element::AssertedEvent) { |event| event.click_link('Back') }
23
34
  add_step! (RubyApp::Elements::Mobile::Page::ShownEvent) { |event| event.click_link('Back') }
24
-
25
35
  add_step! (RubyApp::Elements::Mobile::Page::ShownEvent) { |event| event.execute {} }
@@ -1,4 +1,4 @@
1
1
  module RubyApp
2
- VERSION = "0.6.39"
2
+ VERSION = "0.6.40"
3
3
  ROOT = File.expand_path(File.dirname(__FILE__))
4
4
  end
@@ -0,0 +1,8 @@
1
+ {
2
+ "folders":
3
+ [
4
+ {
5
+ "path": "/Users/fficnar/Dropbox/Projects/gems/ruby_app"
6
+ }
7
+ ]
8
+ }
@@ -0,0 +1,225 @@
1
+ {
2
+ "auto_complete":
3
+ {
4
+ "selected_items":
5
+ [
6
+ ]
7
+ },
8
+ "buffers":
9
+ [
10
+ ],
11
+ "build_system": "",
12
+ "command_palette":
13
+ {
14
+ "height": 360.0,
15
+ "selected_items":
16
+ [
17
+ ],
18
+ "width": 392.0
19
+ },
20
+ "console":
21
+ {
22
+ "height": 158.0
23
+ },
24
+ "distraction_free":
25
+ {
26
+ "menu_visible": true,
27
+ "show_minimap": false,
28
+ "show_open_files": false,
29
+ "show_tabs": false,
30
+ "side_bar_visible": false,
31
+ "status_bar_visible": false
32
+ },
33
+ "file_history":
34
+ [
35
+ "/Users/fficnar/Dropbox/Projects/gems/ruby_app/ruby_app.sublime-workspace",
36
+ "/Users/fficnar/Dropbox/Projects/gems/ruby_app/lib/ruby_app/elements/mobile/list.css.haml",
37
+ "/Users/fficnar/Dropbox/Projects/gems/ruby_app/lib/ruby_app/elements/mobile/list.js.haml",
38
+ "/Users/fficnar/Dropbox/Projects/pike/lib/pike/elements/inputs/user_input.js.haml",
39
+ "/Users/fficnar/Dropbox/Projects/pike/lib/pike/elements/property_value_list.js.haml",
40
+ "/Users/fficnar/Dropbox/Projects/pike/lib/pike/elements/work_list_welcome_item.css.haml",
41
+ "/Users/fficnar/Dropbox/Projects/pike/lib/pike/elements/work_list_welcome_item.html.haml",
42
+ "/Users/fficnar/Dropbox/Projects/pike/lib/pike/elements/work_list.rb",
43
+ "/Users/fficnar/Dropbox/Projects/pike/lib/pike/elements/pages/default_page.css.haml",
44
+ "/Users/fficnar/Dropbox/Projects/pike/lib/pike/elements/message_list.rb",
45
+ "/Users/fficnar/Dropbox/Projects/pike/lib/pike/elements/message_list_item.css.haml",
46
+ "/Users/fficnar/Dropbox/Projects/pike/lib/pike/elements/message_list_item.html.haml",
47
+ "/Users/fficnar/Dropbox/Projects/pike/lib/pike/elements/message_list.css.haml",
48
+ "/Users/fficnar/Dropbox/Projects/pike/lib/pike/elements/message_list.js.haml",
49
+ "/Users/fficnar/Dropbox/Projects/pike/lib/pike/elements/work_report.rb",
50
+ "/Users/fficnar/Dropbox/Projects/pike/lib/pike/elements/property_value_list.rb",
51
+ "/Users/fficnar/Dropbox/Projects/pike/lib/pike/elements/project_list.rb",
52
+ "/Users/fficnar/Dropbox/Projects/pike/lib/pike/elements/friendship_list.rb",
53
+ "/Users/fficnar/Dropbox/Projects/pike/lib/pike/elements/flag_select.css.haml",
54
+ "/Users/fficnar/Dropbox/Projects/pike/lib/pike/elements/activity_select.css.haml",
55
+ "/Users/fficnar/Dropbox/Projects/pike/lib/pike/elements/activity_select.rb",
56
+ "/Users/fficnar/Dropbox/Projects/pike/lib/pike/elements/activity_list.rb",
57
+ "/Users/fficnar/Dropbox/Projects/pike/lib/pike/elements/work_report.css.haml",
58
+ "/Users/fficnar/Dropbox/Projects/pike/lib/pike/elements/work_report.html.haml",
59
+ "/Users/fficnar/Dropbox/Projects/pike/lib/pike/elements/work_list_item.css.haml",
60
+ "/Users/fficnar/Dropbox/Projects/pike/lib/pike/elements/work_list_item.html.haml",
61
+ "/Users/fficnar/Dropbox/Projects/pike/lib/pike/elements/property_value_list_item.css.haml",
62
+ "/Users/fficnar/Dropbox/Projects/pike/lib/pike/elements/property_value_list_item.html.haml",
63
+ "/Users/fficnar/Dropbox/Projects/pike/lib/pike/elements/property_value_list.css.haml",
64
+ "/Users/fficnar/Dropbox/Projects/pike/lib/pike/elements/project_list_item.css.haml",
65
+ "/Users/fficnar/Dropbox/Projects/pike/lib/pike/elements/project_list_item.html.haml",
66
+ "/Users/fficnar/Dropbox/Projects/pike/scripts/introduction.rb",
67
+ "/Users/fficnar/Dropbox/Projects/pike/lib/pike/elements/friendship_list_introduction_item.html.haml",
68
+ "/Users/fficnar/Library/Application Support/Sublime Text 2/Packages/Default/Preferences.sublime-settings",
69
+ "/Users/fficnar/Dropbox/Projects/pike/lib/pike/elements/activity_list_item.css.haml",
70
+ "/Users/fficnar/Dropbox/Projects/pike/lib/pike/elements/friendship_list.css.haml",
71
+ "/Users/fficnar/Dropbox/Projects/pike/lib/pike/elements/friendship_list_introduction_item.css.haml",
72
+ "/Users/fficnar/Dropbox/Projects/pike/lib/pike/elements/activity_list.css.haml",
73
+ "/Users/fficnar/Dropbox/Projects/gems/ruby_app/lib/ruby_app/elements/mobile/navigation/navigation_list_page_item.html.haml",
74
+ "/Users/fficnar/Dropbox/Projects/gems/ruby_app/lib/ruby_app/elements/mobile/navigation/navigation_list.rb",
75
+ "/Users/fficnar/Dropbox/Projects/gems/ruby_app/lib/ruby_app/elements/mobile/navigation/back_button.html.haml",
76
+ "/Users/fficnar/Dropbox/Projects/gems/ruby_app/lib/ruby_app/elements/mobile/documents/authentication/o_auth/git_hub_authentication_document.rb",
77
+ "/Users/fficnar/Dropbox/Projects/gems/ruby_app/lib/ruby_app/elements/mobile/documents/authentication/facebook/authentication_document.rb",
78
+ "/Users/fficnar/Dropbox/Projects/gems/ruby_app/lib/ruby_app/elements/mobile/documents/authentication/facebook/email_authentication_document.rb",
79
+ "/Users/fficnar/Dropbox/Projects/pike/tasks/migrations.rb",
80
+ "/Users/fficnar/Dropbox/Projects/pike/tasks/data.rb",
81
+ "/Users/fficnar/Dropbox/Projects/pike/tasks/process.rb",
82
+ "/Users/fficnar/Dropbox/Projects/pike/Rakefile",
83
+ "/Users/fficnar/Dropbox/Projects/pike/configuration.yml",
84
+ "/Users/fficnar/Dropbox/Projects/pike/lib/pike/elements/documents/authentication/o_auth/git_hub_authentication_document.rb",
85
+ "/Users/fficnar/Dropbox/Projects/.bash_aliases",
86
+ "/Users/fficnar/Dropbox/Projects/pike/pike.sublime-project",
87
+ "/Users/fficnar/Dropbox/Projects/pike/pike.staging.20121018235257.tar.gz"
88
+ ],
89
+ "find":
90
+ {
91
+ "height": 35.0
92
+ },
93
+ "find_in_files":
94
+ {
95
+ "height": 0.0,
96
+ "where_history":
97
+ [
98
+ "<open files>",
99
+ "/Users/fficnar/Dropbox/Projects/pike"
100
+ ]
101
+ },
102
+ "find_state":
103
+ {
104
+ "case_sensitive": false,
105
+ "find_history":
106
+ [
107
+ "MessageItem",
108
+ "indentation",
109
+ "full_",
110
+ "108"
111
+ ],
112
+ "highlight": true,
113
+ "in_selection": false,
114
+ "preserve_case": false,
115
+ "regex": false,
116
+ "replace_history":
117
+ [
118
+ "MessageListItem",
119
+ ""
120
+ ],
121
+ "reverse": false,
122
+ "show_context": true,
123
+ "use_buffer2": true,
124
+ "whole_word": false,
125
+ "wrap": true
126
+ },
127
+ "groups":
128
+ [
129
+ {
130
+ "sheets":
131
+ [
132
+ ]
133
+ }
134
+ ],
135
+ "incremental_find":
136
+ {
137
+ "height": 0.0
138
+ },
139
+ "input":
140
+ {
141
+ "height": 31.0
142
+ },
143
+ "layout":
144
+ {
145
+ "cells":
146
+ [
147
+ [
148
+ 0,
149
+ 0,
150
+ 1,
151
+ 1
152
+ ]
153
+ ],
154
+ "cols":
155
+ [
156
+ 0.0,
157
+ 1.0
158
+ ],
159
+ "rows":
160
+ [
161
+ 0.0,
162
+ 1.0
163
+ ]
164
+ },
165
+ "menu_visible": true,
166
+ "output.exec":
167
+ {
168
+ "height": 100.0
169
+ },
170
+ "replace":
171
+ {
172
+ "height": 64.0
173
+ },
174
+ "save_all_on_build": true,
175
+ "select_file":
176
+ {
177
+ "height": 0.0,
178
+ "selected_items":
179
+ [
180
+ [
181
+ "facebook",
182
+ "lib/ruby_app/elements/mobile/documents/authentication/facebook/email_authentication_document.rb"
183
+ ],
184
+ [
185
+ "face",
186
+ "lib/ruby_app/elements/mobile/documents/authentication/facebook/authentication_document.rb"
187
+ ],
188
+ [
189
+ "git",
190
+ "lib/ruby_app/elements/mobile/documents/authentication/o_auth/git_hub_authentication_document.rb"
191
+ ],
192
+ [
193
+ "rake",
194
+ "Rakefile"
195
+ ],
196
+ [
197
+ "user",
198
+ "lib/pike/models/user.rb"
199
+ ],
200
+ [
201
+ "config",
202
+ "configuration.yml"
203
+ ],
204
+ [
205
+ "github",
206
+ "lib/pike/elements/documents/authentication/o_auth/git_hub_authentication_document.rb"
207
+ ]
208
+ ],
209
+ "width": 0.0
210
+ },
211
+ "select_project":
212
+ {
213
+ "height": 0.0,
214
+ "selected_items":
215
+ [
216
+ ],
217
+ "width": 0.0
218
+ },
219
+ "show_minimap": false,
220
+ "show_open_files": true,
221
+ "show_tabs": true,
222
+ "side_bar_visible": true,
223
+ "side_bar_width": 440.0,
224
+ "status_bar_visible": true
225
+ }
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: 73
4
+ hash: 87
5
5
  prerelease:
6
6
  segments:
7
7
  - 0
8
8
  - 6
9
- - 39
10
- version: 0.6.39
9
+ - 40
10
+ version: 0.6.40
11
11
  platform: ruby
12
12
  authors:
13
13
  - Frank G. Ficnar
@@ -15,7 +15,7 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2012-10-19 00:00:00 Z
18
+ date: 2012-10-21 00:00:00 Z
19
19
  dependencies:
20
20
  - !ruby/object:Gem::Dependency
21
21
  version_requirements: &id001 !ruby/object:Gem::Requirement
@@ -443,6 +443,7 @@ files:
443
443
  - lib/ruby_app/elements/mobile/inputs/multiline_input.html.haml
444
444
  - lib/ruby_app/elements/mobile/inputs/multiline_input.js.haml
445
445
  - lib/ruby_app/elements/mobile/inputs/multiline_input.rb
446
+ - lib/ruby_app/elements/mobile/inputs/search_input.rb
446
447
  - lib/ruby_app/elements/mobile/inputs/toggle_input.html.haml
447
448
  - lib/ruby_app/elements/mobile/inputs/toggle_input.js.haml
448
449
  - lib/ruby_app/elements/mobile/inputs/toggle_input.rb
@@ -454,7 +455,10 @@ files:
454
455
  - lib/ruby_app/elements/mobile/list.rb
455
456
  - lib/ruby_app/elements/mobile/list_divider.html.haml
456
457
  - lib/ruby_app/elements/mobile/list_item.html.haml
458
+ - lib/ruby_app/elements/mobile/list_item.js.haml
459
+ - lib/ruby_app/elements/mobile/list_split_item.css.haml
457
460
  - lib/ruby_app/elements/mobile/list_split_item.html.haml
461
+ - lib/ruby_app/elements/mobile/list_split_item.js.haml
458
462
  - lib/ruby_app/elements/mobile/navigation/back_button.html.haml
459
463
  - lib/ruby_app/elements/mobile/navigation/back_button.rb
460
464
  - lib/ruby_app/elements/mobile/navigation/hide_button.rb
@@ -602,6 +606,8 @@ files:
602
606
  - lib/ruby_app/translations/en.yml
603
607
  - lib/ruby_app/version.rb
604
608
  - ruby_app.gemspec
609
+ - ruby_app.sublime-project
610
+ - ruby_app.sublime-workspace
605
611
  homepage: ""
606
612
  licenses: []
607
613