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
Returns a new instance of 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
87
88
89
90
91
92
93
|
# File 'lib/redmine_extensions/easy_query_helpers/outputs.rb', line 87
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
#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
38
39
40
41
42
|
# File 'lib/redmine_extensions/easy_query_helpers/outputs.rb', line 33
def enabled_outputs
available = available_output_names.map(&:to_s)
res = if available.one?
available
else
Array(@query.outputs).map(&:to_s) & available
end
res << 'list' if res.empty?
res
end
|
83
84
85
|
# File 'lib/redmine_extensions/easy_query_helpers/outputs.rb', line 83
def h
view_context
end
|
#output_enabled?(output) ⇒ Boolean
52
53
54
|
# File 'lib/redmine_extensions/easy_query_helpers/outputs.rb', line 52
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, @query).new(@presenter, self) }.sort_by{|a| a.order}
end
|
#render_data ⇒ Object
75
76
77
78
79
80
81
|
# File 'lib/redmine_extensions/easy_query_helpers/outputs.rb', line 75
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
71
72
73
|
# File 'lib/redmine_extensions/easy_query_helpers/outputs.rb', line 71
def render_edit
outputs.map{ |output| output.render_edit }.join.html_safe
end
|
#render_edit_selects(style = :check_box, options = {}) ⇒ Object
56
57
58
59
60
61
62
63
64
65
66
67
68
69
|
# File 'lib/redmine_extensions/easy_query_helpers/outputs.rb', line 56
def render_edit_selects(style=:check_box, options={})
options.delete(:enabled)
if available_outputs.count == 1
available_outputs.first.render_edit_box(:hidden_field, options)
else
h.content_tag(:p) do
s = h.content_tag(:label, h.l(:label_easy_query_outputs))
available_outputs.each do |o|
s << o.render_edit_box(style, options.dup)
end
s
end
end
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
|