Class: Kinney::Generators::InstallGenerator

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

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.source_rootObject



9
10
11
# File 'lib/generators/kinney/install/install_generator.rb', line 9

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

Instance Method Details

#add_gemsObject



108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
# File 'lib/generators/kinney/install/install_generator.rb', line 108

def add_gems
  gems = <<EOF


# added by Kinney
# once these are published as gems we can use them from there, until then we need to have them in our Gemfile
gem 'mediaelement_rails', :git => 'https://github.com/tobsch/mediaelement_rails.git'
gem 'webvtt', :git => 'https://github.com/jronallo/webvtt.git'

gem 'bootstrap-sass', git: 'https://github.com/thomas-mcdonald/bootstrap-sass.git', branch: 'master'
EOF
  inject_into_file 'Gemfile', :after => "source 'https://rubygems.org'" do
    gems
  end
end

#copy_initializerObject



97
98
99
# File 'lib/generators/kinney/install/install_generator.rb', line 97

def copy_initializer
  template 'active_admin.rb', 'config/initializers/active_admin.rb'
end

#create_active_admin_cssObject

ActiveAdmin setup



89
90
91
# File 'lib/generators/kinney/install/install_generator.rb', line 89

def create_active_admin_css
  template 'active_admin.css.scss', 'app/assets/stylesheets/active_admin.css.scss'
end

#create_active_admin_jsObject



93
94
95
# File 'lib/generators/kinney/install/install_generator.rb', line 93

def create_active_admin_js
  template 'active_admin.js', 'app/assets/javascripts/active_admin.js'
end

#create_application_nameObject



73
74
75
76
77
78
79
80
81
82
83
84
85
86
# File 'lib/generators/kinney/install/install_generator.rb', line 73

def create_application_name
  insert_into_file "app/helpers/application_helper.rb", after: "module ApplicationHelper\n" do
    application_name = ask "What is the name of your application?"
    text = <<EOF
  def application_name
    "#{application_name}"
  end

  def navbar_application_name
    application_name
  end
EOF
  end
end

#create_cssObject



25
26
27
28
29
# File 'lib/generators/kinney/install/install_generator.rb', line 25

def create_css
  remove_file("app/assets/stylesheets/application.css")
  create_file "app/assets/stylesheets/application.css.scss",
    %Q|@import "kinney";\n@import "font-awesome";|
end

#create_devise_initializerObject



69
70
71
# File 'lib/generators/kinney/install/install_generator.rb', line 69

def create_devise_initializer
  template 'devise.rb', 'config/initializers/devise.rb'
end

#create_model_overridesObject

# create KinneyHelper def create_kinney_helpers

template 'kinney_helper.rb', 'app/helpers/kinney_helper.rb'

end



49
50
51
52
53
# File 'lib/generators/kinney/install/install_generator.rb', line 49

def create_model_overrides
  empty_directory 'app/models/kinney'
  template 'image.rb', 'app/models/kinney/image.rb'
  template 'clip.rb', 'app/models/kinney/clip.rb'
end

#inject_google_idObject

Google Analytics setup



102
103
104
105
106
# File 'lib/generators/kinney/install/install_generator.rb', line 102

def inject_google_id
  inject_into_file 'config/application.rb', :after => "Rails::Application" do
    "\nconfig.kinney = ActiveSupport::OrderedOptions.new\nconfig.kinney.google_analytics_id = 'UA-XXXXXXXX-X'"
  end
end

#inject_jsObject

Kinney setup



18
19
20
21
22
23
# File 'lib/generators/kinney/install/install_generator.rb', line 18

def inject_js
  inject_into_file "app/assets/javascripts/application.js", :after => "//= require_tree ." do
    "\n//= require kinney\n"
  end
  gsub_file 'app/assets/javascripts/application.js', "//= require_tree .", ''
end

#inject_routesObject



55
56
57
58
59
60
61
62
63
64
65
66
67
# File 'lib/generators/kinney/install/install_generator.rb', line 55

def inject_routes
  routes = <<EOF

  ActiveAdmin.routes(self)
  devise_for :admin_users, :class_name => 'Kinney::AdminUser' #ActiveAdmin::Devise.config.merge(:class_name => Kinney::AdminUser)
  mount Kinney::Engine => "/kinney", :as => 'kinney'
  root :to => 'kinney/pages#home'

EOF
  inject_into_file 'config/routes.rb', :after => 'routes.draw do' do
    routes
  end
end

#insert_seedsObject



36
37
38
# File 'lib/generators/kinney/install/install_generator.rb', line 36

def insert_seeds
  append_to_file "db/seeds.rb", "\nKinney::Engine.load_seed\n"
end

#mailer_setupObject



124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
# File 'lib/generators/kinney/install/install_generator.rb', line 124

def mailer_setup
  mailer_config = <<EOF

  config.action_mailer.default_url_options = { :host => 'localhost:3000' }
  config.action_mailer.delivery_method = :test #:sendmail
  config.action_mailer.sendmail_settings = {
    :location => '/usr/sbin/sendmail',
    :arguments => '-i -t'
  }

EOF
  inject_into_file 'config/environments/development.rb', :after => 'Application.configure do' do
    mailer_config
  end
end

#remove_coffeescriptObject



40
41
42
# File 'lib/generators/kinney/install/install_generator.rb', line 40

def remove_coffeescript
  gsub_file('Gemfile', /^gem 'coffee-rails.*$'/, '')
end

#remove_public_indexObject



13
14
15
# File 'lib/generators/kinney/install/install_generator.rb', line 13

def remove_public_index
  remove_file 'public/index.html'
end


31
32
33
34
# File 'lib/generators/kinney/install/install_generator.rb', line 31

def remove_turbolinks
  gsub_file('Gemfile', %Q|gem 'turbolinks'|, '')
  gsub_file('app/assets/javascripts/application.js', '//= require turbolinks', '')
end