class EmberProj::Generators::BootstrapGenerator
Constants
- TPL_PATH
Attributes
auth_notices[R]
Public Instance Methods
authentications()
click to toggle source
# File lib/generators/ember_proj/bootstrap_generator.rb, line 68 def authentications return if auth.blank? validate_auth! use_auth_gems.each do |name| auth_notice name gem name unless has_gem? name end end
bundle_all()
click to toggle source
# File lib/generators/ember_proj/bootstrap_generator.rb, line 92 def bundle_all if csv? bundle_gems! invoke "client_side_validations:ember:install" else bundle_gems! if bundle? end end
client_side_validations()
click to toggle source
# File lib/generators/ember_proj/bootstrap_generator.rb, line 86 def client_side_validations return unless csv? gem 'client_side_validations' unless has_gem? 'client_side_validations' gem 'client_side_validations-ember' unless has_gem? 'client_side_validations-ember' end
emblem()
click to toggle source
# File lib/generators/ember_proj/bootstrap_generator.rb, line 79 def emblem return unless emblem? gem 'emblem-rails' unless has_gem? 'emblem-rails' say "Note: Emblem templates have the form: my_template.js.emblem", :green end
move_ember_files()
click to toggle source
# File lib/generators/ember_proj/bootstrap_generator.rb, line 47 def move_ember_files say "Moving existing ember files...", :green move_to_app 'views/application_view', 'controllers/application_controller' move 'store', 'app/stores/store' move 'router', 'app/routes/router' # remove default application.js file # replaced by coffee version supplied by this gem! say "Cleanup...", :green if File.exist? Rails.root.join js_path('.js/.coffee') # Somehow I can't seem to get rid of this file!!! remove_file js_path('.js/.coffee') end if File.exist? Rails.root.join js_path('.js/.coffee') # remove old application.js manifest remove_file js_path('application') end end
notices()
click to toggle source
# File lib/generators/ember_proj/bootstrap_generator.rb, line 101 def notices draw_border :thick auth_notices! extras_notice! other_gems_notice! end
skeleton()
click to toggle source
# File lib/generators/ember_proj/bootstrap_generator.rb, line 23 def skeleton directory "app", "app/assets/javascripts/app", recursive: true app_directories.each do |app_dir| src = "app/#{app_dir}" target = "app/assets/javascripts/app/#{app_dir}" directory src, target, recursive: true sub_dirs.each do |sub_dir| sub_src = File.join(src, sub_dir) full_sub_path = File.join(TPL_PATH, sub_src) if File.directory? full_sub_path sub_target = File.join(target, sub_dir) directory sub_src, sub_target, recursive: true end end end copy_file "application.js.coffee", (js_path(application) + '.coffee') end
Protected Instance Methods
app_directories()
click to toggle source
TODO: allow customization - which to include/exclude!
# File lib/generators/ember_proj/bootstrap_generator.rb, line 121 def app_directories %w{authentication config controllers helpers lib mixins models routes state_managers stores templates views} end
auth()
click to toggle source
# File lib/generators/ember_proj/bootstrap_generator.rb, line 170 def auth @auth ||= options[:auth].map do |name| case name when 'oauth', 'oauth2', 'ember-oauth', 'ember-oauth2' 'ember-oauth2-rails' when 'auth', 'ember-auth' 'ember-auth-rails' else name end end end
auth_gems()
click to toggle source
# File lib/generators/ember_proj/bootstrap_generator.rb, line 183 def auth_gems %w{ember-auth-rails ember-oauth2-rails} end
auth_notice(name)
click to toggle source
# File lib/generators/ember_proj/bootstrap_generator.rb, line 142 def auth_notice name auth_notices << "See: #{auth_repo name} for authentication configuration details" end
auth_notices!()
click to toggle source
# File lib/generators/ember_proj/bootstrap_generator.rb, line 127 def auth_notices! if auth_notices.empty? say "Authentication: was not configured", :green return end say "Authentication:", :green say auth_notices.join("\n"), :green say "" end
auth_repo(name)
click to toggle source
# File lib/generators/ember_proj/bootstrap_generator.rb, line 146 def auth_repo name case name.to_s when 'ember-auth-rails' 'https://github.com/heartsentwined/ember-auth-rails' when 'ember-oauth2-rails' 'https://github.com/amkirwan/ember-oauth2' else say "Invalid auth gem: #{name}, must be oauth2 or auth", :red exit end end
border(type = :thin)
click to toggle source
# File lib/generators/ember_proj/bootstrap_generator.rb, line 253 def border type = :thin border_char(type) * border_width + "\n" end
border_char(type)
click to toggle source
# File lib/generators/ember_proj/bootstrap_generator.rb, line 257 def border_char type type == :thick ? "=" : '-' end
border_width()
click to toggle source
# File lib/generators/ember_proj/bootstrap_generator.rb, line 261 def border_width 80 end
bundle?()
click to toggle source
# File lib/generators/ember_proj/bootstrap_generator.rb, line 116 def bundle? options[:bundle] end
csv?()
click to toggle source
# File lib/generators/ember_proj/bootstrap_generator.rb, line 225 def csv? options[:csv] end
draw_border(type = :thin)
click to toggle source
# File lib/generators/ember_proj/bootstrap_generator.rb, line 245 def draw_border type = :thin say border(type), :green end
emblem?()
click to toggle source
# File lib/generators/ember_proj/bootstrap_generator.rb, line 221 def emblem? options[:emblem] end
extras()
click to toggle source
# File lib/generators/ember_proj/bootstrap_generator.rb, line 282 def extras %w{ember-data ember-data-validations ember-formBuilder ember-easyForm bootstrap rails.validations.ember} end
extras_notice()
click to toggle source
# File lib/generators/ember_proj/bootstrap_generator.rb, line 234 def extras_notice %Q{The following extra libs are referenced in this setup: #{join extras} Include these libs, using respective gems (#{join gems_list}) or the equivalent js files. Note: You can also remove the libs you don't need from the application.js.coffee manifest } end
extras_notice!()
click to toggle source
# File lib/generators/ember_proj/bootstrap_generator.rb, line 229 def extras_notice! draw_border say extras_notice, :green end
gems_list()
click to toggle source
# File lib/generators/ember_proj/bootstrap_generator.rb, line 286 def gems_list %w{client_side_validations-ember bootstrap-sass ember-rails} end
join(list)
click to toggle source
# File lib/generators/ember_proj/bootstrap_generator.rb, line 265 def join list list.join ', ' end
js_app_path(path)
click to toggle source
# File lib/generators/ember_proj/bootstrap_generator.rb, line 212 def js_app_path path js_path File.join('app', path) end
js_path(path)
click to toggle source
# File lib/generators/ember_proj/bootstrap_generator.rb, line 216 def js_path path path = "#{path}.js" unless path =~ /\.js$/ Rails.root.join('app/assets/javascripts', path) end
move(src, target)
click to toggle source
# File lib/generators/ember_proj/bootstrap_generator.rb, line 193 def move src, target src = js_path(src) target = js_path(target) move_it! src, target end
move_it!(src, target)
click to toggle source
# File lib/generators/ember_proj/bootstrap_generator.rb, line 200 def move_it! src, target return unless File.exist? src say_status :move, "#{src} -> #{target}" FileUtils.mv src, target end
move_to_app(*paths)
click to toggle source
# File lib/generators/ember_proj/bootstrap_generator.rb, line 187 def move_to_app *paths paths.flatten.each do |path| move_it! js_path(path), js_app_path(path) end end
nice(text)
click to toggle source
# File lib/generators/ember_proj/bootstrap_generator.rb, line 249 def nice text border + text end
other_gems()
click to toggle source
# File lib/generators/ember_proj/bootstrap_generator.rb, line 278 def other_gems %q{ember-i18n-rails ember-auth-rails ember-oauth2-rails ember-bootstrap-rails} end
other_gems_notice()
click to toggle source
# File lib/generators/ember_proj/bootstrap_generator.rb, line 274 def other_gems_notice "Other useful gems: #{other_gems}\n" end
other_gems_notice!()
click to toggle source
# File lib/generators/ember_proj/bootstrap_generator.rb, line 269 def other_gems_notice! draw_border say other_gems_notice, :green end
strip_front(path)
click to toggle source
# File lib/generators/ember_proj/bootstrap_generator.rb, line 208 def strip_front path "app/assets" + path.to_s.split(/app\/assets/)[1] end
sub_dirs()
click to toggle source
# File lib/generators/ember_proj/bootstrap_generator.rb, line 112 def sub_dirs %w{locales mixins extensions shortcuts} end
use_auth_gems()
click to toggle source
# File lib/generators/ember_proj/bootstrap_generator.rb, line 166 def use_auth_gems [auth].flatten & auth_gems end
validate_auth!()
click to toggle source
# File lib/generators/ember_proj/bootstrap_generator.rb, line 158 def validate_auth! return if options[:auth].blank? if use_auth_gems.empty? say "Not a supported authentication gem: #{auth}. Must be one of #{auth_gems}", :red end end