skellington 0.7.5 → 0.8.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (85) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +33 -6
  3. data/config/config.yaml +82 -63
  4. data/lib/jekyll/templates/.gitignore.eruby +2 -0
  5. data/lib/{templates → jekyll/templates}/.ruby-version.eruby +0 -0
  6. data/lib/jekyll/templates/Gemfile.eruby +7 -0
  7. data/lib/{templates → jekyll/templates}/LICENSE.md.eruby +0 -0
  8. data/lib/jekyll/templates/_config.yml.eruby +7 -0
  9. data/lib/jekyll/templates/_layouts/default.html.eruby +29 -0
  10. data/lib/jekyll/templates/_sass/bootstrap-custom.scss.eruby +1 -0
  11. data/lib/jekyll/templates/_sass/fonts.scss.eruby +4 -0
  12. data/lib/jekyll/templates/assets/application.scss.eruby +6 -0
  13. data/lib/jekyll/templates/index.md.eruby +4 -0
  14. data/lib/jekyll/templates/post-run.eruby +21 -0
  15. data/lib/{templates → sinatra/templates}/.gitignore.eruby +0 -0
  16. data/lib/{templates → sinatra/templates}/.rspec.eruby +0 -0
  17. data/lib/sinatra/templates/.ruby-version.eruby +1 -0
  18. data/lib/{templates → sinatra/templates}/Gemfile.eruby +0 -0
  19. data/lib/{templates → sinatra/templates}/Guardfile.eruby +0 -0
  20. data/lib/sinatra/templates/LICENSE.md.eruby +27 -0
  21. data/lib/{templates → sinatra/templates}/Procfile.eruby +0 -0
  22. data/lib/{templates → sinatra/templates}/Rakefile.eruby +0 -0
  23. data/lib/{templates → sinatra/templates}/config.rb.eruby +0 -0
  24. data/lib/{templates → sinatra/templates}/config.ru.eruby +0 -0
  25. data/lib/{templates → sinatra/templates}/config/config.yml.eruby +0 -0
  26. data/lib/{templates → sinatra/templates}/lib/app.rb.eruby +0 -0
  27. data/lib/{templates → sinatra/templates}/lib/app/helpers.rb.eruby +0 -0
  28. data/lib/{templates → sinatra/templates}/lib/app/racks.rb.eruby +0 -0
  29. data/lib/{templates → sinatra/templates}/post-run.eruby +0 -0
  30. data/lib/{templates → sinatra/templates}/public/assets/favicon.ico.eruby +0 -0
  31. data/lib/{templates → sinatra/templates}/public/css/styles.css.eruby +0 -0
  32. data/lib/{templates → sinatra/templates}/public/js/app.js.eruby +0 -0
  33. data/lib/{templates → sinatra/templates}/public/sass/_fonts.scss.eruby +0 -0
  34. data/lib/{templates → sinatra/templates}/public/sass/_footer.scss.eruby +0 -0
  35. data/lib/{templates → sinatra/templates}/public/sass/_github-corner.scss.eruby +0 -0
  36. data/lib/{templates → sinatra/templates}/public/sass/_variables.scss.eruby +0 -0
  37. data/lib/{templates → sinatra/templates}/public/sass/styles.scss.eruby +0 -0
  38. data/lib/{templates → sinatra/templates}/spec/app/app_spec.rb.eruby +0 -0
  39. data/lib/{templates → sinatra/templates}/spec/app/helpers_spec.rb.eruby +0 -0
  40. data/lib/{templates → sinatra/templates}/spec/javascripts/app_spec.js.eruby +0 -0
  41. data/lib/{templates → sinatra/templates}/spec/javascripts/support/jasmine.yml.eruby +0 -0
  42. data/lib/{templates → sinatra/templates}/spec/javascripts/support/jasmine_helper.rb.eruby +0 -0
  43. data/lib/{templates → sinatra/templates}/spec/spec_helper.rb.eruby +0 -0
  44. data/lib/{templates → sinatra/templates}/views/default.erb.eruby +0 -0
  45. data/lib/{templates → sinatra/templates}/views/includes/footer.erb.eruby +0 -0
  46. data/lib/{templates → sinatra/templates}/views/includes/github-corner.erb.eruby +0 -0
  47. data/lib/{templates → sinatra/templates}/views/includes/header.erb.eruby +0 -0
  48. data/lib/{templates → sinatra/templates}/views/index.erb.eruby +0 -0
  49. data/lib/skellington.rb +1 -0
  50. data/lib/skellington/cli.rb +9 -2
  51. data/lib/skellington/generator.rb +17 -4
  52. data/lib/skellington/template.rb +1 -1
  53. data/lib/skellington/version.rb +1 -1
  54. data/skellington.gemspec +1 -0
  55. data/spec/jekyll/cli/assets_css_spec.rb +23 -0
  56. data/spec/jekyll/cli/bootstrap_spec.rb +48 -0
  57. data/spec/jekyll/cli/config_yml_spec.rb +23 -0
  58. data/spec/jekyll/cli/gemfile_spec.rb +23 -0
  59. data/spec/jekyll/cli/git_spec.rb +20 -0
  60. data/spec/jekyll/cli/index_md.rb +22 -0
  61. data/spec/jekyll/cli/layout_spec.rb +45 -0
  62. data/spec/jekyll/cli/license_spec.rb +75 -0
  63. data/spec/jekyll/cli/rbenv_spec.rb +17 -0
  64. data/spec/jekyll/cli_spec.rb +29 -0
  65. data/spec/{cli/non_local_path_spec.rb → non_local_path_spec.rb} +0 -0
  66. data/spec/{cli → sinatra/cli}/app_spec.rb +0 -0
  67. data/spec/{cli → sinatra/cli}/config_rb_spec.rb +0 -0
  68. data/spec/{cli → sinatra/cli}/config_ru_spec.rb +0 -0
  69. data/spec/{cli → sinatra/cli}/config_yml_spec.rb +0 -0
  70. data/spec/{cli → sinatra/cli}/gemfile_spec.rb +0 -0
  71. data/spec/{cli → sinatra/cli}/git_spec.rb +0 -0
  72. data/spec/{cli → sinatra/cli}/guardfile_spec.rb +0 -0
  73. data/spec/{cli → sinatra/cli}/helpers_spec.rb +0 -0
  74. data/spec/{cli → sinatra/cli}/includes_spec.rb +0 -0
  75. data/spec/{cli → sinatra/cli}/javascript_spec.rb +0 -0
  76. data/spec/{cli → sinatra/cli}/layout_spec.rb +0 -0
  77. data/spec/{cli → sinatra/cli}/license_spec.rb +0 -0
  78. data/spec/{cli → sinatra/cli}/procfile_spec.rb +0 -0
  79. data/spec/{cli → sinatra/cli}/public_spec.rb +0 -0
  80. data/spec/{cli → sinatra/cli}/racks_spec.rb +0 -0
  81. data/spec/{cli → sinatra/cli}/rakefile_spec.rb +0 -0
  82. data/spec/{cli → sinatra/cli}/rbenv_spec.rb +0 -0
  83. data/spec/{cli → sinatra/cli}/spec_spec.rb +0 -0
  84. data/spec/{cli_spec.rb → sinatra/cli_spec.rb} +0 -0
  85. metadata +121 -76
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 0f9b63dc9c535f42884f5cbdab8007c06b8d88ce
4
- data.tar.gz: ea7c08de419e272d4e122628704b6a3874186499
3
+ metadata.gz: 886c478b322c50a0f3c3a8e29e1bc3ce56dd59e3
4
+ data.tar.gz: 705530bf4057bc67968e1606bd7cb13691e622f9
5
5
  SHA512:
