skellington 0.4.0 → 0.4.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (63) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +1 -1
  3. data/.rspec +1 -0
  4. data/Guardfile +1 -1
  5. data/README.md +44 -24
  6. data/Rakefile +1 -3
  7. data/config/config.yaml +28 -4
  8. data/files +24 -0
  9. data/lib/skellington/template.rb +1 -1
  10. data/lib/skellington/version.rb +1 -1
  11. data/lib/templates/.rspec.eruby +3 -0
  12. data/lib/templates/Rakefile.eruby +6 -1
  13. data/lib/templates/config.ru.eruby +1 -2
  14. data/lib/templates/features/json.feature.eruby +9 -0
  15. data/lib/templates/features/support/env.rb.eruby +2 -1
  16. data/lib/templates/lib/app.rb.eruby +28 -8
  17. data/lib/templates/lib/app/helpers.rb.eruby +4 -0
  18. data/lib/templates/lib/app/racks.rb.eruby +24 -0
  19. data/lib/templates/public/assets/favicon.ico.eruby +0 -0
  20. data/lib/templates/public/css/styles.css.eruby +0 -0
  21. data/lib/templates/public/js/app.js.eruby +0 -0
  22. data/lib/templates/spec/app/app_spec.rb.eruby +7 -0
  23. data/lib/templates/spec/javascripts/appSpec.js.eruby +5 -0
  24. data/lib/templates/spec/javascripts/support/jasmine.yml.eruby +15 -0
  25. data/lib/templates/spec/javascripts/support/jasmine_helper.rb.eruby +0 -0
  26. data/lib/templates/spec/spec_helper.rb.eruby +16 -0
  27. data/lib/templates/views/default.erb.eruby +15 -0
  28. data/lib/templates/views/includes/header.erb.eruby +22 -0
  29. data/lib/templates/{lib/views → views}/index.erb.eruby +0 -0
  30. data/skellington.gemspec +0 -3
  31. data/spec/cli/app_spec.rb +85 -0
  32. data/{features/bootstrap.feature → spec/cli/bootstrap_spec.rb} +41 -27
  33. data/spec/cli/config_ru_spec.rb +18 -0
  34. data/spec/cli/cukes_spec.rb +66 -0
  35. data/spec/cli/gemfile_spec.rb +38 -0
  36. data/spec/cli/git_spec.rb +12 -0
  37. data/spec/cli/javascript_spec.rb +42 -0
  38. data/spec/cli/non_local_path_spec.rb +55 -0
  39. data/spec/cli/procfile_spec.rb +16 -0
  40. data/spec/cli/public_spec.rb +14 -0
  41. data/spec/cli/rakefile_spec.rb +30 -0
  42. data/spec/cli/rbenv_spec.rb +17 -0
  43. data/spec/cli/spec_spec.rb +51 -0
  44. data/spec/cli_spec.rb +32 -0
  45. data/spec/hyphens_spec.rb +36 -0
  46. data/spec/spec_helper.rb +39 -0
  47. metadata +49 -78
  48. data/features/app.feature +0 -21
  49. data/features/cli.feature +0 -29
  50. data/features/config.ru.feature +0 -12
  51. data/features/cukes.feature +0 -50
  52. data/features/gemfile.feature +0 -27
  53. data/features/git.feature +0 -5
  54. data/features/guardfile.feature +0 -16
  55. data/features/hyphens.feature +0 -27
  56. data/features/naming.feature +0 -6
  57. data/features/non-local-path.feature +0 -29
  58. data/features/procfile.feature +0 -9
  59. data/features/rakefile.feature +0 -18
  60. data/features/rbenv.feature +0 -6
  61. data/features/support/env.rb +0 -6
  62. data/lib/templates/Guardfile.eruby +0 -8
  63. data/lib/templates/lib/views/default.erb.eruby +0 -35
