RubyApp 0.0.8 → 0.0.9
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 +3 -3
- data/Gemfile.lock +1 -1
- data/features/default.feature +2 -2
- data/features/elements/button.feature +9 -0
- data/features/{dialog.feature → elements/dialog.feature} +19 -13
- data/features/elements/input.feature +20 -0
- data/features/elements/link.feature +9 -0
- data/features/elements/list.feature +19 -0
- data/features/elements/markdown.feature +9 -0
- data/features/elements/page.feature +10 -0
- data/features/elements/pages/exception_page.feature +10 -0
- data/features/step_definitions/default_macros.rb +1 -1
- data/features/step_definitions/default_steps.rb +7 -3
- data/features/support/env.rb +1 -1
- data/lib/ruby_app/application.rb +16 -41
- data/lib/ruby_app/configuration.rb +9 -17
- data/lib/ruby_app/element.rb +27 -23
- data/lib/ruby_app/elements/base/base_page.js.haml +1 -1
- data/lib/ruby_app/elements/base/base_page.rb +5 -5
- data/lib/ruby_app/elements/list.js.haml +1 -1
- data/lib/ruby_app/elements/list.rb +5 -5
- data/lib/ruby_app/elements/lists/select.js.haml +1 -1
- data/lib/ruby_app/elements/lists/select.rb +1 -3
- data/lib/ruby_app/elements/markdown.js.haml +1 -1
- data/lib/ruby_app/elements/markdown.rb +5 -5
- data/lib/ruby_app/elements/navigation/base/base_breadcrumbs.js.haml +1 -1
- data/lib/ruby_app/elements/navigation/base/base_breadcrumbs.rb +3 -3
- data/lib/ruby_app/elements/navigation/page_link.js.haml +1 -1
- data/lib/ruby_app/elements/navigation/page_link.rb +3 -3
- data/lib/ruby_app/elements/navigation/page_menu.js.haml +1 -1
- data/lib/ruby_app/elements/navigation/page_menu.rb +3 -3
- data/lib/ruby_app/elements/pages/authentication/open_id/authentication_page.rb +2 -2
- data/lib/ruby_app/elements/pages/authentication/open_id/ax_authentication_page.rb +2 -2
- data/lib/ruby_app/elements/pages/authentication/open_id/google_authentication_page.rb +1 -1
- data/lib/ruby_app/elements/pages/authentication/open_id/my_open_id_authentication_page.rb +1 -1
- data/lib/ruby_app/elements/pages/authentication/open_id/yahoo_authentication_page.rb +1 -1
- data/lib/ruby_app/elements/pages/default_page.rb +1 -1
- data/lib/ruby_app/elements/pages/exception_page.html.haml +0 -2
- data/lib/ruby_app/elements/pages/settings_page.rb +2 -2
- data/lib/ruby_app/elements/pages/test_pages/button_test_page.css.haml +3 -0
- data/lib/ruby_app/elements/pages/test_pages/button_test_page.html.haml +7 -0
- data/lib/ruby_app/elements/pages/test_pages/button_test_page.js.haml +3 -0
- data/lib/ruby_app/elements/pages/test_pages/button_test_page.rb +39 -0
- data/lib/ruby_app/elements/pages/test_pages/default_test_page.rb +8 -15
- data/lib/ruby_app/elements/pages/test_pages/dialog_test_page.rb +1 -1
- data/lib/ruby_app/elements/pages/test_pages/exception_test_page.html.haml +5 -0
- data/lib/ruby_app/elements/pages/test_pages/exception_test_page.rb +33 -0
- data/lib/ruby_app/elements/pages/test_pages/input_test_page.css.haml +1 -0
- data/lib/ruby_app/elements/pages/test_pages/input_test_page.html.haml +3 -0
- data/lib/ruby_app/elements/pages/test_pages/input_test_page.js.haml +1 -0
- data/lib/ruby_app/elements/pages/test_pages/input_test_page.rb +2 -0
- data/lib/ruby_app/elements/pages/test_pages/link_test_page.css.haml +3 -0
- data/lib/ruby_app/elements/pages/test_pages/link_test_page.html.haml +7 -0
- data/lib/ruby_app/elements/pages/test_pages/link_test_page.js.haml +3 -0
- data/lib/ruby_app/elements/pages/test_pages/link_test_page.rb +39 -0
- data/lib/ruby_app/elements/pages/test_pages/linked_test_page.css.haml +2 -0
- data/lib/ruby_app/elements/pages/test_pages/linked_test_page.html.haml +5 -0
- data/lib/ruby_app/elements/pages/test_pages/linked_test_page.js.haml +2 -0
- data/lib/ruby_app/elements/pages/test_pages/linked_test_page.rb +30 -0
- data/lib/ruby_app/elements/pages/test_pages/list_test_page.css.haml +1 -0
- data/lib/ruby_app/elements/pages/test_pages/list_test_page.html.haml +2 -1
- data/lib/ruby_app/elements/pages/test_pages/list_test_page.js.haml +1 -0
- data/lib/ruby_app/elements/pages/test_pages/list_test_page.rb +16 -11
- data/lib/ruby_app/elements/pages/test_pages/markdown_test_page.css.haml +2 -0
- data/lib/ruby_app/elements/pages/test_pages/markdown_test_page.html.haml +5 -0
- data/lib/ruby_app/elements/pages/test_pages/markdown_test_page.js.haml +2 -0
- data/lib/ruby_app/elements/pages/test_pages/markdown_test_page.rb +38 -0
- data/lib/ruby_app/elements/pages/test_pages/select_test_page.rb +44 -0
- data/lib/ruby_app/elements/pages/test_pages/test_page.html.haml +14 -0
- data/lib/ruby_app/elements/pages/test_pages/test_page.rb +42 -0
- data/lib/ruby_app/language.rb +9 -12
- data/lib/ruby_app/log.rb +19 -9
- data/lib/ruby_app/mixins/{configuration.rb → configure_mixin.rb} +2 -2
- data/lib/ruby_app/mixins/{delegate.rb → delegate_mixin.rb} +1 -1
- data/lib/ruby_app/mixins/{hash.rb → hash_mixin.rb} +5 -1
- data/lib/ruby_app/mixins/{render.rb → render_mixin.rb} +2 -2
- data/lib/ruby_app/mixins/{route.rb → route_mixin.rb} +5 -5
- data/lib/ruby_app/mixins/{template.rb → template_mixin.rb} +11 -11
- data/lib/ruby_app/mixins/{translate.rb → translate_mixin.rb} +1 -1
- data/lib/ruby_app/rack/application.rb +3 -3
- data/lib/ruby_app/rack/route.rb +14 -30
- data/lib/ruby_app/request.rb +36 -13
- data/lib/ruby_app/session.rb +17 -23
- data/lib/ruby_app/translations/en.yml +77 -15
- data/lib/ruby_app/version.rb +1 -1
- data/rakefile +1 -12
- data/spec/application_spec.rb +25 -0
- data/spec/configuration_spec.rb +25 -0
- data/spec/element_spec.rb +54 -5
- data/spec/elements/navigation/breadcrumbs_spec.rb +17 -25
- data/spec/elements/page_spec.rb +2 -13
- data/spec/language_spec.rb +25 -0
- data/spec/log_spec.rb +25 -0
- data/spec/mixins/configure_mixin_spec.rb +24 -0
- data/spec/mixins/delegate_mixin_spec.rb +28 -0
- data/spec/mixins/hash_mixin_spec.rb +39 -0
- data/spec/mixins/render_mixin_spec.rb +127 -0
- data/spec/mixins/route_mixin_spec.rb +60 -0
- data/spec/mixins/{template_spec.rb → template_mixin_spec.rb} +3 -3
- data/spec/mixins/test_a.css.haml +4 -3
- data/spec/mixins/test_a.html.haml +0 -1
- data/spec/mixins/test_a.js.haml +4 -3
- data/spec/mixins/test_b.css.haml +4 -4
- data/spec/mixins/test_b.js.haml +2 -2
- data/spec/mixins/test_c.css.haml +4 -4
- data/spec/mixins/test_c.js.haml +2 -2
- data/spec/mixins/translate_mixin_spec.rb +25 -0
- data/spec/request_spec.rb +25 -0
- data/spec/session_spec.rb +39 -0
- data/spec/spec_helper.rb +7 -0
- data/spec/support/shared.rb +19 -5
- metadata +75 -38
- data/features/breadcrumbs.feature +0 -11
- data/features/content.feature +0 -16
- data/features/exception.feature +0 -53
- data/features/input.feature +0 -13
- data/features/list.feature +0 -12
- data/features/month.feature +0 -14
- data/spec/mixins/render_spec.rb +0 -191
- data/spec/mixins/route_spec.rb +0 -60
- data/spec/mixins/test_e.html.haml +0 -2
- data/spec/mixins/test_f.html.haml +0 -2
- data/spec/mixins/test_g.css.haml +0 -4
@@ -22,7 +22,7 @@ module RubyApp
|
|
22
22
|
super
|
23
23
|
|
24
24
|
@markdown = RubyApp::Elements::Markdown.new
|
25
|
-
@markdown.
|
25
|
+
@markdown.clicked do |element, event|
|
26
26
|
case event.name
|
27
27
|
when 'do_busy_dialog'
|
28
28
|
RubyApp::Session.show(event, RubyApp::Elements::Dialogs::BusyDialog.new(self.translate.busy_dialog.message)) do |_event|
|
@@ -0,0 +1,33 @@
|
|
1
|
+
module RubyApp
|
2
|
+
|
3
|
+
module Elements
|
4
|
+
|
5
|
+
module Pages
|
6
|
+
|
7
|
+
module TestPages
|
8
|
+
require 'ruby_app/elements/markdown'
|
9
|
+
require 'ruby_app/elements/pages/blank_page'
|
10
|
+
|
11
|
+
class ExceptionTestPage < RubyApp::Elements::Pages::BlankPage
|
12
|
+
|
13
|
+
template_path(:all, File.dirname(__FILE__))
|
14
|
+
|
15
|
+
def initialize
|
16
|
+
super
|
17
|
+
@markdown = RubyApp::Elements::Markdown.new
|
18
|
+
end
|
19
|
+
|
20
|
+
def render(format)
|
21
|
+
raise self.translate.exception
|
22
|
+
super(format)
|
23
|
+
end
|
24
|
+
|
25
|
+
end
|
26
|
+
|
27
|
+
end
|
28
|
+
|
29
|
+
end
|
30
|
+
|
31
|
+
end
|
32
|
+
|
33
|
+
end
|
@@ -1,9 +1,12 @@
|
|
1
1
|
- self.content_for(:content) do
|
2
2
|
/
|
3
3
|
#{__FILE__}
|
4
|
+
= @markdown.render(:html) do |element|
|
5
|
+
- element.content_for(:body, self.translate.content.body)
|
4
6
|
%label{:for => @input.element_id}
|
5
7
|
= self.translate.label.input
|
6
8
|
= @input.render(:html)
|
9
|
+
%br
|
7
10
|
%label{:for => @duration_input.element_id}
|
8
11
|
= self.translate.label.duration_input
|
9
12
|
= @duration_input.render(:html)
|
@@ -19,6 +19,8 @@ module RubyApp
|
|
19
19
|
def initialize
|
20
20
|
super
|
21
21
|
|
22
|
+
@markdown = RubyApp::Elements::Markdown.new
|
23
|
+
|
22
24
|
@input = RubyApp::Elements::Input.new
|
23
25
|
@input.changed do |element, event|
|
24
26
|
RubyApp::Session.show(event, RubyApp::Elements::Dialogs::MessageDialog.new(self.translate.message_dialog.message.title,
|
@@ -0,0 +1,39 @@
|
|
1
|
+
module RubyApp
|
2
|
+
|
3
|
+
module Elements
|
4
|
+
|
5
|
+
module Pages
|
6
|
+
|
7
|
+
module TestPages
|
8
|
+
require 'ruby_app/elements/link'
|
9
|
+
require 'ruby_app/elements/markdown'
|
10
|
+
require 'ruby_app/elements/pages/blank_page'
|
11
|
+
require 'ruby_app/elements/pages/test_pages/linked_test_page'
|
12
|
+
require 'ruby_app/session'
|
13
|
+
|
14
|
+
class LinkTestPage < RubyApp::Elements::Pages::BlankPage
|
15
|
+
|
16
|
+
template_path(:all, File.dirname(__FILE__))
|
17
|
+
|
18
|
+
def initialize
|
19
|
+
super
|
20
|
+
|
21
|
+
@markdown = RubyApp::Elements::Markdown.new
|
22
|
+
|
23
|
+
@link = RubyApp::Elements::Link.new
|
24
|
+
@link.clicked do |element, event|
|
25
|
+
RubyApp::Session.pages.push(RubyApp::Elements::Pages::TestPages::LinkedTestPage.new)
|
26
|
+
event.refresh
|
27
|
+
end
|
28
|
+
|
29
|
+
end
|
30
|
+
|
31
|
+
end
|
32
|
+
|
33
|
+
end
|
34
|
+
|
35
|
+
end
|
36
|
+
|
37
|
+
end
|
38
|
+
|
39
|
+
end
|
@@ -0,0 +1,30 @@
|
|
1
|
+
module RubyApp
|
2
|
+
|
3
|
+
module Elements
|
4
|
+
|
5
|
+
module Pages
|
6
|
+
|
7
|
+
module TestPages
|
8
|
+
require 'ruby_app/elements/markdown'
|
9
|
+
require 'ruby_app/elements/pages/blank_page'
|
10
|
+
|
11
|
+
class LinkedTestPage < RubyApp::Elements::Pages::BlankPage
|
12
|
+
|
13
|
+
template_path(:all, File.dirname(__FILE__))
|
14
|
+
|
15
|
+
def initialize
|
16
|
+
super
|
17
|
+
|
18
|
+
@markdown = RubyApp::Elements::Markdown.new
|
19
|
+
|
20
|
+
end
|
21
|
+
|
22
|
+
end
|
23
|
+
|
24
|
+
end
|
25
|
+
|
26
|
+
end
|
27
|
+
|
28
|
+
end
|
29
|
+
|
30
|
+
end
|
@@ -6,6 +6,7 @@ module RubyApp
|
|
6
6
|
|
7
7
|
module TestPages
|
8
8
|
require 'ruby_app/elements/dialogs/message_dialog'
|
9
|
+
require 'ruby_app/elements/markdown'
|
9
10
|
require 'ruby_app/elements/pages/blank_page'
|
10
11
|
require 'ruby_app/elements/list'
|
11
12
|
require 'ruby_app/elements/lists/select'
|
@@ -18,26 +19,30 @@ module RubyApp
|
|
18
19
|
def initialize
|
19
20
|
super
|
20
21
|
|
22
|
+
@markdown = RubyApp::Elements::Markdown.new
|
23
|
+
|
21
24
|
@list = RubyApp::Elements::List.new
|
22
|
-
@list.
|
25
|
+
@list.items += [ 'Item 01',
|
26
|
+
'Item 02',
|
27
|
+
'Item 03',
|
28
|
+
'Item 04',
|
29
|
+
'Item 05' ]
|
30
|
+
@list.clicked do |element, event|
|
23
31
|
RubyApp::Session.show(event, RubyApp::Elements::Dialogs::MessageDialog.new(self.translate.message_dialog.message.title,
|
24
32
|
self.translate.message_dialog.message.message(event.item)))
|
25
33
|
end
|
26
34
|
|
27
|
-
@list.items += [ 'Item 01',
|
28
|
-
'Item 02',
|
29
|
-
'Item 03' ]
|
30
|
-
|
31
35
|
@select = RubyApp::Elements::Lists::Select.new
|
32
|
-
@select.
|
36
|
+
@select.items += [ 'Item 11',
|
37
|
+
'Item 12',
|
38
|
+
'Item 13',
|
39
|
+
'Item 14',
|
40
|
+
'Item 15' ]
|
41
|
+
@select.clicked do |element, event|
|
33
42
|
RubyApp::Session.show(event, RubyApp::Elements::Dialogs::MessageDialog.new(self.translate.message_dialog.message.title,
|
34
|
-
self.translate.message_dialog.message.message(
|
43
|
+
self.translate.message_dialog.message.message(@select.selected_item)))
|
35
44
|
end
|
36
45
|
|
37
|
-
@select.items += [ 'Item 04',
|
38
|
-
'Item 05',
|
39
|
-
'Item 06' ]
|
40
|
-
|
41
46
|
end
|
42
47
|
|
43
48
|
end
|
@@ -0,0 +1,38 @@
|
|
1
|
+
module RubyApp
|
2
|
+
|
3
|
+
module Elements
|
4
|
+
|
5
|
+
module Pages
|
6
|
+
|
7
|
+
module TestPages
|
8
|
+
require 'ruby_app/elements/markdown'
|
9
|
+
require 'ruby_app/elements/pages/blank_page'
|
10
|
+
require 'ruby_app/elements/pages/test_pages/linked_test_page'
|
11
|
+
require 'ruby_app/session'
|
12
|
+
|
13
|
+
class MarkdownTestPage < RubyApp::Elements::Pages::BlankPage
|
14
|
+
|
15
|
+
template_path(:all, File.dirname(__FILE__))
|
16
|
+
|
17
|
+
def initialize
|
18
|
+
super
|
19
|
+
|
20
|
+
@markdown = RubyApp::Elements::Markdown.new
|
21
|
+
@markdown.clicked do |element, event|
|
22
|
+
if event.name == "go"
|
23
|
+
RubyApp::Session.pages.push(RubyApp::Elements::Pages::TestPages::LinkedTestPage.new)
|
24
|
+
event.refresh
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
28
|
+
end
|
29
|
+
|
30
|
+
end
|
31
|
+
|
32
|
+
end
|
33
|
+
|
34
|
+
end
|
35
|
+
|
36
|
+
end
|
37
|
+
|
38
|
+
end
|
@@ -0,0 +1,44 @@
|
|
1
|
+
module RubyApp
|
2
|
+
|
3
|
+
module Elements
|
4
|
+
|
5
|
+
module Pages
|
6
|
+
|
7
|
+
module TestPages
|
8
|
+
require 'ruby_app/elements/dialogs/message_dialog'
|
9
|
+
require 'ruby_app/elements/markdown'
|
10
|
+
require 'ruby_app/elements/pages/blank_page'
|
11
|
+
require 'ruby_app/elements/lists/select'
|
12
|
+
require 'ruby_app/session'
|
13
|
+
|
14
|
+
class SelectTestPage < RubyApp::Elements::Pages::BlankPage
|
15
|
+
|
16
|
+
template_path(:all, File.dirname(__FILE__))
|
17
|
+
|
18
|
+
def initialize
|
19
|
+
super
|
20
|
+
|
21
|
+
@markdown = RubyApp::Elements::Markdown.new
|
22
|
+
|
23
|
+
@select = RubyApp::Elements::Select.new
|
24
|
+
@select.items += [ 'Item 01',
|
25
|
+
'Item 02',
|
26
|
+
'Item 03',
|
27
|
+
'Item 04',
|
28
|
+
'Item 05' ]
|
29
|
+
@select.clicked do |element, event|
|
30
|
+
RubyApp::Session.show(event, RubyApp::Elements::Dialogs::MessageDialog.new(self.translate.message_dialog.message.title,
|
31
|
+
self.translate.message_dialog.message.message(@select.selected_item)))
|
32
|
+
end
|
33
|
+
|
34
|
+
end
|
35
|
+
|
36
|
+
end
|
37
|
+
|
38
|
+
end
|
39
|
+
|
40
|
+
end
|
41
|
+
|
42
|
+
end
|
43
|
+
|
44
|
+
end
|
@@ -0,0 +1,14 @@
|
|
1
|
+
- self.content_for(:content) do
|
2
|
+
/
|
3
|
+
#{__FILE__}
|
4
|
+
= @markdown.render(:html) do |element|
|
5
|
+
- element.content_for(:body, self.translate.content.body)
|
6
|
+
%ul
|
7
|
+
%li#rendered
|
8
|
+
= self.translate.rendered
|
9
|
+
%li#loaded
|
10
|
+
= self.translate.not_loaded
|
11
|
+
%li#triggered
|
12
|
+
= self.translate.not_triggered
|
13
|
+
%li#unloaded
|
14
|
+
= self.translate.not_unloaded
|
@@ -0,0 +1,42 @@
|
|
1
|
+
module RubyApp
|
2
|
+
|
3
|
+
module Elements
|
4
|
+
|
5
|
+
module Pages
|
6
|
+
|
7
|
+
module TestPages
|
8
|
+
require 'ruby_app/elements/markdown'
|
9
|
+
require 'ruby_app/elements/pages/blank_page'
|
10
|
+
|
11
|
+
class TestPage < RubyApp::Elements::Pages::BlankPage
|
12
|
+
|
13
|
+
template_path(:all, File.dirname(__FILE__))
|
14
|
+
|
15
|
+
def initialize
|
16
|
+
super
|
17
|
+
|
18
|
+
self.interval = 2
|
19
|
+
|
20
|
+
@markdown = RubyApp::Elements::Markdown.new
|
21
|
+
|
22
|
+
self.loaded do |element, event|
|
23
|
+
event.update_text('li#loaded', self.translate.loaded)
|
24
|
+
end
|
25
|
+
self.triggered do |element, event|
|
26
|
+
event.update_text('li#triggered', self.translate.triggered)
|
27
|
+
end
|
28
|
+
self.unloaded do |element, event|
|
29
|
+
event.update_text('li#unloaded', self.translate.unloaded)
|
30
|
+
end
|
31
|
+
|
32
|
+
end
|
33
|
+
|
34
|
+
end
|
35
|
+
|
36
|
+
end
|
37
|
+
|
38
|
+
end
|
39
|
+
|
40
|
+
end
|
41
|
+
|
42
|
+
end
|
data/lib/ruby_app/language.rb
CHANGED
@@ -4,32 +4,29 @@ require 'bundler/setup'
|
|
4
4
|
require 'r18n-core'
|
5
5
|
|
6
6
|
module RubyApp
|
7
|
-
require 'ruby_app/
|
7
|
+
require 'ruby_app/application'
|
8
|
+
require 'ruby_app/mixins/delegate_mixin'
|
9
|
+
require 'ruby_app/request'
|
8
10
|
|
9
11
|
class Language < R18n::I18n
|
10
|
-
extend RubyApp::Mixins::
|
11
|
-
|
12
|
-
def reload
|
13
|
-
R18n.get.reload!
|
14
|
-
end
|
12
|
+
extend RubyApp::Mixins::DelegateMixin
|
15
13
|
|
16
14
|
def self.get
|
17
15
|
R18n.get
|
18
16
|
end
|
19
17
|
|
20
|
-
def self.load
|
21
|
-
|
22
|
-
R18n.thread_set(language)
|
18
|
+
def self.load!
|
19
|
+
R18n.thread_set(RubyApp::Language.new(RubyApp::Request.language, RubyApp::Application.options.translations_paths))
|
23
20
|
if block_given?
|
24
21
|
begin
|
25
|
-
yield
|
22
|
+
yield
|
26
23
|
ensure
|
27
|
-
|
24
|
+
self.unload!
|
28
25
|
end
|
29
26
|
end
|
30
27
|
end
|
31
28
|
|
32
|
-
def self.unload
|
29
|
+
def self.unload!
|
33
30
|
R18n.thread_set(nil)
|
34
31
|
end
|
35
32
|
|