Class: Namespace
- Inherits:
-
Object
- Object
- Namespace
- Extended by:
- Attribute
- Defined in:
- lib/athergin/namespace.rb
Instance Attribute Summary collapse
-
#display_order ⇒ Object
readonly
Returns the value of attribute display_order.
-
#reports ⇒ Object
readonly
Returns the value of attribute reports.
-
#transformers ⇒ Object
readonly
Returns the value of attribute transformers.
Class Method Summary collapse
Instance Method Summary collapse
-
#css_class_name ⇒ Object
todo: think this over, models are probably not a good place for the css class name.
- #current? ⇒ Boolean
-
#initialize(name, display_order) ⇒ Namespace
constructor
A new instance of Namespace.
- #report(name, &block) ⇒ Object
-
#report_objects ⇒ Object
todo: change this to reports.
- #to_h ⇒ Object
- #transformer(name, &block) ⇒ Object
-
#transformer_objects ⇒ Object
todo: change this to transformers.
Methods included from Attribute
Constructor Details
#initialize(name, display_order) ⇒ Namespace
Returns a new instance of Namespace.
31 32 33 34 35 |
# File 'lib/athergin/namespace.rb', line 31 def initialize(name, display_order) @name, @display_order = name, display_order @reports = {} @transformers = {} end |
Instance Attribute Details
#display_order ⇒ Object (readonly)
Returns the value of attribute display_order.
3 4 5 |
# File 'lib/athergin/namespace.rb', line 3 def display_order @display_order end |
#reports ⇒ Object (readonly)
Returns the value of attribute reports.
3 4 5 |
# File 'lib/athergin/namespace.rb', line 3 def reports @reports end |
#transformers ⇒ Object (readonly)
Returns the value of attribute transformers.
3 4 5 |
# File 'lib/athergin/namespace.rb', line 3 def transformers @transformers end |
Class Method Details
.all ⇒ Object
18 19 20 |
# File 'lib/athergin/namespace.rb', line 18 def all Platform.namespaces.values rescue [] end |
.displayable ⇒ Object
22 23 24 |
# File 'lib/athergin/namespace.rb', line 22 def displayable all.select { |n| n.report_objects.present? }.sort { |a,b| a.display_order <=> b.display_order } end |
.find_by_name(name) ⇒ Object
26 27 28 |
# File 'lib/athergin/namespace.rb', line 26 def find_by_name(name) all.find { |namespace| namespace.name == name.try(:to_sym) } end |
Instance Method Details
#css_class_name ⇒ Object
todo: think this over, models are probably not a good place for the css class name
66 67 68 |
# File 'lib/athergin/namespace.rb', line 66 def css_class_name current? ? 'active' : 'inactive' end |
#current? ⇒ Boolean
61 62 63 |
# File 'lib/athergin/namespace.rb', line 61 def current? name.eql? Platform.current_namespace.name end |
#report(name, &block) ⇒ Object
47 48 49 50 51 52 |
# File 'lib/athergin/namespace.rb', line 47 def report(name, &block) warn "warning: overriding report '#{ name }'" if @reports[name] @reports[name] = Report.new name, namespace: self @reports[name].instance_eval &block end |
#report_objects ⇒ Object
todo: change this to reports
38 39 40 |
# File 'lib/athergin/namespace.rb', line 38 def report_objects reports.values end |
#to_h ⇒ Object
6 7 8 9 10 11 12 13 14 15 |
# File 'lib/athergin/namespace.rb', line 6 def to_h methods = [:name, :description, :current?, :css_class_name, :report_objects] methods.map do |method| key, value = method.to_s.gsub(/\?$/,'').to_sym, send(method) value = '' if value.nil? value = value.to_data if value.is_a? Array [key, value] end.to_h end |
#transformer(name, &block) ⇒ Object
54 55 56 57 58 59 |
# File 'lib/athergin/namespace.rb', line 54 def transformer(name, &block) warn "warning: overriding transformer '#{ name }'" if @transformers[name] @transformers[name] = Transformer.new name @transformers[name].instance_eval &block end |
#transformer_objects ⇒ Object
todo: change this to transformers
43 44 45 |
# File 'lib/athergin/namespace.rb', line 43 def transformer_objects transformers.values end |