Class: Rang::Teaspoon::Generators::InstallGenerator

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

Instance Method Summary collapse

Instance Method Details

#add_angular_mocks_to_gemfileObject



14
15
16
# File 'lib/rails/generators/rang/teaspoon/install/install_generator.rb', line 14

def add_angular_mocks_to_gemfile
  generate "rang:bower:add", "angular-mocks '~> 1.2.0' quiet"
end

#add_matcherObject



33
34
35
36
37
# File 'lib/rails/generators/rang/teaspoon/install/install_generator.rb', line 33

def add_matcher
  inject_into_file "spec/teaspoon_env.rb", after: /#suite\.matcher =.*$/ do
    "\n    suite.matcher = \"{spec/javascripts,app/assets}/**/*[_.]spec.{js,js.coffee,coffee}\"\n"
  end
end

#add_teaspoon_assets_hackObject



26
27
28
29
30
31
# File 'lib/rails/generators/rang/teaspoon/install/install_generator.rb', line 26

def add_teaspoon_assets_hack
  inject_into_file "spec/teaspoon_env.rb", before: "Teaspoon.configure do |config|" do
    "# Fix for https://github.com/modeset/teaspoon/issues/197\n" +
    "Rails.application.config.assets.debug = false\n\n"
  end
end

#add_teaspoon_to_gemfileObject



7
8
9
10
11
12
# File 'lib/rails/generators/rang/teaspoon/install/install_generator.rb', line 7

def add_teaspoon_to_gemfile
  gem_group :development, :test do
    gem "teaspoon", "~> 0.8.0"
    gem "phantomjs", "~> 1.9.0"
  end
end

#bundle_installObject



18
19
20
# File 'lib/rails/generators/rang/teaspoon/install/install_generator.rb', line 18

def bundle_install
  bundle!
end

#inform_about_better_errorsObject



57
58
59
60
61
62
63
# File 'lib/rails/generators/rang/teaspoon/install/install_generator.rb', line 57

def inform_about_better_errors
  if Util.gem_present? 'better_errors'
    say "\nNote: the better_errors gem prevents ruby exceptions being " +
        "reported when running `teaspoon`.", :cyan
    say "See: https://github.com/modeset/teaspoon/issues/120\n\n"
  end
end

#inform_of_actionsObject



46
47
48
49
50
51
52
53
54
55
# File 'lib/rails/generators/rang/teaspoon/install/install_generator.rb', line 46

def inform_of_actions
  say "\n\n      ******      \n\n"
  say "\nTeaspoon is installed, you can run `teaspoon` or visit `/teaspoon` to run tests.", :green
  say "Jasmine & angular-mocks are included.\n\n", :green
  say "You can put your specs alongside your JS like this:\n\n", :cyan
  say "    |-- posts/\n" +
      "    |   |-- posts_controller.js\n" +
      "    |   |-- posts_controller.spec.js\n\n"
  say "Or inside spec/javascripts, as you prefer.", :cyan
end

#require_angular_mocksObject



39
40
41
42
43
44
# File 'lib/rails/generators/rang/teaspoon/install/install_generator.rb', line 39

def require_angular_mocks
  inject_into_file "spec/javascripts/spec_helper.js", before: /\/\/= require application/ do
    "//= require angular\n" +
    "//= require angular-mocks\n"
  end
end

#teaspoon_installObject



22
23
24
# File 'lib/rails/generators/rang/teaspoon/install/install_generator.rb', line 22

def teaspoon_install
  generate "teaspoon:install"
end