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



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

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



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

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

#create_default_public_layoutObject



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

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
27
# File 'lib/generators/gluttonberg/installer/installer_generator.rb', line 24

def create_migration_file
  migration_template 'gluttonberg_migration.rb', 'db/migrate/gluttonberg_migration.rb'
  rake("gluttonberg_engine:install:migrations")
end

#create_page_descriptions_fileObject



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

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

#create_sitemaprb_fileObject



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

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

#localization_configObject



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
81
# File 'lib/generators/gluttonberg/installer/installer_generator.rb', line 55

def localization_config

  application %{
   # Gluttonberg Related config

   # config.cms_based_public_css = false
   # config.custom_css_for_cms = 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"}
   }
   config.filter_parameters += [:password_confirmation]

  }

end

#run_migrationObject



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

def run_migration
  rake("db:migrate")
end