@@ -1,12 +0,0 @@
1
- Feature: Generate skellington
2
-
3
- Scenario: generate config.ru
4
- When I successfully run `skellington generate dummy_app`
5
- Then a file named "dummy_app/config.ru" should exist
6
- And the file "dummy_app/config.ru" should contain:
7
- """
8
- require 'rubygems'
9
- require File.join(File.dirname(__FILE__), 'lib/dummy_app.rb')
10
-
11
- run DummyApp
12
- """
@@ -1,50 +0,0 @@
1
- Feature: Generate skellington
2
-
3
- Scenario: generate feature
4
- When I successfully run `skellington generate dummy_app`
5
- Then a directory named "dummy_app/features" should exist
6
- And a file named "dummy_app/features/dummy_app.feature" should exist
7
- And the file "dummy_app/features/dummy_app.feature" should contain:
8
- """
9
- Feature: Make sure DummyApp is plumbed in correctly
10
-
11
- Scenario: Get root
12
- When I send a GET request to "/"
13
- Then the response status should be "200"
14
- """
15
-
16
- Scenario: generate env.rb
17
- When I successfully run `skellington generate dummy_app`
18
- And a file named "dummy_app/features/support/env.rb" should exist
19
- And the file "dummy_app/features/support/env.rb" should contain:
20
- """
21
- ENV['RACK_ENV'] = 'test'
22
-
23
- require File.join(File.dirname(__FILE__), '..', '..', 'lib/dummy_app.rb')
24
-
25
- require 'capybara'
26
- require 'capybara/cucumber'
27
- require 'rspec'
28
- require 'cucumber/api_steps'
29
-
30
- Capybara.app = DummyApp
31
-
32
- class DummyAppWorld
33
- include Capybara::DSL
34
- include RSpec::Expectations
35
- include RSpec::Matchers
36
-
37
- def app
38
- DummyApp
39
- end
40
- end
41
-
42
- World do
43
- DummyAppWorld.new
44
- end
45
- """
46
-
47
- Scenario: generate 'step_defintions' directory
48
- When I successfully run `skellington generate dummy_app`
49
- Then a directory named "dummy_app/features/step_definitions" should exist
50
- And a file named "dummy_app/features/step_definitions/dummy_app_steps.rb" should exist
@@ -1,27 +0,0 @@
1
- Feature: Generate skellington
2
-
3
- Scenario: generate Gemfile
4
- When I successfully run `skellington generate dummy_app`
5
- Then a file named "dummy_app/Gemfile" should exist
6
- And the file "dummy_app/Gemfile" should contain:
7
- """
8
- source 'https://rubygems.org'
9
-
10
- ruby '
11
- """
12
-
13
- And the file "dummy_app/Gemfile" should contain:
14
- """
15
- gem 'sinatra'
16
- gem 'thin'
17
- gem 'rake'
18
-
19
- group :test do
20
- gem 'cucumber'
21
- gem 'capybara'
22
- gem 'guard'
23
- gem 'guard-cucumber'
24
- gem 'pry'
25
- gem 'cucumber-api-steps', require: false
26
- end
27
- """
@@ -1,5 +0,0 @@
1
- Feature: Generate skellington
2
-
3
- Scenario: git init the repo
4
- When I successfully run `skellington generate dummy_app`
5
- Then a directory named "dummy_app/.git/" should exist
@@ -1,16 +0,0 @@
1
- Feature: Generate skellington
2
-
3
- Scenario: generate Guardfile
4
- When I successfully run `skellington generate dummy_app`
5
- Then a file named "dummy_app/Guardfile" should exist
6
- And the file "dummy_app/Guardfile" should contain:
7
- """
8
- guard :cucumber do
9
- watch %r{^features/.+\.feature$}
10
- watch(%r{^features/support/.+$}) { 'features' }
11
-
12
- watch(%r{^features/step_definitions/(.+)_steps\.rb$}) do |m|
13
- Dir[File.join("**/#{m[1]}.feature")][0] || 'features'
14
- end
15
- end
16
- """
@@ -1,27 +0,0 @@
1
- Feature: Generate skellington
2
-
3
- Scenario: change the names if there are hyphens
4
- When I successfully run `skellington generate hyphenated-name`
5
- Then the output should contain "Generating hyphenated_name/Gemfile"
6
- And the output should contain "bundle"
7
- And the output should contain:
8
- """
9
- Your new Sinatra app HyphenatedName has been created
10
-
11
- (Note that 'hyphenated-name' has been changed to 'hyphenated_name' because Ruby finds '-'s troubling)
12
-
13
- Now do
14
-
15
- cd hyphenated_name
16
- bundle
17
- bundle exec rake
18
-
19
- And presuming that passes OK
20
-
21
- git add .
22
- git commit -m 'First commit'
23
-
24
- You can run the app with
25
-
26
- bundle exec rackup
27
- """
@@ -1,6 +0,0 @@
1
- Feature: Fix app_name
2
-
3
- Scenario: App name does not like a hyphen
4
- When I successfully run `skellington generate hyphenated-name`
5
- Then a directory named "hyphenated_name/lib/" should exist
6
- And a file named "hyphenated_name/lib/hyphenated_name.rb" should exist
@@ -1,29 +0,0 @@
1
- Feature: Generate skellington
2
-
3
- Scenario: generate app at a non-local path
4
- When I successfully run `skellington generate subdir/some_app`
5
- Then a directory named "subdir/some_app/lib/" should exist
6
- And a file named "subdir/some_app/lib/some_app.rb" should exist
7
- And the file "subdir/some_app/lib/some_app.rb" should contain:
8
- """
9
- require 'sinatra/base'
10
-
11
- class SomeApp < Sinatra::Base
12
- get '/' do
13
- @content = '<h1>Hello from SomeApp</h1>'
14
- @title = 'SomeApp'
15
- erb :index, layout: :default
16
- end
17
-
18
- # start the server if ruby file executed directly
19
- run! if app_file == $0
20
- end
21
- """
22
- And a file named "subdir/some_app/config.ru" should exist
23
- And the file "subdir/some_app/config.ru" should contain:
24
- """
25
- require 'rubygems'
26
- require File.join(File.dirname(__FILE__), 'lib/some_app.rb')
27
-
28
- run SomeApp
29
- """
@@ -1,9 +0,0 @@
1
- Feature: Generate skellington
2
-
3
- Scenario: generate Procfile
4
- When I successfully run `skellington generate dummy_app`
5
- Then a file named "dummy_app/Procfile" should exist
6
- And the file "dummy_app/Procfile" should contain:
7
- """
8
- web: bundle exec ruby lib/dummy_app.rb
9
- """
@@ -1,18 +0,0 @@
1
- Feature: Generate skellington
2
-
3
- Scenario: generate Rakefile
4
- When I successfully run `skellington generate dummy_app`
5
- Then a file named "dummy_app/Rakefile" should exist
6
- And the file "dummy_app/Rakefile" should contain:
7
- """
8
- require File.join(File.dirname(__FILE__), 'lib/dummy_app.rb')
9
-
10
- unless ENV['RACK_ENV'] == 'production'
11
- require 'rspec/core/rake_task'
12
- require 'cucumber/rake/task'
13
-
14
- Cucumber::Rake::Task.new
15
-
16
- task :default => [:cucumber]
17
- end
18
- """
@@ -1,6 +0,0 @@
1
- Feature: Generate skellington
2
-
3
- Scenario: generate .ruby-version
4
- When I successfully run `skellington generate dummy_app`
5
- Then a file named "dummy_app/.ruby-version" should exist
6
- And the file "dummy_app/.ruby-version" should match /[0-9].[0-9].[0-9]/
@@ -1,6 +0,0 @@
1
- require 'aruba/cucumber'
2
- require 'coveralls'
3
-
4
- require 'skellington'
5
-
6
- Coveralls.wear_merged!
@@ -1,8 +0,0 @@
1
- guard :cucumber do
2
- watch %r{^features/.+\.feature$}
3
- watch(%r{^features/support/.+$}) { 'features' }
4
-
5
- watch(%r{^features/step_definitions/(.+)_steps\.rb$}) do |m|
6
- Dir[File.join("**/#{m[1]}.feature")][0] || 'features'
7
- end
8
- end
@@ -1,35 +0,0 @@
1
- <!DOCTYPE html>
2
- <html lang='en'>
3
- <head>
4
- <meta charset='utf-8' />
5
- <meta http-equiv='X-UA-Compatible' content='IE=edge' />
6
- <meta name='viewport' content='width=device-width, initial-scale=1' />
7
-
8
- <!-- HTML5 Shim and Respond.js IE8 support of HTML5 elements and media queries -->
9
- <!-- WARNING: Respond.js doesn't work if you view the page via file:// -->
10
- <!--[if lt IE 9]>
11
- <script src='https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js'></script>
12
- <script src='https://oss.maxcdn.com/respond/1.4.2/respond.min.js'></script>
13
- <![endif]-->
14
-
15
- <!-- jQuery (necessary for Bootstrap's JavaScript plugins) -->
16
- <script src='https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js'></script>
17
- <!-- Include all compiled plugins (below), or include individual files as needed -->
18
- <script src='//maxcdn.bootstrapcdn.com/bootstrap/3.3.4/js/bootstrap.min.js'></script>
19
- <link rel='stylesheet' href='//maxcdn.bootstrapcdn.com/bootstrap/3.3.4/css/bootstrap.min.css' type='text/css' />
20
- <link rel='icon' type='image/png' href='/assets/favicon.ico' />
21
- <title><%%= @title %></title>
22
- </head>
23
-
24
- <body>
25
- <div class='container'>
26
- <div class='row'>
27
- <div class='col-md-2'></div>
28
- <div class='col-md-8'>
29
- <%%= yield %>
30
- </div>
31
- <div class='col-md-2'></div>
32
- </div>
33
- </div>
34
- </body>
35
- </html>