Sha256: 1baf109ec309975092bcdd2b111e2fb619d28f2fd407128800d597d0fa017700

Contents?: true

Size: 846 Bytes

Versions: 4

Compression:

Stored size: 846 Bytes

Contents

class RailsViewComponentBuilder
  def initialize
    @count = 0
    @components = []
  end
  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

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

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


end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
rails_view_component-1.0.3 lib/generators/rails_view_component/templates/rails_view_component_builder.rb
rails_view_component-1.0.2 lib/generators/rails_view_component/templates/rails_view_component_builder.rb
rails_view_component-1.0.1 lib/generators/rails_view_component/templates/rails_view_component_builder.rb
rails_view_component-1.0.0 lib/generators/rails_view_component/templates/rails_view_component_builder.rb