Module: Bootstrap::ComponentLoader

Included in:
Bootstrap, Bootstrapper
Defined in:
card-mod-bootstrap/lib/bootstrap/component_loader.rb

Instance Method Summary collapse

Instance Method Details

#componentsObject



17
18
19
20
21
22
# File 'card-mod-bootstrap/lib/bootstrap/component_loader.rb', line 17

def components
  path = File.expand_path "component/*.rb", __dir__
  Dir.glob(path).map do |file|
    File.basename file, ".rb"
  end
end

#include_component(component) ⇒ Object



10
11
12
13
14
15
# File 'card-mod-bootstrap/lib/bootstrap/component_loader.rb', line 10

def include_component component
  component_class = to_const component.camelcase
  define_method component do |*args, &block|
    component_class.render self, *args, &block
  end
end

#load_componentsObject



3
4
5
6
7
8
# File 'card-mod-bootstrap/lib/bootstrap/component_loader.rb', line 3

def load_components
  components.each do |component|
    require_relative "component/#{component}"
    include_component component
  end
end

#to_const(name) ⇒ Object



24
25
26
# File 'card-mod-bootstrap/lib/bootstrap/component_loader.rb', line 24

def to_const name
  self.class.const_get "::Bootstrap::Component::#{name.camelcase}"
end