Class: EmberProj::Generators::BootstrapGenerator

Inherits:
Rails::Generators::Base
  • Object
show all
Includes:
EmberProj::GemHelper
Defined in:
lib/generators/ember_proj/bootstrap_generator.rb

Constant Summary collapse

TPL_PATH =
File.expand_path('../templates', __FILE__)

Instance Method Summary collapse

Methods included from EmberProj::GemHelper

#bundle_command, #bundle_gems!, #gemfile, #gemfile_content, #has_all_gems?, #has_any_gem?, #has_gem?, #ruby_gems

Instance Method Details

#authenticationsObject



68
69
70
71
72
73
74
75
76
77
# 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_allObject



92
93
94
95
96
97
98
99
# 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_validationsObject



86
87
88
89
90
# 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

#emblemObject



79
80
81
82
83
84
# 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_filesObject



47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
# 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

#noticesObject



101
102
103
104
105
106
# File 'lib/generators/ember_proj/bootstrap_generator.rb', line 101

def notices
  draw_border :thick
  auth_notices!
  extras_notice!
  other_gems_notice!
end

#skeletonObject



23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
# 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