Class: RedmineExtensions::EasyQueryHelpers::Outputs
- Inherits:
-
Object
- Object
- RedmineExtensions::EasyQueryHelpers::Outputs
show all
- Includes:
- Enumerable
- Defined in:
- lib/redmine_extensions/easy_query_helpers/outputs.rb
Overview
—– OUTPUTS HELPER CLASS —-
Instance Method Summary
collapse
Constructor Details
#initialize(presenter, view_context = nil) ⇒ Outputs
7
8
9
10
11
12
13
14
15
|
# File 'lib/redmine_extensions/easy_query_helpers/outputs.rb', line 7
def initialize(presenter, view_context = nil)
if presenter.is_a?(RedmineExtensions::BasePresenter)
@presenter = presenter
@query = @presenter.model
else
@presenter = @query = presenter
end
@view_context = view_context
end
|
Dynamic Method Handling
This class handles dynamic methods through the method_missing method
#method_missing(name, *args) ⇒ Object
67
68
69
70
71
72
73
|
# File 'lib/redmine_extensions/easy_query_helpers/outputs.rb', line 67
def method_missing(name, *args)
if name.to_s.ends_with?('?')
output_enabled?(name.to_s[0..-2])
else
super
end
end
|
Instance Method Details
#available_output_names ⇒ Object
39
40
41
|
# File 'lib/redmine_extensions/easy_query_helpers/outputs.rb', line 39
def available_output_names
@available_output_names ||= RedmineExtensions::QueryOutput.available_outputs_for( @query )
end
|
#available_outputs ⇒ Object
43
44
45
|
# File 'lib/redmine_extensions/easy_query_helpers/outputs.rb', line 43
def available_outputs
@available_outputs ||= RedmineExtensions::QueryOutput.available_output_klasses_for( @query ).map{|klass| klass.new(@presenter, self) }
end
|
#each(style = :enabled, &block) ⇒ Object
25
26
27
28
29
30
31
|
# File 'lib/redmine_extensions/easy_query_helpers/outputs.rb', line 25
def each(style = :enabled, &block)
if style == :enabled
outputs.each(&block)
else
available_outputs.each(&block)
end
end
|
#enabled_outputs ⇒ Object
33
34
35
36
37
|
# File 'lib/redmine_extensions/easy_query_helpers/outputs.rb', line 33
def enabled_outputs
res = @query.outputs
res << 'list' if res.empty? && available_outputs.empty?
res
end
|
#output_enabled?(output) ⇒ Boolean
47
48
49
|
# File 'lib/redmine_extensions/easy_query_helpers/outputs.rb', line 47
def output_enabled?(output)
enabled_outputs.include?(output.to_s)
end
|
21
22
23
|
# File 'lib/redmine_extensions/easy_query_helpers/outputs.rb', line 21
def outputs
@outputs ||= enabled_outputs.map{|o| RedmineExtensions::QueryOutput.output_klass_for(o).new(@presenter, self) }.sort_by{|a| a.order}
end
|
#render_data ⇒ Object
59
60
61
62
63
64
65
|
# File 'lib/redmine_extensions/easy_query_helpers/outputs.rb', line 59
def render_data
if outputs.any?
outputs.map{ |output| output.render_data }.join('').html_safe
else
view_context.l(:label_no_output)
end
end
|
#render_edit ⇒ Object
55
56
57
|
# File 'lib/redmine_extensions/easy_query_helpers/outputs.rb', line 55
def render_edit
outputs.map{ |output| output.render_edit }.join('').html_safe
end
|
#render_edit_selects(style = :check_box, options = {}) ⇒ Object
51
52
53
|
# File 'lib/redmine_extensions/easy_query_helpers/outputs.rb', line 51
def render_edit_selects(style=:check_box, options={})
available_output_instances.map{|o| o.render_edit_box(style, options) }.join('').html_safe
end
|
#view_context ⇒ Object
17
18
19
|
# File 'lib/redmine_extensions/easy_query_helpers/outputs.rb', line 17
def view_context
@view_context || @presenter.h
end
|