Class: RailsViewComponentBuilder

Inherits:
Object
  • Object
show all
Defined in:
lib/generators/rails_view_component/templates/rails_view_component_builder.rb

Instance Method Summary collapse

Constructor Details

#initializeRailsViewComponentBuilder



2
3
4
5
# File 'lib/generators/rails_view_component/templates/rails_view_component_builder.rb', line 2

def initialize
  @count = 0
  @components = []
end

Instance Method Details

#all_javascriptsObject



16
17
18
# File 'lib/generators/rails_view_component/templates/rails_view_component_builder.rb', line 16

def all_javascripts
  @components.inject([]){|acc,c|acc + c.javascripts}.uniq
end

#all_stylesheetsObject



19
20
21
# File 'lib/generators/rails_view_component/templates/rails_view_component_builder.rb', line 19

def all_stylesheets
  @components.inject([]){|acc,c|acc + c.stylesheets}.uniq
end

#destribute(name, erb_params = {}, ajax_params = {}) ⇒ Object



6
7
8
9
10
11
12
13
14
# File 'lib/generators/rails_view_component/templates/rails_view_component_builder.rb', line 6

def destribute name, erb_params={}, ajax_params = {}
  namespace = name.to_s.camelize
  name = namespace.split("::").last
  @count += 1
  klass = Module.const_get("#{namespace}::#{name}Model")
  obj = klass.new @count
  @components.push obj
  obj.html(erb_params, ajax_params).html_safe
end

#refer_to_javascriptsObject



23
24
25
26
# File 'lib/generators/rails_view_component/templates/rails_view_component_builder.rb', line 23

def refer_to_javascripts
  all_javascripts.map{|js|
    "<script type='text/javascript' src='#{js}'></script>" }.join
end

#refer_to_stylesheetsObject



27
28
29
30
# File 'lib/generators/rails_view_component/templates/rails_view_component_builder.rb', line 27

def refer_to_stylesheets
  all_stylesheets.map{|css|
    "<link rel='stylesheet' type='text/css' href='#{css}'>" }.join
end