Class: Docks::Themes::API::Components::Config
- Inherits:
-
Object
- Object
- Docks::Themes::API::Components::Config
- Defined in:
- lib/docks_theme_api/components/base_component.rb
Instance Method Summary collapse
- #classes(default_classes = {}) ⇒ Object
- #conditional_classes(opts) ⇒ Object
- #defaults(opts = {}) ⇒ Object
-
#initialize(component) ⇒ Config
constructor
A new instance of Config.
Constructor Details
#initialize(component) ⇒ Config
Returns a new instance of Config.
66 67 68 |
# File 'lib/docks_theme_api/components/base_component.rb', line 66 def initialize(component) @component = component end |
Instance Method Details
#classes(default_classes = {}) ⇒ Object
76 77 78 79 80 81 |
# File 'lib/docks_theme_api/components/base_component.rb', line 76 def classes(default_classes = {}) default_classes = Components.standardize_classes(default_classes) @component.instance_variable_get(:@classes).merge!(default_classes) do |key, passed, default| passed.concat(default).uniq end end |
#conditional_classes(opts) ⇒ Object
83 84 85 86 87 88 89 90 91 92 93 94 95 |
# File 'lib/docks_theme_api/components/base_component.rb', line 83 def conditional_classes(opts) if (attribute = opts.delete(:if)) classes(opts) if @component.respond_to?(attribute) && !!@component.send(attribute) elsif (attribute = opts.delete(:unless)) classes(opts) if !@component.respond_to?(attribute) || !@component.send(attribute) elsif (attribute = opts.delete(:with)) return unless block_given? classes(yield @component.send(attribute)) elsif (attribute = opts.delete(:from)) return unless @component.respond_to?(attribute) classes(opts.fetch(@component.send(attribute), nil)) end end |
#defaults(opts = {}) ⇒ Object
70 71 72 73 74 |
# File 'lib/docks_theme_api/components/base_component.rb', line 70 def defaults(opts = {}) @component.instance_variable_get(:@attributes).merge!(opts) do |key, passed, default| passed.nil? ? default : passed end end |