Class: FlyAdmin::InstallGenerator

Inherits:
Rails::Generators::Base
  • Object
show all
Defined in:
lib/generators/fly_admin/install/install_generator.rb

Constant Summary collapse

FLY_ADMIN_PATH =
Gem.loaded_specs['fly_admin'].full_gem_path

Instance Method Summary collapse

Instance Method Details

#add_fly_admin_routeObject



23
24
25
26
27
# File 'lib/generators/fly_admin/install/install_generator.rb', line 23

def add_fly_admin_route
  if engine_not_mounted?
    route "mount FlyAdmin::Engine, at: '/fly_admin'"
  end
end

#bootstrap_adminObject

Create Admin user



30
31
32
33
34
35
36
# File 'lib/generators/fly_admin/install/install_generator.rb', line 30

def bootstrap_admin
  if options['with-admin-user']
    if admin_not_exists? 
      rake 'fly_admin:bootstrap:admin'
    end
  end
end

#bootstrap_countriesObject

Create records on models: Country, Paysite, which needed for displaying footer



39
40
41
42
43
# File 'lib/generators/fly_admin/install/install_generator.rb', line 39

def bootstrap_countries
  if countries_not_bootstraped?
    rake 'fly_admin:bootstrap:countries'
  end
end

#bootstrap_paysitesObject



45
46
47
48
49
# File 'lib/generators/fly_admin/install/install_generator.rb', line 45

def bootstrap_paysites
  if paysites_not_bootstraped?
    rake 'fly_admin:bootstrap:paysites'
  end
end

#copy_fly_admin_initializerObject



10
11
12
# File 'lib/generators/fly_admin/install/install_generator.rb', line 10

def copy_fly_admin_initializer
  copy_file "fly_admin_initializer.rb", "config/initializers/fly_admin.rb"
end

#delete_initializer_page_cacheObject



19
20
21
# File 'lib/generators/fly_admin/install/install_generator.rb', line 19

def delete_initializer_page_cache
  remove_file('config/initializers/page_cache')
end

#delete_page_cacheObject

Delete old files in main app



15
16
17
# File 'lib/generators/fly_admin/install/install_generator.rb', line 15

def delete_page_cache
  remove_file('lib/page_cache.rb')
end

#migrate_footersObject

Migrate existing footers



52
53
54
55
56
# File 'lib/generators/fly_admin/install/install_generator.rb', line 52

def migrate_footers
  if options['with-migrating-footer']
    rake 'fly_admin:migrate:footers'
  end
end

#replace_connection_apiObject



68
69
70
71
72
73
74
# File 'lib/generators/fly_admin/install/install_generator.rb', line 68

def replace_connection_api
  remove_file('lib/connection_api.rb')
  controller_path = "#{Rails.root}/app/controllers/application_controller.rb"
  controller_contents = File.read(controller_path)
  controller_contents.gsub!(/ ConnectionApi/, " FlyAdmin::Imbs::ConnectionApi")
  File.open(controller_path, 'w') { |f| f.write(controller_contents) }
end

#replace_state_machine_with_state_machinesObject



58
59
60
61
62
63
64
65
66
# File 'lib/generators/fly_admin/install/install_generator.rb', line 58

def replace_state_machine_with_state_machines
  gemfile_path = "#{Rails.root}/Gemfile"
  gemfile = File.read(gemfile_path)
  new_contents = gemfile.gsub(/gem "state_machine", :git => '.*'/, "gem 'state_machines-activerecord'")
  new_contents.gsub!(/# using git.*295/, "")
  File.open(gemfile_path, 'w') {|f| f.write(new_contents) }  
  ap "Running bundle install", :color => { :string => :green }
  `bundle install`
end