Class: Gluttonberg::InstallerGenerator

Inherits:
Rails::Generators::Base
  • Object
show all
Includes:
Rails::Generators::Migration
Defined in:
lib/generators/gluttonberg/installer/installer_generator.rb

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.next_migration_number(dirname) ⇒ Object



11
12
13
14
15
16
17
# File 'lib/generators/gluttonberg/installer/installer_generator.rb', line 11

def self.next_migration_number(dirname)
  if ActiveRecord::Base.timestamped_migrations
    Time.now.utc.strftime("%Y%m%d%H%M%S")
  else
    "%.3d" % (current_migration_number(dirname) + 1)
  end
end

.source_rootObject



7
8
9
# File 'lib/generators/gluttonberg/installer/installer_generator.rb', line 7

def self.source_root
  @source_root ||= File.join(File.dirname(__FILE__), 'templates')
end

Instance Method Details

#add_memory_store_config_in_productionObject



82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
# File 'lib/generators/gluttonberg/installer/installer_generator.rb', line 82

def add_memory_store_config_in_production
  data = []
  file_path = File.join(Rails.root, "config", "environments" , "production.rb" )
  file = File.new(file_path)

  file.each_line do |line| 
    data << line
  end

  file.close

  file = File.new(file_path , "w" )
  data.reverse.each_with_index do |line, index|
    if line.include?("end")
      data[data.length-index-1] = "  config.cache_store = :memory_store\nend\n"
      break
    end
  end
  file.puts(data.join(""))
  file.close
end

#bootstrap_dataObject



48
49
50
51
52
# File 'lib/generators/gluttonberg/installer/installer_generator.rb', line 48

def bootstrap_data
  rake("gluttonberg:library:bootstrap")
  rake("gluttonberg:generate_default_locale")
  rake("gluttonberg:generate_or_update_default_settings")
end

#create_default_public_layoutObject



36
37
38
39
40
41
42
# File 'lib/generators/gluttonberg/installer/installer_generator.rb', line 36

def create_default_public_layout
  #create pages folder
  path = File.join(Rails.root, "app", "views" , "pages" )
  FileUtils.mkdir(path) unless File.exists?(path)
  #copy layout into host app
  template "public.html.haml", File.join('app/views/layouts', "public.html.haml")    
end

#create_delayed_job_script_fileObject



19
20
21
22
# File 'lib/generators/gluttonberg/installer/installer_generator.rb', line 19

def create_delayed_job_script_file
  template 'delayed_job_script', 'script/delayed_job'
  chmod 'script/delayed_job', 0755
end

#create_migration_fileObject



24
25
26
# File 'lib/generators/gluttonberg/installer/installer_generator.rb', line 24

def create_migration_file
  migration_template 'gluttonberg_migration.rb', 'db/migrate/gluttonberg_migration.rb'
end

#create_page_descriptions_fileObject



28
29
30
# File 'lib/generators/gluttonberg/installer/installer_generator.rb', line 28

def create_page_descriptions_file
  copy_file 'page_descriptions.rb', 'config/page_descriptions.rb'
end

#create_sitemaprb_fileObject



32
33
34
# File 'lib/generators/gluttonberg/installer/installer_generator.rb', line 32

def create_sitemaprb_file
  copy_file 'sitemap.rb', 'config/sitemap.rb'
end

#localization_configObject



54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
# File 'lib/generators/gluttonberg/installer/installer_generator.rb', line 54

def localization_config
  
  application %{
   # Gluttonberg Related config
   
   
   # config.cms_based_public_css = false   
   # config.custom_js_for_cms = false 
   config.localize = false  
   # By Default gluttonberg applications are localized. If you do not want localized application then uncomment following line.
   
   # By default membership system is disabled. uncommenting following line make it enabled. 
   # if email_verification is true then newly registered members have to verify their email address
   # config.enable_members = {:email_verification => true}
  
   # By default photo gallery is not visible in backend. 
   # config.enable_gallery = true  
     
   # You can customize your thumbnails. For geometry values please read ImageMagick documentation
   config.thumbnails = { 
     :jwysiwyg_image => {:label => "Thumb for jwysiwyg", :filename => "_jwysiwyg_image", :geometry => "250x200"} 
   }
   
    
  }
  
end

#run_migrationObject



44
45
46
# File 'lib/generators/gluttonberg/installer/installer_generator.rb', line 44

def run_migration
  rake("db:migrate")
end