Sha256: 1f51cf20bdd211037fe8a1c9f0704ef33501e0feb92804dc9aa4ac2d94bdf1f3

Contents?: true

Size: 1.69 KB

Versions: 2

Compression:

Stored size: 1.69 KB

Contents

class BrowserCmsDemoSiteGenerator < Rails::Generator::Base
  
  def source_root
    "/"
  end
  
  def templates_dir(file=nil)
    File.expand_path(File.join(File.dirname(__FILE__), "templates", file))
  end
  
  def manifest
    record do |m|
      # Copy all public files
      Dir["#{Cms.root}/public/themes/blue_steel/**/*"].each do |f|
        if File.file?(f)
          file_name = f.sub("#{Cms.root}/", '')
          m.directory File.dirname(file_name)
          m.file f, file_name
        end
      end
      
      m.migration_template templates_dir('migration.rb'), 'db/migrate', :assigns => {
        :data => data,
        :page_templates => page_templates,
        :page_partials => page_partials
      }, :migration_file_name => "load_demo_site_data"
      
    end
  end
  
  def data
    open(File.join(Cms.root, "db", "demo", "data.rb")){|f| f.read}
  end
  
  # Returns an array of strings that are ruby code.
  # Each string is a hash that should be passed to the create_page_template method
  # in the migration
  def page_templates
    Dir["#{Cms.root}/db/demo/page_templates/*.erb"].map do |f|
      name, format, handler = File.basename(f).split('.')
      %Q{create_page_template(:#{name}, 
        :name => "#{name}", :format => "#{format}", :handler => "#{handler}", 
        :body => <<-HTML
#{open(f){|f| f.read}}
      HTML
      )}
    end
  end
  
  def page_partials
    Dir["#{Cms.root}/db/demo/page_partials/*.erb"].map do |f|
      name, format, handler = File.basename(f).split('.')
      %Q{create_page_partial(:#{name}, 
        :name => "#{name}", :format => "#{format}", :handler => "#{handler}", 
        :body => <<-HTML
#{open(f){|f| f.read}}
      HTML
      )}
    end
  end
  
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
nate-browsercms-3.0.210 rails_generators/browser_cms_demo_site/browser_cms_demo_site_generator.rb
nate-browsercms-3.0.211 rails_generators/browser_cms_demo_site/browser_cms_demo_site_generator.rb