RubyApp 0.0.6
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/.gitignore +13 -0
- data/.rvmrc +1 -0
- data/Gemfile +4 -0
- data/README.md +0 -0
- data/bin/console.rb +8 -0
- data/bin/ruby_app +168 -0
- data/features/breadcrumbs.feature +11 -0
- data/features/content.feature +16 -0
- data/features/default.feature +5 -0
- data/features/dialog.feature +56 -0
- data/features/exception.feature +53 -0
- data/features/input.feature +13 -0
- data/features/list.feature +12 -0
- data/features/month.feature +14 -0
- data/features/step_definitions/default_macros.rb +16 -0
- data/features/step_definitions/default_steps.rb +36 -0
- data/features/support/env.rb +12 -0
- data/lib/ruby_app.rb +1 -0
- data/lib/ruby_app/application.rb +72 -0
- data/lib/ruby_app/config.ru +27 -0
- data/lib/ruby_app/config.yml +15 -0
- data/lib/ruby_app/configuration.rb +44 -0
- data/lib/ruby_app/element.rb +120 -0
- data/lib/ruby_app/elements/base/base_dialog.css.haml +9 -0
- data/lib/ruby_app/elements/base/base_dialog.html.haml +4 -0
- data/lib/ruby_app/elements/base/base_dialog.rb +64 -0
- data/lib/ruby_app/elements/base/base_page.css.haml +13 -0
- data/lib/ruby_app/elements/base/base_page.html.haml +20 -0
- data/lib/ruby_app/elements/base/base_page.js.haml +97 -0
- data/lib/ruby_app/elements/base/base_page.rb +80 -0
- data/lib/ruby_app/elements/button.html.haml +4 -0
- data/lib/ruby_app/elements/button.rb +19 -0
- data/lib/ruby_app/elements/calendars/base/base_month.css.haml +10 -0
- data/lib/ruby_app/elements/calendars/base/base_month.html.haml +42 -0
- data/lib/ruby_app/elements/calendars/base/base_month.js.haml +18 -0
- data/lib/ruby_app/elements/calendars/base/base_month.rb +101 -0
- data/lib/ruby_app/elements/calendars/month.rb +27 -0
- data/lib/ruby_app/elements/click.js.haml +10 -0
- data/lib/ruby_app/elements/click.rb +44 -0
- data/lib/ruby_app/elements/dialog.rb +23 -0
- data/lib/ruby_app/elements/dialogs/base/base_busy_dialog.css.haml +9 -0
- data/lib/ruby_app/elements/dialogs/base/base_busy_dialog.html.haml +7 -0
- data/lib/ruby_app/elements/dialogs/base/base_busy_dialog.rb +27 -0
- data/lib/ruby_app/elements/dialogs/base/base_close_dialog.css.haml +11 -0
- data/lib/ruby_app/elements/dialogs/base/base_close_dialog.html.haml +6 -0
- data/lib/ruby_app/elements/dialogs/base/base_close_dialog.js.haml +2 -0
- data/lib/ruby_app/elements/dialogs/base/base_close_dialog.rb +33 -0
- data/lib/ruby_app/elements/dialogs/base/base_yes_no_dialog.css.haml +15 -0
- data/lib/ruby_app/elements/dialogs/base/base_yes_no_dialog.html.haml +8 -0
- data/lib/ruby_app/elements/dialogs/base/base_yes_no_dialog.js.haml +2 -0
- data/lib/ruby_app/elements/dialogs/base/base_yes_no_dialog.rb +40 -0
- data/lib/ruby_app/elements/dialogs/blank_dialog.html.haml +9 -0
- data/lib/ruby_app/elements/dialogs/blank_dialog.rb +22 -0
- data/lib/ruby_app/elements/dialogs/busy_dialog.rb +22 -0
- data/lib/ruby_app/elements/dialogs/calendars/month_dialog.css.haml +19 -0
- data/lib/ruby_app/elements/dialogs/calendars/month_dialog.html.haml +18 -0
- data/lib/ruby_app/elements/dialogs/calendars/month_dialog.js.haml +3 -0
- data/lib/ruby_app/elements/dialogs/calendars/month_dialog.rb +52 -0
- data/lib/ruby_app/elements/dialogs/close_dialog.rb +22 -0
- data/lib/ruby_app/elements/dialogs/confirmation_dialog.html.haml +8 -0
- data/lib/ruby_app/elements/dialogs/confirmation_dialog.rb +26 -0
- data/lib/ruby_app/elements/dialogs/exception_dialog.html.haml +8 -0
- data/lib/ruby_app/elements/dialogs/exception_dialog.rb +23 -0
- data/lib/ruby_app/elements/dialogs/message_dialog.html.haml +8 -0
- data/lib/ruby_app/elements/dialogs/message_dialog.rb +26 -0
- data/lib/ruby_app/elements/dialogs/yes_no_dialog.rb +22 -0
- data/lib/ruby_app/elements/exception_element.html.haml +7 -0
- data/lib/ruby_app/elements/exception_element.rb +19 -0
- data/lib/ruby_app/elements/input.html.haml +3 -0
- data/lib/ruby_app/elements/input.js.haml +9 -0
- data/lib/ruby_app/elements/input.rb +54 -0
- data/lib/ruby_app/elements/inputs/duration_input.rb +46 -0
- data/lib/ruby_app/elements/link.html.haml +4 -0
- data/lib/ruby_app/elements/link.rb +19 -0
- data/lib/ruby_app/elements/list.html.haml +9 -0
- data/lib/ruby_app/elements/list.js.haml +10 -0
- data/lib/ruby_app/elements/list.rb +55 -0
- data/lib/ruby_app/elements/lists/select.html.haml +14 -0
- data/lib/ruby_app/elements/lists/select.js.haml +10 -0
- data/lib/ruby_app/elements/lists/select.rb +47 -0
- data/lib/ruby_app/elements/markdown.html.haml +5 -0
- data/lib/ruby_app/elements/markdown.js.haml +10 -0
- data/lib/ruby_app/elements/markdown.rb +51 -0
- data/lib/ruby_app/elements/navigation/back_button.html.haml +2 -0
- data/lib/ruby_app/elements/navigation/back_button.rb +29 -0
- data/lib/ruby_app/elements/navigation/base/base_breadcrumbs.html.haml +17 -0
- data/lib/ruby_app/elements/navigation/base/base_breadcrumbs.js.haml +10 -0
- data/lib/ruby_app/elements/navigation/base/base_breadcrumbs.rb +58 -0
- data/lib/ruby_app/elements/navigation/breadcrumbs.rb +22 -0
- data/lib/ruby_app/elements/navigation/page_link.html.haml +9 -0
- data/lib/ruby_app/elements/navigation/page_link.js.haml +10 -0
- data/lib/ruby_app/elements/navigation/page_link.rb +56 -0
- data/lib/ruby_app/elements/navigation/page_menu.html.haml +12 -0
- data/lib/ruby_app/elements/navigation/page_menu.js.haml +10 -0
- data/lib/ruby_app/elements/navigation/page_menu.rb +57 -0
- data/lib/ruby_app/elements/page.rb +21 -0
- data/lib/ruby_app/elements/pages/authentication/open_id/authentication_page.css.haml +2 -0
- data/lib/ruby_app/elements/pages/authentication/open_id/authentication_page.js.haml +2 -0
- data/lib/ruby_app/elements/pages/authentication/open_id/authentication_page.rb +77 -0
- data/lib/ruby_app/elements/pages/authentication/open_id/ax_authentication_page.rb +52 -0
- data/lib/ruby_app/elements/pages/authentication/open_id/google_authentication_page.rb +30 -0
- data/lib/ruby_app/elements/pages/authentication/open_id/my_open_id_authentication_page.rb +30 -0
- data/lib/ruby_app/elements/pages/authentication/open_id/sreg_authentication_page.rb +52 -0
- data/lib/ruby_app/elements/pages/authentication/open_id/yahoo_authentication_page.rb +30 -0
- data/lib/ruby_app/elements/pages/base/base_blank_page.css.haml +18 -0
- data/lib/ruby_app/elements/pages/base/base_blank_page.html.haml +11 -0
- data/lib/ruby_app/elements/pages/base/base_blank_page.js.haml +3 -0
- data/lib/ruby_app/elements/pages/base/base_blank_page.rb +36 -0
- data/lib/ruby_app/elements/pages/blank_page.rb +22 -0
- data/lib/ruby_app/elements/pages/default_page.css.haml +2 -0
- data/lib/ruby_app/elements/pages/default_page.html.haml +5 -0
- data/lib/ruby_app/elements/pages/default_page.js.haml +2 -0
- data/lib/ruby_app/elements/pages/default_page.rb +34 -0
- data/lib/ruby_app/elements/pages/exception_page.html.haml +8 -0
- data/lib/ruby_app/elements/pages/exception_page.rb +23 -0
- data/lib/ruby_app/elements/pages/quit_page.html.haml +5 -0
- data/lib/ruby_app/elements/pages/quit_page.rb +24 -0
- data/lib/ruby_app/elements/pages/settings_page.css.haml +2 -0
- data/lib/ruby_app/elements/pages/settings_page.html.haml +5 -0
- data/lib/ruby_app/elements/pages/settings_page.js.haml +2 -0
- data/lib/ruby_app/elements/pages/settings_page.rb +37 -0
- data/lib/ruby_app/elements/pages/test_pages/default_test_page.css.haml +4 -0
- data/lib/ruby_app/elements/pages/test_pages/default_test_page.html.haml +5 -0
- data/lib/ruby_app/elements/pages/test_pages/default_test_page.js.haml +4 -0
- data/lib/ruby_app/elements/pages/test_pages/default_test_page.rb +55 -0
- data/lib/ruby_app/elements/pages/test_pages/dialog_test_page.css.haml +7 -0
- data/lib/ruby_app/elements/pages/test_pages/dialog_test_page.html.haml +5 -0
- data/lib/ruby_app/elements/pages/test_pages/dialog_test_page.js.haml +7 -0
- data/lib/ruby_app/elements/pages/test_pages/dialog_test_page.rb +66 -0
- data/lib/ruby_app/elements/pages/test_pages/input_test_page.css.haml +4 -0
- data/lib/ruby_app/elements/pages/test_pages/input_test_page.html.haml +9 -0
- data/lib/ruby_app/elements/pages/test_pages/input_test_page.js.haml +4 -0
- data/lib/ruby_app/elements/pages/test_pages/input_test_page.rb +44 -0
- data/lib/ruby_app/elements/pages/test_pages/list_test_page.css.haml +4 -0
- data/lib/ruby_app/elements/pages/test_pages/list_test_page.html.haml +6 -0
- data/lib/ruby_app/elements/pages/test_pages/list_test_page.js.haml +4 -0
- data/lib/ruby_app/elements/pages/test_pages/list_test_page.rb +51 -0
- data/lib/ruby_app/language.rb +44 -0
- data/lib/ruby_app/log.rb +33 -0
- data/lib/ruby_app/mixins/configuration.rb +31 -0
- data/lib/ruby_app/mixins/delegate.rb +15 -0
- data/lib/ruby_app/mixins/hash.rb +19 -0
- data/lib/ruby_app/mixins/render.rb +76 -0
- data/lib/ruby_app/mixins/route.rb +39 -0
- data/lib/ruby_app/mixins/template.rb +38 -0
- data/lib/ruby_app/mixins/translate.rb +35 -0
- data/lib/ruby_app/rack/application.rb +24 -0
- data/lib/ruby_app/rack/route.rb +128 -0
- data/lib/ruby_app/request.rb +54 -0
- data/lib/ruby_app/resources/elements/dialogs/base/base_busy_dialog.gif +0 -0
- data/lib/ruby_app/resources/favicon.ico +0 -0
- data/lib/ruby_app/resources/themes/mobile/base/base_page/icon.png +0 -0
- data/lib/ruby_app/resources/themes/mobile/base/base_page/icon.psd +0 -0
- data/lib/ruby_app/resources/themes/mobile/base/base_page/manifest +0 -0
- data/lib/ruby_app/resources/themes/mobile/base/base_page/start.png +0 -0
- data/lib/ruby_app/resources/themes/mobile/base/base_page/start.psd +0 -0
- data/lib/ruby_app/resources/themes/mobile/lists/select.png +0 -0
- data/lib/ruby_app/resources/themes/mobile/lists/select.psd +0 -0
- data/lib/ruby_app/session.rb +101 -0
- data/lib/ruby_app/templates/application/Gemfile +3 -0
- data/lib/ruby_app/templates/application/config.ru +42 -0
- data/lib/ruby_app/templates/application/config.yml +1 -0
- data/lib/ruby_app/templates/application/console.rb +16 -0
- data/lib/ruby_app/templates/application/lib/_APPLICATION_DOWNCODE_/application.rb +16 -0
- data/lib/ruby_app/templates/application/lib/_APPLICATION_DOWNCODE_/elements/pages/default_page.css.haml +9 -0
- data/lib/ruby_app/templates/application/lib/_APPLICATION_DOWNCODE_/elements/pages/default_page.html.haml +7 -0
- data/lib/ruby_app/templates/application/lib/_APPLICATION_DOWNCODE_/elements/pages/default_page.rb +26 -0
- data/lib/ruby_app/templates/application/lib/_APPLICATION_DOWNCODE_/session.rb +17 -0
- data/lib/ruby_app/templates/application/lib/_APPLICATION_DOWNCODE_/version.rb +4 -0
- data/lib/ruby_app/templates/application/spec/spec_helper.rb +1 -0
- data/lib/ruby_app/templates/application/spec/support/shared.rb +18 -0
- data/lib/ruby_app/templates/application/translations/en.yml +5 -0
- data/lib/ruby_app/templates/page/_PAGE_DOWNCODE_.css.haml +3 -0
- data/lib/ruby_app/templates/page/_PAGE_DOWNCODE_.html.haml +4 -0
- data/lib/ruby_app/templates/page/_PAGE_DOWNCODE_.js.haml +3 -0
- data/lib/ruby_app/templates/page/_PAGE_DOWNCODE_.rb +14 -0
- data/lib/ruby_app/themes/mobile.rb +37 -0
- data/lib/ruby_app/themes/mobile/base/base_page.html.haml +30 -0
- data/lib/ruby_app/themes/mobile/calendars/month.css.haml +21 -0
- data/lib/ruby_app/themes/mobile/colors.sass +24 -0
- data/lib/ruby_app/themes/mobile/dialog.css.haml +17 -0
- data/lib/ruby_app/themes/mobile/dialogs/blank_dialog.css.haml +12 -0
- data/lib/ruby_app/themes/mobile/dialogs/busy_dialog.css.haml +9 -0
- data/lib/ruby_app/themes/mobile/dialogs/close_dialog.css.haml +12 -0
- data/lib/ruby_app/themes/mobile/dialogs/yes_no_dialog.css.haml +14 -0
- data/lib/ruby_app/themes/mobile/list.css.haml +25 -0
- data/lib/ruby_app/themes/mobile/lists/select.css.haml +27 -0
- data/lib/ruby_app/themes/mobile/markdown.css.haml +11 -0
- data/lib/ruby_app/themes/mobile/navigation/base/base_breadcrumbs.html.haml +7 -0
- data/lib/ruby_app/themes/mobile/page.css.haml +18 -0
- data/lib/ruby_app/themes/mobile/pages/base/base_blank_page.css.haml +18 -0
- data/lib/ruby_app/themes/mobile/pages/base/base_blank_page.html.haml +13 -0
- data/lib/ruby_app/themes/mobile/pages/blank_page.css.haml +19 -0
- data/lib/ruby_app/translations/en.yml +125 -0
- data/lib/ruby_app/version.rb +4 -0
- data/rakefile +62 -0
- data/ruby_app.gemspec +40 -0
- data/spec/element_spec.rb +22 -0
- data/spec/elements/navigation/breadcrumbs_spec.rb +69 -0
- data/spec/elements/page_spec.rb +31 -0
- data/spec/mixins/render_spec.rb +182 -0
- data/spec/mixins/route_spec.rb +60 -0
- data/spec/mixins/template_spec.rb +78 -0
- data/spec/mixins/test_a.css.haml +3 -0
- data/spec/mixins/test_a.html.haml +3 -0
- data/spec/mixins/test_a.js.haml +3 -0
- data/spec/mixins/test_b.css.haml +4 -0
- data/spec/mixins/test_b.html.haml +3 -0
- data/spec/mixins/test_b.js.haml +4 -0
- data/spec/mixins/test_c.css.haml +4 -0
- data/spec/mixins/test_c.html.haml +2 -0
- data/spec/mixins/test_c.js.haml +4 -0
- data/spec/mixins/test_e.html.haml +2 -0
- data/spec/mixins/test_f.html.haml +2 -0
- data/spec/mixins/test_g.css.haml +4 -0
- data/spec/spec_helper.rb +1 -0
- data/spec/support/shared.rb +15 -0
- metadata +654 -0
@@ -0,0 +1,80 @@
|
|
1
|
+
require 'rubygems'
|
2
|
+
require 'bundler/setup'
|
3
|
+
|
4
|
+
require 'ruby-event'
|
5
|
+
|
6
|
+
module RubyApp
|
7
|
+
|
8
|
+
module Elements
|
9
|
+
|
10
|
+
module Base
|
11
|
+
require 'ruby_app/element'
|
12
|
+
require 'ruby_app/language'
|
13
|
+
|
14
|
+
class BasePage < RubyApp::Element
|
15
|
+
|
16
|
+
class LoadedEvent < RubyApp::Element::Event
|
17
|
+
|
18
|
+
def initialize(data)
|
19
|
+
super(data)
|
20
|
+
end
|
21
|
+
|
22
|
+
end
|
23
|
+
|
24
|
+
class TriggeredEvent < RubyApp::Element::Event
|
25
|
+
|
26
|
+
def initialize(data)
|
27
|
+
super(data)
|
28
|
+
end
|
29
|
+
|
30
|
+
end
|
31
|
+
|
32
|
+
class ReleasedEvent < RubyApp::Element::Event
|
33
|
+
|
34
|
+
def initialize(data)
|
35
|
+
super(data)
|
36
|
+
end
|
37
|
+
|
38
|
+
end
|
39
|
+
|
40
|
+
template_path(:all, File.dirname(__FILE__))
|
41
|
+
|
42
|
+
attr_accessor :interval
|
43
|
+
|
44
|
+
event :loaded
|
45
|
+
event :triggered
|
46
|
+
event :released
|
47
|
+
|
48
|
+
def initialize
|
49
|
+
super
|
50
|
+
@interval = 0
|
51
|
+
end
|
52
|
+
|
53
|
+
protected
|
54
|
+
|
55
|
+
def on_event(event)
|
56
|
+
on_loaded(event) if event.is_a?(RubyApp::Elements::Base::BasePage::LoadedEvent)
|
57
|
+
on_triggered(event) if event.is_a?(RubyApp::Elements::Base::BasePage::TriggeredEvent)
|
58
|
+
on_released(event) if event.is_a?(RubyApp::Elements::Base::BasePage::ReleasedEvent)
|
59
|
+
super(event)
|
60
|
+
end
|
61
|
+
|
62
|
+
def on_loaded(event)
|
63
|
+
loaded(event)
|
64
|
+
end
|
65
|
+
|
66
|
+
def on_triggered(event)
|
67
|
+
triggered(event)
|
68
|
+
end
|
69
|
+
|
70
|
+
def on_released(event)
|
71
|
+
released(event)
|
72
|
+
end
|
73
|
+
|
74
|
+
end
|
75
|
+
|
76
|
+
end
|
77
|
+
|
78
|
+
end
|
79
|
+
|
80
|
+
end
|
@@ -0,0 +1,19 @@
|
|
1
|
+
module RubyApp
|
2
|
+
|
3
|
+
module Elements
|
4
|
+
require 'ruby_app/elements/click'
|
5
|
+
|
6
|
+
class Button < RubyApp::Elements::Click
|
7
|
+
|
8
|
+
template_path(:all, File.dirname(__FILE__))
|
9
|
+
|
10
|
+
def initialize
|
11
|
+
super
|
12
|
+
attributes.merge!(:type => :button)
|
13
|
+
end
|
14
|
+
|
15
|
+
end
|
16
|
+
|
17
|
+
end
|
18
|
+
|
19
|
+
end
|
@@ -0,0 +1,42 @@
|
|
1
|
+
/
|
2
|
+
#{__FILE__}
|
3
|
+
%div.month{attributes}
|
4
|
+
%table
|
5
|
+
%thead
|
6
|
+
%tr
|
7
|
+
%td.left
|
8
|
+
%a.previous{:href => ''}
|
9
|
+
= RubyApp::Language.locale.strftime(self.display << 1, '%b')
|
10
|
+
%td.center{:colspan => 5}
|
11
|
+
= RubyApp::Language.locale.strftime(self.display, '%B %Y')
|
12
|
+
%td.right
|
13
|
+
%a.next{:href => ''}
|
14
|
+
= RubyApp::Language.locale.strftime(self.display >> 1, '%b')
|
15
|
+
- sunday = self.display_first_date
|
16
|
+
%tr
|
17
|
+
- (0..6).each do |index|
|
18
|
+
- date = sunday + index
|
19
|
+
%td= RubyApp::Language.locale.strftime(date, '%a')
|
20
|
+
%tbody
|
21
|
+
- month = self.display.month
|
22
|
+
- sunday = self.display_first_date
|
23
|
+
- while sunday < self.display_last_date
|
24
|
+
%tr
|
25
|
+
- (0..6).each do |index|
|
26
|
+
- date = sunday + index
|
27
|
+
- if date.month == month
|
28
|
+
- if date == self.value
|
29
|
+
%td.current
|
30
|
+
= date.day
|
31
|
+
- elsif date == Date.today
|
32
|
+
%td.today
|
33
|
+
%a.day{:href => '', :date => date.strftime}
|
34
|
+
= date.day
|
35
|
+
- else
|
36
|
+
%td.day
|
37
|
+
%a.day{:href => '', :date => date.strftime}
|
38
|
+
= date.day
|
39
|
+
- else
|
40
|
+
%td.none
|
41
|
+
= date.day
|
42
|
+
- sunday += 7
|
@@ -0,0 +1,18 @@
|
|
1
|
+
- self.rendered?(__FILE__) do
|
2
|
+
:plain
|
3
|
+
// #{__FILE__}
|
4
|
+
$(document).ready(function() {
|
5
|
+
$("div.month table thead tr td a.previous").live('click', function(event) {
|
6
|
+
event.preventDefault();
|
7
|
+
RubyApp.sendEvent({_class:'RubyApp::Elements::Calendars::Month::MovedEvent', source_id:$(this).parents('div.month').attr('id'), unit:'month', amount:-1});
|
8
|
+
});
|
9
|
+
$("div.month table thead tr td a.next").live('click', function(event) {
|
10
|
+
event.preventDefault();
|
11
|
+
RubyApp.sendEvent({_class:'RubyApp::Elements::Calendars::Month::MovedEvent', source_id:$(this).parents('div.month').attr('id'), unit:'month', amount:1});
|
12
|
+
});
|
13
|
+
$("div.month table tbody tr td a.day").live('click', function(event) {
|
14
|
+
event.preventDefault();
|
15
|
+
RubyApp.sendEvent({_class:'RubyApp::Elements::Calendars::Month::ChangedEvent', source_id:$(this).parents('div.month').attr('id'), date:$(this).attr('date')});
|
16
|
+
});
|
17
|
+
});
|
18
|
+
= yield
|
@@ -0,0 +1,101 @@
|
|
1
|
+
require 'rubygems'
|
2
|
+
require 'bundler/setup'
|
3
|
+
|
4
|
+
require 'ruby-event'
|
5
|
+
|
6
|
+
module RubyApp
|
7
|
+
|
8
|
+
module Elements
|
9
|
+
|
10
|
+
module Calendars
|
11
|
+
|
12
|
+
module Base
|
13
|
+
require 'ruby_app/element'
|
14
|
+
|
15
|
+
class BaseMonth < RubyApp::Element
|
16
|
+
|
17
|
+
class MovedEvent < RubyApp::Element::Event
|
18
|
+
|
19
|
+
attr_reader :unit, :amount
|
20
|
+
|
21
|
+
def initialize(data)
|
22
|
+
super(data)
|
23
|
+
@unit = data['unit'].to_sym
|
24
|
+
@amount = data['amount'].to_i
|
25
|
+
end
|
26
|
+
|
27
|
+
def to_hash
|
28
|
+
super.merge('unit' => @name, 'amount' => @amount)
|
29
|
+
end
|
30
|
+
|
31
|
+
end
|
32
|
+
|
33
|
+
class ChangedEvent < RubyApp::Element::Event
|
34
|
+
|
35
|
+
attr_reader :value
|
36
|
+
|
37
|
+
def initialize(data)
|
38
|
+
super(data)
|
39
|
+
@value = Date.parse(data['date'])
|
40
|
+
end
|
41
|
+
|
42
|
+
def to_hash
|
43
|
+
super.merge('value' => @value.strftime)
|
44
|
+
end
|
45
|
+
|
46
|
+
end
|
47
|
+
|
48
|
+
template_path(:all, File.dirname(__FILE__))
|
49
|
+
|
50
|
+
attr_accessor :display, :value
|
51
|
+
|
52
|
+
event :changed
|
53
|
+
|
54
|
+
def initialize
|
55
|
+
super
|
56
|
+
@display = Date.today
|
57
|
+
@value = @display
|
58
|
+
end
|
59
|
+
|
60
|
+
def display_first_date
|
61
|
+
first_of_month = @display - (@display.day - 1)
|
62
|
+
first_of_month - first_of_month.wday
|
63
|
+
end
|
64
|
+
|
65
|
+
def display_last_date
|
66
|
+
next_month = @display >> 1
|
67
|
+
last_of_month = next_month - next_month.day
|
68
|
+
last_of_month + (6 - last_of_month.wday)
|
69
|
+
end
|
70
|
+
|
71
|
+
protected
|
72
|
+
|
73
|
+
def on_event(event)
|
74
|
+
on_moved(event) if event.is_a?(RubyApp::Elements::Calendars::Month::MovedEvent)
|
75
|
+
on_changed(event) if event.is_a?(RubyApp::Elements::Calendars::Month::ChangedEvent)
|
76
|
+
super(event)
|
77
|
+
end
|
78
|
+
|
79
|
+
def on_moved(event)
|
80
|
+
case event.unit
|
81
|
+
when :month
|
82
|
+
@display = @display >> event.amount
|
83
|
+
event.update_element(self)
|
84
|
+
end
|
85
|
+
end
|
86
|
+
|
87
|
+
def on_changed(event)
|
88
|
+
@value = event.value
|
89
|
+
event.update_element(self)
|
90
|
+
changed(event)
|
91
|
+
end
|
92
|
+
|
93
|
+
end
|
94
|
+
|
95
|
+
end
|
96
|
+
|
97
|
+
end
|
98
|
+
|
99
|
+
end
|
100
|
+
|
101
|
+
end
|
@@ -0,0 +1,27 @@
|
|
1
|
+
require 'rubygems'
|
2
|
+
require 'bundler/setup'
|
3
|
+
|
4
|
+
require 'ruby-event'
|
5
|
+
|
6
|
+
module RubyApp
|
7
|
+
|
8
|
+
module Elements
|
9
|
+
|
10
|
+
module Calendars
|
11
|
+
require 'ruby_app/elements/calendars/base/base_month'
|
12
|
+
|
13
|
+
class Month < RubyApp::Elements::Calendars::Base::BaseMonth
|
14
|
+
|
15
|
+
template_path(:all, File.dirname(__FILE__))
|
16
|
+
|
17
|
+
def initialize
|
18
|
+
super
|
19
|
+
end
|
20
|
+
|
21
|
+
end
|
22
|
+
|
23
|
+
end
|
24
|
+
|
25
|
+
end
|
26
|
+
|
27
|
+
end
|
@@ -0,0 +1,10 @@
|
|
1
|
+
- self.rendered?(__FILE__) do
|
2
|
+
:plain
|
3
|
+
// #{__FILE__}
|
4
|
+
$(document).ready(function() {
|
5
|
+
$('.click').live('click', function(event) {
|
6
|
+
event.preventDefault();
|
7
|
+
RubyApp.sendEvent({_class:'RubyApp::Elements::Click::ClickedEvent', source_id:$(this).attr('id')});
|
8
|
+
});
|
9
|
+
});
|
10
|
+
= yield
|
@@ -0,0 +1,44 @@
|
|
1
|
+
require 'rubygems'
|
2
|
+
require 'bundler/setup'
|
3
|
+
|
4
|
+
require 'ruby-event'
|
5
|
+
|
6
|
+
module RubyApp
|
7
|
+
|
8
|
+
module Elements
|
9
|
+
require 'ruby_app/element'
|
10
|
+
|
11
|
+
class Click < RubyApp::Element
|
12
|
+
|
13
|
+
class ClickedEvent < RubyApp::Element::Event
|
14
|
+
|
15
|
+
def initialize(data)
|
16
|
+
super(data)
|
17
|
+
end
|
18
|
+
|
19
|
+
end
|
20
|
+
|
21
|
+
template_path(:all, File.dirname(__FILE__))
|
22
|
+
|
23
|
+
event :clicked
|
24
|
+
|
25
|
+
def initialize
|
26
|
+
super
|
27
|
+
end
|
28
|
+
|
29
|
+
protected
|
30
|
+
|
31
|
+
def on_event(event)
|
32
|
+
on_clicked(event) if event.is_a?(RubyApp::Elements::Click::ClickedEvent)
|
33
|
+
super(event)
|
34
|
+
end
|
35
|
+
|
36
|
+
def on_clicked(event)
|
37
|
+
clicked(event)
|
38
|
+
end
|
39
|
+
|
40
|
+
end
|
41
|
+
|
42
|
+
end
|
43
|
+
|
44
|
+
end
|
@@ -0,0 +1,23 @@
|
|
1
|
+
require 'rubygems'
|
2
|
+
require 'bundler/setup'
|
3
|
+
|
4
|
+
require 'ruby-event'
|
5
|
+
|
6
|
+
module RubyApp
|
7
|
+
|
8
|
+
module Elements
|
9
|
+
require 'ruby_app/elements/base/base_dialog'
|
10
|
+
|
11
|
+
class Dialog < RubyApp::Elements::Base::BaseDialog
|
12
|
+
|
13
|
+
template_path(:all, File.dirname(__FILE__))
|
14
|
+
|
15
|
+
def initialize
|
16
|
+
super
|
17
|
+
end
|
18
|
+
|
19
|
+
end
|
20
|
+
|
21
|
+
end
|
22
|
+
|
23
|
+
end
|
@@ -0,0 +1,27 @@
|
|
1
|
+
module RubyApp
|
2
|
+
|
3
|
+
module Elements
|
4
|
+
|
5
|
+
module Dialogs
|
6
|
+
|
7
|
+
module Base
|
8
|
+
require 'ruby_app/elements/dialog'
|
9
|
+
|
10
|
+
class BaseBusyDialog < RubyApp::Elements::Dialog
|
11
|
+
|
12
|
+
template_path(:all, File.dirname(__FILE__))
|
13
|
+
|
14
|
+
def initialize(message)
|
15
|
+
super()
|
16
|
+
@message = message
|
17
|
+
end
|
18
|
+
|
19
|
+
end
|
20
|
+
|
21
|
+
end
|
22
|
+
|
23
|
+
end
|
24
|
+
|
25
|
+
end
|
26
|
+
|
27
|
+
end
|