6
- metadata.gz: 14f7b1f6e474cacae4aad76b86b9e1906388c02929d270c33312331cb8df1a86ba9d63fc805c58ab541e5daf308fd27a04bfc7690aaeebc24a08dc5ae26a7cd2
7
- data.tar.gz: 3e1fe67c4eccf282ed44a5a832314ae0c1f02c090c2bdcd1177e3b83202fd2befd9fed0a76b6712e1ecb01f3dca18e354e29b70847a0db4e81a6a05d8e13ed7a
6
+ metadata.gz: e012948ea968469cf6f322c3808258b6eca2d32ca1e494e7a499019315c02b4f89b3e78b0c7303850df41eea76bc1b58dfafe1a37f926578382436614fde33b1
7
+ data.tar.gz: 35ccdd189ca0ddeb9f06f11dc0ac1ca3248aeca35de1b8f8fe5dffec82ab3e4c81ed816d5de295ff90a86f26f7f004cfe1128335b743a16b73280893b3d79568
data/README.md CHANGED
@@ -8,13 +8,18 @@
8
8
 
9
9
  # Skellington
10
10
 
11
- Extremely opinionated generator for your [Sinatra](http://www.sinatrarb.com/) app. Sets up:
11
+ Extremely opinionated generator for your [Sinatra](http://www.sinatrarb.com/) app or [Jekyll](https://jekyllrb.com/) site. Sets up:
12
12
 
13
- * [Rspec](http://rspec.info/)
14
- * [Jasmine](http://jasmine.github.io/2.0/introduction.html)
15
- * [Bootstrap](http://getbootstrap.com/)
16
- * [Compass](http://compass-style.org/)
17
- * An MIT License file
13
+ * Sinatra
14
+ * [Rspec](http://rspec.info/)
15
+ * [Jasmine](http://jasmine.github.io/2.0/introduction.html)
16
+ * [Bootstrap](http://getbootstrap.com/)
17
+ * [Compass](http://compass-style.org/)
18
+ * An MIT License file
19
+
20
+ * Jekyll
21
+ * [Bootstrap](http://getbootstrap.com/)
22
+ * Reasonable default things
18
23
 
19
24
  Should work fine for both RVM- and rbenv-based setups
20
25
 
@@ -47,6 +52,28 @@ Should work fine for both RVM- and rbenv-based setups
47
52
 
48
53
  skellington postinstall
49
54
 
55
+ or
56
+
57
+ skellington generate jekyll-site --framework jekyll
58
+ Generating <lots of stuff>... done
59
+
60
+ Your new Jekyll site JekyllSite has been created
61
+
62
+ (Note that 'jekyll-site' has been changed to 'jekyll_site' because Ruby finds '-'s troubling)
63
+
64
+ Now do
65
+
66
+ cd jekyll_site
67
+ bundle
68
+ bundle exec jekyll
69
+
70
+ which will launch the site (at http://localhost:4000)
71
+
72
+ And presuming that works OK
73
+
74
+ git add .
75
+ git commit -m 'First commit'
76
+
50
77
  This assumes a bunch of things, at least:
51
78
 
52
79
  * That you have a reasonable git installation
data/config/config.yaml CHANGED
@@ -1,65 +1,84 @@
1
- gems:
2
- production:
3
- sinatra: 1.4
4
- rack-conneg:
5
- rack-tracker:
1
+ sinatra:
2
+ gems:
3
+ production:
4
+ sinatra: 1.4
5
+ rack-conneg:
6
+ rack-tracker:
7
+ rake:
8
+ compass:
9
+ bootstrap-sass:
10
+ erubis:
11
+ puma:
12
+ test:
13
+ rspec:
14
+ guard:
15
+ guard-rspec:
16
+ guard-jasmine:
17
+ capybara:
18
+ coveralls:
19
+ jasmine:
20
+ pry:
21
+ actionpack:
22
+
23
+ files:
24
+ Gemfile:
25
+ LICENSE.md:
26
+ Guardfile:
27
+ Rakefile:
28
+ Procfile:
29
+ .ruby-version:
30
+ .rspec:
31
+ .gitignore:
32
+ config.ru:
33
+ config.rb:
34
+ config/config.yml:
35
+ # the template has this name
36
+ lib/app.rb:
37
+ # but the output file substitutes it like this, where wormname is an attribute
38
+ # on the Generator object
39
+ outpath: app/wormname
40
+ lib/app/racks.rb:
41
+ outpath: app/wormname/racks
42
+ lib/app/helpers.rb:
43
+ outpath: app/wormname/helpers
44
+ views/default.erb:
45
+ views/index.erb:
46
+ views/includes/header.erb:
47
+ views/includes/footer.erb:
48
+ views/includes/github-corner.erb:
49
+ spec/spec_helper.rb:
50
+ spec/app/helpers_spec.rb:
51
+ outpath: app/wormname
52
+ spec/app/app_spec.rb:
53
+ outpath: app/wormname
54
+ spec/javascripts/support/jasmine.yml:
55
+ spec/javascripts/support/jasmine_helper.rb:
56
+ spec/javascripts/app_spec.js:
57
+ outpath: app/wormname
58
+ public/assets/favicon.ico:
59
+ public/css/styles.css:
60
+ public/js/app.js:
61
+ outpath: app/wormname
62
+ public/sass/_footer.scss:
63
+ public/sass/_fonts.scss:
64
+ public/sass/_github-corner.scss:
65
+ public/sass/_variables.scss:
66
+ public/sass/styles.scss:
67
+
68
+ jekyll:
69
+ gems:
70
+ github-pages:
71
+ bootstrap: '4.0.0.alpha4'
6
72
  rake:
7
- compass:
8
- bootstrap-sass:
9
- erubis:
10
- puma:
11
- test:
12
- rspec:
13
- guard:
14
- guard-rspec:
15
- guard-jasmine:
16
- capybara:
17
- coveralls:
18
- jasmine:
19
- pry:
20
- actionpack:
21
73
 
22
- files:
23
- Gemfile:
24
- LICENSE.md:
25
- Guardfile:
26
- Rakefile:
27
- Procfile:
28
- .ruby-version:
29
- .rspec:
30
- .gitignore:
31
- config.ru:
32
- config.rb:
33
- config/config.yml:
34
- # the template has this name
35
- lib/app.rb:
36
- # but the output file substitutes it like this, where wormname is an attribute
37
- # on the Generator object
38
- outpath: app/wormname
39
- lib/app/racks.rb:
40
- outpath: app/wormname/racks
41
- lib/app/helpers.rb:
42
- outpath: app/wormname/helpers
43
- views/default.erb:
44
- views/index.erb:
45
- views/includes/header.erb:
46
- views/includes/footer.erb:
47
- views/includes/github-corner.erb:
48
- spec/spec_helper.rb:
49
- spec/app/helpers_spec.rb:
50
- outpath: app/wormname
51
- spec/app/app_spec.rb:
52
- outpath: app/wormname
53
- spec/javascripts/support/jasmine.yml:
54
- spec/javascripts/support/jasmine_helper.rb:
55
- spec/javascripts/app_spec.js:
56
- outpath: app/wormname
57
- public/assets/favicon.ico:
58
- public/css/styles.css:
59
- public/js/app.js:
60
- outpath: app/wormname
61
- public/sass/_footer.scss:
62
- public/sass/_fonts.scss:
63
- public/sass/_github-corner.scss:
64
- public/sass/_variables.scss:
65
- public/sass/styles.scss:
74
+ files:
75
+ Gemfile:
76
+ _config.yml:
77
+ .gitignore:
78
+ index.md:
79
+ _layouts/default.html:
80
+ assets/application.scss:
81
+ _sass/bootstrap-custom.scss:
82
+ _sass/fonts.scss:
83
+ LICENSE.md:
84
+ .ruby-version:
@@ -0,0 +1,2 @@
1
+ _site/
2
+ .sass-cache
@@ -0,0 +1,7 @@
1
+ source 'https://rubygems.org'
2
+
3
+ ruby '<%= RUBY_VERSION %>'
4
+
5
+ <% @gen.gems.each_pair do |gem, version| %>
6
+ gem '<%= gem %>'<% if version %>, '~> <%= version %>'<% end %>
7
+ <% end %>
@@ -0,0 +1,7 @@
1
+ ---
2
+ defaults:
3
+ - scope:
4
+ path: ''
5
+ values:
6
+ layout: default
7
+ permalink: pretty
@@ -0,0 +1,29 @@
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='/javascripts/bootstrap.min.js'></script>
19
+
20
+ <link rel='stylesheet' href='/assets/application.css' type='text/css' />
21
+ <title>{{ page.title }}</title>
22
+ </head>
23
+
24
+ <body>
25
+ <div class='container'>
26
+ {{ content }}
27
+ </div>
28
+ </body>
29
+ </html>
@@ -0,0 +1 @@
1
+ $brand-primary: #fa8100;
@@ -0,0 +1,4 @@
1
+ @import url(http://maxcdn.bootstrapcdn.com/font-awesome/4.6.3/css/font-awesome.min.css);
2
+ @import url(http://fonts.googleapis.com/css?family=Ubuntu+Mono);
3
+
4
+ $font-family-san-serif: 'Ubuntu Mono'
@@ -0,0 +1,6 @@
1
+ ---
2
+ ---
3
+
4
+ @import 'bootstrap-custom';
5
+ @import 'bootstrap';
6
+ @import 'fonts';
@@ -0,0 +1,4 @@
1
+ ---
2
+ ---
3
+
4
+ Hold tight <%= @gen.wormname %>
@@ -0,0 +1,21 @@
1
+
2
+ Your new Jekyll site <%= @gen.camelname %> has been created
3
+
4
+ <% if @gen.renamed %>
5
+ (Note that '<%= @gen.filename %>' has been changed to '<%= @gen.wormname %>' because Ruby finds '-'s troubling)
6
+
7
+ <% end %>
8
+ Now do
9
+
10
+ cd <%= @gen.wormname %>
11
+ bundle
12
+ bundle exec jekyll
13
+
14
+ which will launch the site (at http://localhost:4000)
15
+
16
+ And presuming that works OK
17
+
18
+ git add .
19
+ git commit -m 'First commit'
20
+
21
+ You should also fill in your name in LICENSE.md
File without changes
@@ -0,0 +1 @@
1
+ <%= RUBY_VERSION %>
File without changes
@@ -0,0 +1,27 @@
1
+ <% if @gen.licensor %>
2
+ <% l = @gen.licensor %>
3
+ <% else %>
4
+ <% l = 'YOUR-NAME-HERE' %>
5
+ <% end %>
6
+ ##Copyright (c) <%= Time.new.strftime "%Y" %> <%= l %>
7
+
8
+ #MIT License
9
+
10
+ Permission is hereby granted, free of charge, to any person obtaining
11
+ a copy of this software and associated documentation files (the
12
+ 'Software'), to deal in the Software without restriction, including
13
+ without limitation the rights to use, copy, modify, merge, publish,
14
+ distribute, sublicense, and/or sell copies of the Software, and to
15
+ permit persons to whom the Software is furnished to do so, subject to
16
+ the following conditions:
17
+
18
+ The above copyright notice and this permission notice shall be
19
+ included in all copies or substantial portions of the Software.
20
+
21
+ THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,
22
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
23
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
24
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
25
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
26
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
27
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
File without changes
File without changes
File without changes
data/lib/skellington.rb CHANGED
@@ -3,6 +3,7 @@ require 'yaml'
3
3
  require 'fileutils'
4
4
  require 'erubis'
5
5
  require 'git'
6
+ require 'bootstrap'
6
7
 
7
8
  require 'skellington/version'
8
9
  require 'skellington/generator'
@@ -6,12 +6,19 @@ module Skellington
6
6
  end
7
7
  map %w(-v --version) => :version
8
8
 
9
- desc 'generate some_path', 'Generate a skeleton Sinatra app named SomePath at some_path'
9
+ desc 'generate some_path', 'Generate a skeleton app named SomePath at some_path'
10
+ method_option :framework,
11
+ default: 'sinatra',
12
+ description: 'Framework to generate for',
13
+ enum: [
14
+ 'sinatra',
15
+ 'jekyll'
16
+ ]
10
17
  method_option :licensor,
11
18
  aliases: '-l',
12
19
  description: 'Name to insert into the license file'
13
20
  def generate wormname
14
- @g = Generator.new wormname
21
+ @g = Generator.new wormname, options
15
22
  @g.licensor = options[:licensor]
16
23
  @g.run
17
24
  end
@@ -1,15 +1,16 @@
1
1
  module Skellington
2
2
  class Generator
3
- attr_reader :path, :filename, :camelname, :files, :gems
3
+ attr_reader :path, :filename, :camelname, :files, :gems, :framework
4
4
  attr_accessor :licensor
5
5
 
6
- def initialize path
6
+ def initialize path, options = {}
7
+ @framework = options[:framework] ? options[:framework] : 'sinatra'
7
8
  @full_path = path
8
9
  @path = File.dirname @full_path
9
10
  @filename = File.basename(@full_path)
10
11
  @camelname = Skellington.camelise(wormname)
11
- @gems = config['gems']
12
- @files = config['files']
12
+ @gems = config[@framework]['gems']
13
+ @files = config[@framework]['files']
13
14
  end
14
15
 
15
16
  def config
@@ -32,6 +33,18 @@ module Skellington
32
33
  t = Template.new k, self
33
34
  t.write
34
35
  end
36
+
37
+ if @framework == 'jekyll'
38
+ root = "#{self.path}/#{self.wormname}"
39
+
40
+ FileUtils.mkdir_p "#{root}/javascripts"
41
+ FileUtils.cp_r "#{Bootstrap.assets_path}/javascripts/bootstrap", "#{root}/javascripts"
42
+ FileUtils.cp "#{Bootstrap.assets_path}/javascripts/bootstrap.min.js", "#{root}/javascripts"
43
+
44
+ FileUtils.mkdir_p "#{root}/_sass"
45
+ FileUtils.cp_r "#{Bootstrap.assets_path}/stylesheets/bootstrap", "#{root}/_sass"
46
+ FileUtils.cp "#{Bootstrap.assets_path}/stylesheets/_bootstrap.scss", "#{root}/_sass/bootstrap.scss"
47
+ end
35
48
  end
36
49
 
37
50
  def wormname
@@ -15,7 +15,7 @@ module Skellington
15
15
  end
16
16
 
17
17
  def templates_dir
18
- File.join File.dirname(__FILE__), '..', 'templates'
18
+ File.join File.dirname(__FILE__), '..', @generator.framework, 'templates'
19
19
  end
20
20
 
21
21
  def write
@@ -1,3 +1,3 @@
1
1
  module Skellington
2
- VERSION = '0.7.5'
2
+ VERSION = '0.8.0'
3
3
  end
data/skellington.gemspec CHANGED
@@ -21,6 +21,7 @@ Gem::Specification.new do |spec|
21
21
  spec.add_dependency 'thor', '~> 0.19'
22
22
  spec.add_dependency 'erubis', '~> 2.7'
23
23
  spec.add_dependency 'git', '~> 1.2'
24
+ spec.add_dependency 'bootstrap', '~> 4.0.0.alpha4'
24
25
 
25
26
  spec.add_development_dependency 'coveralls', '~> 0.7'
26
27
  spec.add_development_dependency 'bundler', '~> 1.7'
@@ -0,0 +1,23 @@
1
+ module Skellington
2
+ describe CLI do
3
+ let :subject do
4
+ described_class.new
5
+ end
6
+
7
+ it 'sets us sass' do
8
+ subject.options = { framework: 'jekyll' }
9
+ subject.generate 'dummy_app'
10
+
11
+ expect('dummy_app/assets/application.scss').to have_content (
12
+ """
13
+ ---
14
+ ---
15
+
16
+ @import 'bootstrap-custom';
17
+ @import 'bootstrap';
18
+ @import 'fonts';
19
+ """
20
+ )
21
+ end
22
+ end
23
+ end
@@ -0,0 +1,48 @@
1
+ module Skellington
2
+ describe CLI do
3
+ let :subject do
4
+ described_class.new
5
+ end
6
+
7
+ it 'installs bootstrap' do
8
+ subject.options = { framework: 'jekyll' }
9
+ subject.generate 'dummy_app'
10
+
11
+ expect(Dir).to exist 'dummy_app/javascripts/bootstrap'
12
+ expect('dummy_app/javascripts/bootstrap.min.js').to have_content (
13
+ """
14
+ /*!
15
+ * Bootstrap v4.0.0-alpha.4 (http://getbootstrap.com)
16
+ * Copyright 2011-2016 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
17
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
18
+ */
19
+ """
20
+ )
21
+
22
+ expect(Dir).to exist 'dummy_app/_sass/bootstrap'
23
+ expect('dummy_app/_sass/bootstrap.scss').to have_content (
24
+ """
25
+ /*!
26
+ * Bootstrap v4.0.0-alpha.4 (http://getbootstrap.com)
27
+ * Copyright 2011-2016 The Bootstrap Authors
28
+ * Copyright 2011-2016 Twitter, Inc.
29
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
30
+ */
31
+ """
32
+ )
33
+ expect('dummy_app/_sass/bootstrap-custom.scss').to have_content (
34
+ """
35
+ $brand-primary: #fa8100;
36
+ """
37
+ )
38
+ expect('dummy_app/_sass/fonts.scss').to have_content (
39
+ """
40
+ @import url(http://maxcdn.bootstrapcdn.com/font-awesome/4.6.3/css/font-awesome.min.css);
41
+ @import url(http://fonts.googleapis.com/css?family=Ubuntu+Mono);
42
+
43
+ $font-family-san-serif: 'Ubuntu Mono'
44
+ """
45
+ )
46
+ end
47
+ end
48
+ end
@@ -0,0 +1,23 @@
1
+ module Skellington
2
+ describe CLI do
3
+ let :subject do
4
+ described_class.new
5
+ end
6
+
7
+ it 'generates a _config.yml file' do
8
+ subject.options = { framework: 'jekyll' }
9
+ subject.generate 'dummy_app'
10
+ expect('dummy_app/_config.yml').to have_content (
11
+ """
12
+ ---
13
+ defaults:
14
+ - scope:
15
+ path: ''
16
+ values:
17
+ layout: default
18
+ permalink: pretty
19
+ """
20
+ )
21
+ end
22
+ end
23
+ end
@@ -0,0 +1,23 @@
1
+ module Skellington
2
+ describe CLI do
3
+ let :subject do
4
+ described_class.new
5
+ end
6
+
7
+ it 'generates a Gemfile' do
8
+ subject.options = { framework: 'jekyll' }
9
+ subject.generate 'dummy_app'
10
+ expect('dummy_app/Gemfile').to have_content (
11
+ """
12
+ source 'https://rubygems.org'
13
+
14
+ /ruby '[0-9]*\\.[0-9]*\\.[0-9]*'/
15
+
16
+ gem 'github-pages'
17
+ gem 'bootstrap', '~> 4.0.0.alpha4'
18
+ gem 'rake'
19
+ """
20
+ )
21
+ end
22
+ end
23
+ end
@@ -0,0 +1,20 @@
1
+ module Skellington
2
+ describe CLI do
3
+ let :subject do
4
+ described_class.new
5
+ end
6
+
7
+ it 'initialises a git repo' do
8
+ subject.options = { framework: 'jekyll' }
9
+ subject.generate 'dummy_app'
10
+ expect(Dir).to exist 'dummy_app/.git'
11
+
12
+ expect('dummy_app/.gitignore').to have_content (
13
+ """
14
+ _site/
15
+ .sass-cache
16
+ """
17
+ )
18
+ end
19
+ end
20
+ end
@@ -0,0 +1,22 @@
1
+ module Skellington
2
+ describe CLI do
3
+ let :subject do
4
+ described_class.new
5
+ end
6
+
7
+ it 'creates a default index page' do
8
+ subject.options = { framework: 'jekyll' }
9
+ subject.generate 'dummy_app'
10
+ expect(Dir).to exist 'dummy_app/index.md'
11
+
12
+ expect('dummy_app/.gitignore').to have_content (
13
+ """
14
+ ---
15
+ ---
16
+
17
+ # Hold tight DummyApp
18
+ """
19
+ )
20
+ end
21
+ end
22
+ end
@@ -0,0 +1,45 @@
1
+ module Skellington
2
+ describe CLI do
3
+ let :subject do
4
+ described_class.new
5
+ end
6
+
7
+ it 'generates a default layout' do
8
+ subject.options = { framework: 'jekyll' }
9
+ subject.generate 'dummy_app'
10
+ expect('dummy_app/_layouts/default.html').to have_content (
11
+ """
12
+ <!DOCTYPE html>
13
+ <html lang='en'>
14
+ <head>
15
+ <meta charset='utf-8' />
16
+ <meta http-equiv='X-UA-Compatible' content='IE=edge' />
17
+ <meta name='viewport' content='width=device-width, initial-scale=1' />
18
+
19
+ <!-- HTML5 Shim and Respond.js IE8 support of HTML5 elements and media queries -->
20
+ <!-- WARNING: Respond.js doesn't work if you view the page via file:// -->
21
+ <!--[if lt IE 9]>
22
+ <script src='https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js'></script>
23
+ <script src='https://oss.maxcdn.com/respond/1.4.2/respond.min.js'></script>
24
+ <![endif]-->
25
+
26
+ <!-- jQuery (necessary for Bootstrap's JavaScript plugins) -->
27
+ <script src='https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js'></script>
28
+ <!-- Include all compiled plugins (below), or include individual files as needed -->
29
+ <script src='/javascripts/bootstrap.min.js'></script>
30
+
31
+ <link rel='stylesheet' href='/assets/application.css' type='text/css' />
32
+ <title>{{ page.title }}</title>
33
+ </head>
34
+
35
+ <body>
36
+ <div class='container'>
37
+ {{ content }}
38
+ </div>
39
+ </body>
40
+ </html>
41
+ """
42
+ )
43
+ end
44
+ end
45
+ end
@@ -0,0 +1,75 @@
1
+ module Skellington
2
+ describe CLI do
3
+ let :subject do
4
+ described_class.new
5
+ end
6
+
7
+ context 'generate a LICENSE' do
8
+ it 'plain license' do
9
+ Timecop.freeze Time.local 2016, 01, 19
10
+ subject.options = { framework: 'jekyll' }
11
+ subject.generate 'dummy_app'
12
+ expect('dummy_app/LICENSE.md').to have_content (
13
+ """
14
+ ##Copyright (c) 2016 YOUR-NAME-HERE
15
+
16
+ #MIT License
17
+
18
+ Permission is hereby granted, free of charge, to any person obtaining
19
+ a copy of this software and associated documentation files (the
20
+ 'Software'), to deal in the Software without restriction, including
21
+ without limitation the rights to use, copy, modify, merge, publish,
22
+ distribute, sublicense, and/or sell copies of the Software, and to
23
+ permit persons to whom the Software is furnished to do so, subject to
24
+ the following conditions:
25
+
26
+ The above copyright notice and this permission notice shall be
27
+ included in all copies or substantial portions of the Software.
28
+
29
+ THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,
30
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
31
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
32
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
33
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
34
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
35
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
36
+ """
37
+ )
38
+ Timecop.return
39
+ end
40
+
41
+ it 'with a provided name' do
42
+ Timecop.freeze Time.local 2016, 01, 19
43
+ subject.options = {licensor: 'Beyoncé'}
44
+ subject.generate 'dummy_app'
45
+ expect('dummy_app/LICENSE.md').to have_content (
46
+ """
47
+ ##Copyright (c) 2016 Beyoncé
48
+
49
+ #MIT License
50
+
51
+ Permission is hereby granted, free of charge, to any person obtaining
52
+ a copy of this software and associated documentation files (the
53
+ 'Software'), to deal in the Software without restriction, including
54
+ without limitation the rights to use, copy, modify, merge, publish,
55
+ distribute, sublicense, and/or sell copies of the Software, and to
56
+ permit persons to whom the Software is furnished to do so, subject to
57
+ the following conditions:
58
+
59
+ The above copyright notice and this permission notice shall be
60
+ included in all copies or substantial portions of the Software.
61
+
62
+ THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,
63
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
64
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
65
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
66
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
67
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
68
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
69
+ """
70
+ )
71
+ Timecop.return
72
+ end
73
+ end
74
+ end
75
+ end
@@ -0,0 +1,17 @@
1
+ module Skellington
2
+ describe CLI do
3
+ let :subject do
4
+ described_class.new
5
+ end
6
+
7
+ it 'generates a .ruby-version' do
8
+ subject.options = { framework: 'jekyll' }
9
+ expect { subject.generate 'dummy_app' }.to produce_file 'dummy_app/.ruby-version'
10
+ expect('dummy_app/.ruby-version').to have_content (
11
+ """
12
+ /[0-9]*\\.[0-9]*\\.[0-9]*/
13
+ """
14
+ )
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,29 @@
1
+ module Skellington
2
+ describe CLI do
3
+ let :subject do
4
+ described_class.new
5
+ end
6
+
7
+ it 'generates correct output' do
8
+ subject.options = { framework: 'jekyll' }
9
+ expect { subject.generate 'dummy_app' }.to output(/
10
+ Your new Jekyll site DummyApp has been created
11
+
12
+ Now do
13
+
14
+ cd dummy_app
15
+ bundle
16
+ bundle exec jekyll
17
+
18
+ which will launch the site \(at http:\/\/localhost:4000\)
19
+
20
+ And presuming that works OK
21
+
22
+ git add .
23
+ git commit -m 'First commit'
24
+
25
+ You should also fill in your name in LICENSE.md
26
+ /).to_stdout
27
+ end
28
+ end
29
+ end
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: skellington
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.7.5
4
+ version: 0.8.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - pikesley
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-09-23 00:00:00.000000000 Z
11
+ date: 2016-09-26 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: thor
@@ -52,6 +52,20 @@ dependencies:
52
52
  - - "~>"
53
53
  - !ruby/object:Gem::Version
54
54
  version: '1.2'
55
+ - !ruby/object:Gem::Dependency
56
+ name: bootstrap
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - "~>"
60
+ - !ruby/object:Gem::Version
61
+ version: 4.0.0.alpha4
62
+ type: :runtime
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - "~>"
67
+ - !ruby/object:Gem::Version
68
+ version: 4.0.0.alpha4
55
69
  - !ruby/object:Gem::Dependency
56
70
  name: coveralls
57
71
  requirement: !ruby/object:Gem::Requirement
@@ -168,69 +182,90 @@ files:
168
182
  - Rakefile
169
183
  - bin/skellington
170
184
  - config/config.yaml
185
+ - lib/jekyll/templates/.gitignore.eruby
186
+ - lib/jekyll/templates/.ruby-version.eruby
187
+ - lib/jekyll/templates/Gemfile.eruby
188
+ - lib/jekyll/templates/LICENSE.md.eruby
189
+ - lib/jekyll/templates/_config.yml.eruby
190
+ - lib/jekyll/templates/_layouts/default.html.eruby
191
+ - lib/jekyll/templates/_sass/bootstrap-custom.scss.eruby
192
+ - lib/jekyll/templates/_sass/fonts.scss.eruby
193
+ - lib/jekyll/templates/assets/application.scss.eruby
194
+ - lib/jekyll/templates/index.md.eruby
195
+ - lib/jekyll/templates/post-run.eruby
196
+ - lib/sinatra/templates/.gitignore.eruby
197
+ - lib/sinatra/templates/.rspec.eruby
198
+ - lib/sinatra/templates/.ruby-version.eruby
199
+ - lib/sinatra/templates/Gemfile.eruby
200
+ - lib/sinatra/templates/Guardfile.eruby
201
+ - lib/sinatra/templates/LICENSE.md.eruby
202
+ - lib/sinatra/templates/Procfile.eruby
203
+ - lib/sinatra/templates/Rakefile.eruby
204
+ - lib/sinatra/templates/config.rb.eruby
205
+ - lib/sinatra/templates/config.ru.eruby
206
+ - lib/sinatra/templates/config/config.yml.eruby
207
+ - lib/sinatra/templates/lib/app.rb.eruby
208
+ - lib/sinatra/templates/lib/app/helpers.rb.eruby
209
+ - lib/sinatra/templates/lib/app/racks.rb.eruby
210
+ - lib/sinatra/templates/post-run.eruby
211
+ - lib/sinatra/templates/public/assets/favicon.ico.eruby
212
+ - lib/sinatra/templates/public/css/styles.css.eruby
213
+ - lib/sinatra/templates/public/js/app.js.eruby
214
+ - lib/sinatra/templates/public/sass/_fonts.scss.eruby
215
+ - lib/sinatra/templates/public/sass/_footer.scss.eruby
216
+ - lib/sinatra/templates/public/sass/_github-corner.scss.eruby
217
+ - lib/sinatra/templates/public/sass/_variables.scss.eruby
218
+ - lib/sinatra/templates/public/sass/styles.scss.eruby
219
+ - lib/sinatra/templates/spec/app/app_spec.rb.eruby
220
+ - lib/sinatra/templates/spec/app/helpers_spec.rb.eruby
221
+ - lib/sinatra/templates/spec/javascripts/app_spec.js.eruby
222
+ - lib/sinatra/templates/spec/javascripts/support/jasmine.yml.eruby
223
+ - lib/sinatra/templates/spec/javascripts/support/jasmine_helper.rb.eruby
224
+ - lib/sinatra/templates/spec/spec_helper.rb.eruby
225
+ - lib/sinatra/templates/views/default.erb.eruby
226
+ - lib/sinatra/templates/views/includes/footer.erb.eruby
227
+ - lib/sinatra/templates/views/includes/github-corner.erb.eruby
228
+ - lib/sinatra/templates/views/includes/header.erb.eruby
229
+ - lib/sinatra/templates/views/index.erb.eruby
171
230
  - lib/skellington.rb
172
231
  - lib/skellington/cli.rb
173
232
  - lib/skellington/generator.rb
174
233
  - lib/skellington/helpers.rb
175
234
  - lib/skellington/template.rb
176
235
  - lib/skellington/version.rb
177
- - lib/templates/.gitignore.eruby
178
- - lib/templates/.rspec.eruby
179
- - lib/templates/.ruby-version.eruby
180
- - lib/templates/Gemfile.eruby
181
- - lib/templates/Guardfile.eruby
182
- - lib/templates/LICENSE.md.eruby
183
- - lib/templates/Procfile.eruby
184
- - lib/templates/Rakefile.eruby
185
- - lib/templates/config.rb.eruby
186
- - lib/templates/config.ru.eruby
187
- - lib/templates/config/config.yml.eruby
188
- - lib/templates/lib/app.rb.eruby
189
- - lib/templates/lib/app/helpers.rb.eruby
190
- - lib/templates/lib/app/racks.rb.eruby
191
- - lib/templates/post-run.eruby
192
- - lib/templates/public/assets/favicon.ico.eruby
193
- - lib/templates/public/css/styles.css.eruby
194
- - lib/templates/public/js/app.js.eruby
195
- - lib/templates/public/sass/_fonts.scss.eruby
196
- - lib/templates/public/sass/_footer.scss.eruby
197
- - lib/templates/public/sass/_github-corner.scss.eruby
198
- - lib/templates/public/sass/_variables.scss.eruby
199
- - lib/templates/public/sass/styles.scss.eruby
200
- - lib/templates/spec/app/app_spec.rb.eruby
201
- - lib/templates/spec/app/helpers_spec.rb.eruby
202
- - lib/templates/spec/javascripts/app_spec.js.eruby
203
- - lib/templates/spec/javascripts/support/jasmine.yml.eruby
204
- - lib/templates/spec/javascripts/support/jasmine_helper.rb.eruby
205
- - lib/templates/spec/spec_helper.rb.eruby
206
- - lib/templates/views/default.erb.eruby
207
- - lib/templates/views/includes/footer.erb.eruby
208
- - lib/templates/views/includes/github-corner.erb.eruby
209
- - lib/templates/views/includes/header.erb.eruby
210
- - lib/templates/views/index.erb.eruby
211
236
  - skellington.gemspec
212
- - spec/cli/app_spec.rb
213
- - spec/cli/config_rb_spec.rb
214
- - spec/cli/config_ru_spec.rb
215
- - spec/cli/config_yml_spec.rb
216
- - spec/cli/gemfile_spec.rb
217
- - spec/cli/git_spec.rb
218
- - spec/cli/guardfile_spec.rb
219
- - spec/cli/helpers_spec.rb
220
- - spec/cli/includes_spec.rb
221
- - spec/cli/javascript_spec.rb
222
- - spec/cli/layout_spec.rb
223
- - spec/cli/license_spec.rb
224
- - spec/cli/non_local_path_spec.rb
225
- - spec/cli/procfile_spec.rb
226
- - spec/cli/public_spec.rb
227
- - spec/cli/racks_spec.rb
228
- - spec/cli/rakefile_spec.rb
229
- - spec/cli/rbenv_spec.rb
230
- - spec/cli/spec_spec.rb
231
- - spec/cli_spec.rb
232
237
  - spec/hyphens_spec.rb
238
+ - spec/jekyll/cli/assets_css_spec.rb
239
+ - spec/jekyll/cli/bootstrap_spec.rb
240
+ - spec/jekyll/cli/config_yml_spec.rb
241
+ - spec/jekyll/cli/gemfile_spec.rb
242
+ - spec/jekyll/cli/git_spec.rb
243
+ - spec/jekyll/cli/index_md.rb
244
+ - spec/jekyll/cli/layout_spec.rb
245
+ - spec/jekyll/cli/license_spec.rb
246
+ - spec/jekyll/cli/rbenv_spec.rb
247
+ - spec/jekyll/cli_spec.rb
233
248
  - spec/no-clobber_spec.rb
249
+ - spec/non_local_path_spec.rb
250
+ - spec/sinatra/cli/app_spec.rb
251
+ - spec/sinatra/cli/config_rb_spec.rb
252
+ - spec/sinatra/cli/config_ru_spec.rb
253
+ - spec/sinatra/cli/config_yml_spec.rb
254
+ - spec/sinatra/cli/gemfile_spec.rb
255
+ - spec/sinatra/cli/git_spec.rb
256
+ - spec/sinatra/cli/guardfile_spec.rb
257
+ - spec/sinatra/cli/helpers_spec.rb
258
+ - spec/sinatra/cli/includes_spec.rb
259
+ - spec/sinatra/cli/javascript_spec.rb
260
+ - spec/sinatra/cli/layout_spec.rb
261
+ - spec/sinatra/cli/license_spec.rb
262
+ - spec/sinatra/cli/procfile_spec.rb
263
+ - spec/sinatra/cli/public_spec.rb
264
+ - spec/sinatra/cli/racks_spec.rb
265
+ - spec/sinatra/cli/rakefile_spec.rb
266
+ - spec/sinatra/cli/rbenv_spec.rb
267
+ - spec/sinatra/cli/spec_spec.rb
268
+ - spec/sinatra/cli_spec.rb
234
269
  - spec/skellington_spec.rb
235
270
  - spec/spec_helper.rb
236
271
  homepage: http://sam.pikesley.org/projects/skellington/
@@ -258,27 +293,37 @@ signing_key:
258
293
  specification_version: 4
259
294
  summary: Opinionated boilerplate skeleton generator for a Sinatra app
260
295
  test_files:
261
- - spec/cli/app_spec.rb
262
- - spec/cli/config_rb_spec.rb
263
- - spec/cli/config_ru_spec.rb
264
- - spec/cli/config_yml_spec.rb
265
- - spec/cli/gemfile_spec.rb
266
- - spec/cli/git_spec.rb
267
- - spec/cli/guardfile_spec.rb
268
- - spec/cli/helpers_spec.rb
269
- - spec/cli/includes_spec.rb
270
- - spec/cli/javascript_spec.rb
271
- - spec/cli/layout_spec.rb
272
- - spec/cli/license_spec.rb
273
- - spec/cli/non_local_path_spec.rb
274
- - spec/cli/procfile_spec.rb
275
- - spec/cli/public_spec.rb
276
- - spec/cli/racks_spec.rb
277
- - spec/cli/rakefile_spec.rb
278
- - spec/cli/rbenv_spec.rb
279
- - spec/cli/spec_spec.rb
280
- - spec/cli_spec.rb
281
296
  - spec/hyphens_spec.rb
297
+ - spec/jekyll/cli/assets_css_spec.rb
298
+ - spec/jekyll/cli/bootstrap_spec.rb
299
+ - spec/jekyll/cli/config_yml_spec.rb
300
+ - spec/jekyll/cli/gemfile_spec.rb
301
+ - spec/jekyll/cli/git_spec.rb
302
+ - spec/jekyll/cli/index_md.rb
303
+ - spec/jekyll/cli/layout_spec.rb
304
+ - spec/jekyll/cli/license_spec.rb
305
+ - spec/jekyll/cli/rbenv_spec.rb
306
+ - spec/jekyll/cli_spec.rb
282
307
  - spec/no-clobber_spec.rb
308
+ - spec/non_local_path_spec.rb
309
+ - spec/sinatra/cli/app_spec.rb
310
+ - spec/sinatra/cli/config_rb_spec.rb
311
+ - spec/sinatra/cli/config_ru_spec.rb
312
+ - spec/sinatra/cli/config_yml_spec.rb
313
+ - spec/sinatra/cli/gemfile_spec.rb
314
+ - spec/sinatra/cli/git_spec.rb
315
+ - spec/sinatra/cli/guardfile_spec.rb
316
+ - spec/sinatra/cli/helpers_spec.rb
317
+ - spec/sinatra/cli/includes_spec.rb
318
+ - spec/sinatra/cli/javascript_spec.rb
319
+ - spec/sinatra/cli/layout_spec.rb
320
+ - spec/sinatra/cli/license_spec.rb
321
+ - spec/sinatra/cli/procfile_spec.rb
322
+ - spec/sinatra/cli/public_spec.rb
323
+ - spec/sinatra/cli/racks_spec.rb
324
+ - spec/sinatra/cli/rakefile_spec.rb
325
+ - spec/sinatra/cli/rbenv_spec.rb
326
+ - spec/sinatra/cli/spec_spec.rb
327
+ - spec/sinatra/cli_spec.rb
283
328
  - spec/skellington_spec.rb
284
329
  - spec/spec_helper.rb