skellington 0.4.9 → 0.4.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 5106f17cf64f2e38d1c05be8e991116246a0b9da
4
- data.tar.gz: 7a9099578f36103b64a781ca82d4caff7795e8d9
3
+ metadata.gz: 3f792949505bdf108189229c2efc1417fb6d60bf
4
+ data.tar.gz: d2c5d61429ec03098c5f7f92ce326ec0cd3a819f
5
5
  SHA512:
6
- metadata.gz: 6477c86bfef764b3015045dfcb77116bfa936f5545c642d5f77ce2b97ca71f4d9dd82208f4ea85b2c2b6f6275cb0deebd995b4de47830f084eda7314e12ad094
7
- data.tar.gz: 7bc18322661d154e74c1133978efa7addad88c1e86b14b8d6a3eea41e6bd5c70775f12f6c641107df2818dc51468ad93bd6703f1c6b27a713659355af788882f
6
+ metadata.gz: 17260eb6ab5f9591ae7b986ee866abbd1b6e4182e55424de8b5a75011d7efbb741a33e191aa7a069b41d0b797b25067ae7c19fb520a64b9fdc932a0817d30b8d
7
+ data.tar.gz: eaff58d31ec7c5464c079209b667b8f933f44a72cbab00da3e509903c379dcbdb25fdafb914e79364e2c55f5c49de4010d37b8b186a1f9d0ff62f35cce2fd3a6
data/README.md CHANGED
@@ -15,37 +15,13 @@ Extremely opinionated generator for your [Sinatra](http://www.sinatrarb.com/) ap
15
15
  * [Rspec](http://rspec.info/)
16
16
  * [Jasmine](http://jasmine.github.io/2.0/introduction.html)
17
17
  * [Bootstrap](http://getbootstrap.com/)
18
+ * An MIT License file
18
19
 
19
20
  Should work fine for both RVM- and rbenv-based setups
20
21
 
21
22
  $ gem install skellington
22
- $ skellington generate naming-things-is-hard
23
- Generating naming_things_is_hard/Gemfile...done
24
- Generating naming_things_is_hard/Guardfile...done
25
- Generating naming_things_is_hard/Rakefile...done
26
- Generating naming_things_is_hard/Procfile...done
27
- Generating naming_things_is_hard/.ruby-version...done
28
- Generating naming_things_is_hard/.rspec...done
29
- Generating naming_things_is_hard/.gitignore...done
30
- Generating naming_things_is_hard/config.ru...done
31
- Generating naming_things_is_hard/features/naming_things_is_hard.feature...done
32
- Generating naming_things_is_hard/features/json.feature...done
33
- Generating naming_things_is_hard/features/step_definitions/naming_things_is_hard_steps.rb...done
34
- Generating naming_things_is_hard/features/support/env.rb...done
35
- Generating naming_things_is_hard/lib/naming_things_is_hard.rb...done
36
- Generating naming_things_is_hard/lib/naming_things_is_hard/racks.rb...done
37
- Generating naming_things_is_hard/lib/naming_things_is_hard/helpers.rb...done
38
- Generating naming_things_is_hard/views/default.erb...done
39
- Generating naming_things_is_hard/views/index.erb...done
40
- Generating naming_things_is_hard/views/includes/header.erb...done
41
- Generating naming_things_is_hard/spec/spec_helper.rb...done
42
- Generating naming_things_is_hard/spec/naming_things_is_hard/naming_things_is_hard_spec.rb...done
43
- Generating naming_things_is_hard/spec/javascripts/support/jasmine.yml...done
44
- Generating naming_things_is_hard/spec/javascripts/support/jasmine_helper.rb...done
45
- Generating naming_things_is_hard/spec/javascripts/naming_things_is_hardSpec.js...done
46
- Generating naming_things_is_hard/public/assets/favicon.ico...done
47
- Generating naming_things_is_hard/public/css/styles.css...done
48
- Generating naming_things_is_hard/public/js/naming_things_is_hard.js...done
23
+ $ skellington generate naming-things-is-hard --licensee 'Beyoncé'
24
+ Generating <lots of stuff>... done
49
25
 
50
26
  Your new Sinatra app NamingThingsIsHard has been created
51
27
 
@@ -66,6 +42,10 @@ Should work fine for both RVM- and rbenv-based setups
66
42
 
67
43
  rackup
68
44
 
45
+ For post-install hints, try
46
+
47
+ skellington postinstall
48
+
69
49
  This assumes a bunch of things, at least:
70
50
 
71
51
  * That you have a reasonable git installation
data/config/config.yaml CHANGED
@@ -24,6 +24,7 @@ gems:
24
24
 
25
25
  files:
26
26
  Gemfile:
27
+ LICENSE.md:
27
28
  Guardfile:
28
29
  Rakefile:
29
30
  Procfile:
@@ -7,9 +7,34 @@ module Skellington
7
7
  map %w(-v --version) => :version
8
8
 
9
9
  desc 'generate some_path', 'Generate a skeleton Sinatra app named SomePath at some_path'
10
+ method_option :licensee,
11
+ aliases: '-l',
12
+ description: 'Name to insert into the license file'
10
13
  def generate wormname
11
14
  @g = Generator.new wormname
15
+ @g.licensee = options[:licensee]
12
16
  @g.run
13
17
  end
18
+
19
+ desc 'postinstall', 'Show some helpful hints'
20
+ def postinstall
21
+ s = 'Some other things you might find useful (sweeten to taste):'
22
+ s << "\n\n"
23
+ s << '* Set up continuous integration in Travis:'
24
+ s << "\n\n"
25
+ s << ' travis init'
26
+ s << "\n\n"
27
+ s << '* Configure a Heroku app:'
28
+ s << "\n\n"
29
+ s << " heroku apps:create YOUR-APP-NAME-HERE --region=eu"
30
+ s << "\n\n"
31
+ s << '* Get Travis to continuously deploy to Heroku:'
32
+ s << "\n\n"
33
+ s << ' travis setup heroku'
34
+ s << "\n\n"
35
+ s << "(This all depends on you having Travis and Heroku installed and configured)"
36
+
37
+ puts s
38
+ end
14
39
  end
15
40
  end
@@ -1,6 +1,7 @@
1
1
  module Skellington
2
2
  class Generator
3
3
  attr_reader :path, :filename, :camelname, :files, :gems
4
+ attr_accessor :licensee
4
5
 
5
6
  def initialize path
6
7
  @full_path = path
@@ -1,3 +1,3 @@
1
1
  module Skellington
2
- VERSION = '0.4.9'
2
+ VERSION = '0.4.10'
3
3
  end
@@ -0,0 +1,27 @@
1
+ <% if @gen.licensee %>
2
+ <% l = @gen.licensee %>
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.
@@ -19,3 +19,11 @@ And presuming that passes OK
19
19
  You can run the app with
20
20
 
21
21
  bundle exec rackup
22
+ <% unless @gen.licensee %>
23
+
24
+ You should also fill in your name in LICENSE.md
25
+ <% end %>
26
+
27
+ For post-install hints, try
28
+
29
+ skellington postinstall
data/skellington.gemspec CHANGED
@@ -28,4 +28,5 @@ Gem::Specification.new do |spec|
28
28
  spec.add_development_dependency 'rspec', '~> 3.1'
29
29
  spec.add_development_dependency 'guard-rspec', '~> 4.5'
30
30
  spec.add_development_dependency 'curacao', '~> 0.1'
31
+ spec.add_development_dependency 'timecop', '~> 0.8'
31
32
  end
@@ -0,0 +1,74 @@
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.generate 'dummy_app'
11
+ expect('dummy_app/LICENSE.md').to have_content (
12
+ """
13
+ ##Copyright (c) 2016 YOUR-NAME-HERE
14
+
15
+ #MIT License
16
+
17
+ Permission is hereby granted, free of charge, to any person obtaining
18
+ a copy of this software and associated documentation files (the
19
+ 'Software'), to deal in the Software without restriction, including
20
+ without limitation the rights to use, copy, modify, merge, publish,
21
+ distribute, sublicense, and/or sell copies of the Software, and to
22
+ permit persons to whom the Software is furnished to do so, subject to
23
+ the following conditions:
24
+
25
+ The above copyright notice and this permission notice shall be
26
+ included in all copies or substantial portions of the Software.
27
+
28
+ THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,
29
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
30
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
31
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
32
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
33
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
34
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
35
+ """
36
+ )
37
+ Timecop.return
38
+ end
39
+
40
+ it 'with a provided name' do
41
+ Timecop.freeze Time.local 2016, 01, 19
42
+ subject.options = {licensee: 'Beyoncé'}
43
+ subject.generate 'dummy_app'
44
+ expect('dummy_app/LICENSE.md').to have_content (
45
+ """
46
+ ##Copyright (c) 2016 Beyoncé
47
+
48
+ #MIT License
49
+
50
+ Permission is hereby granted, free of charge, to any person obtaining
51
+ a copy of this software and associated documentation files (the
52
+ 'Software'), to deal in the Software without restriction, including
53
+ without limitation the rights to use, copy, modify, merge, publish,
54
+ distribute, sublicense, and/or sell copies of the Software, and to
55
+ permit persons to whom the Software is furnished to do so, subject to
56
+ the following conditions:
57
+
58
+ The above copyright notice and this permission notice shall be
59
+ included in all copies or substantial portions of the Software.
60
+
61
+ THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,
62
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
63
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
64
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
65
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
66
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
67
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
68
+ """
69
+ )
70
+ Timecop.return
71
+ end
72
+ end
73
+ end
74
+ end
data/spec/cli_spec.rb CHANGED
@@ -26,6 +26,36 @@ And presuming that passes OK
26
26
  You can run the app with
27
27
 
28
28
  bundle exec rackup
29
+
30
+ You should also fill in your name in LICENSE.md
31
+
32
+ For post-install hints, try
33
+
34
+ skellington postinstall
35
+ /).to_stdout
36
+ end
37
+
38
+ it 'suppresses the LICENSE help when supplied with a licensee' do
39
+ subject.options = {licensee: 'Beyoncé'}
40
+ expect { subject.generate 'dummy_app' }.to_not output(/
41
+ You should also fill in your name in LICENSE.md
42
+ /).to_stdout
43
+ end
44
+
45
+ it 'gives helpful post-generate advice' do
46
+ expect { subject.postinstall }.to output(/Some other things you might find useful \(sweeten to taste\):
47
+
48
+ \* Set up continuous integration in Travis:
49
+
50
+ travis init
51
+
52
+ \* Configure a Heroku app:
53
+
54
+ heroku apps:create YOUR-APP-NAME-HERE --region=eu
55
+
56
+ \* Get Travis to continuously deploy to Heroku:
57
+
58
+ travis setup heroku
29
59
  /).to_stdout
30
60
  end
31
61
  end
data/spec/spec_helper.rb CHANGED
@@ -1,6 +1,7 @@
1
1
  require 'skellington'
2
2
  require 'coveralls'
3
3
  require 'curacao'
4
+ require 'timecop'
4
5
 
5
6
  Coveralls.wear_merged!
6
7
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: skellington
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.9
4
+ version: 0.4.10
5
5
  platform: ruby
6
6
  authors:
7
7
  - pikesley
@@ -136,6 +136,20 @@ dependencies:
136
136
  - - "~>"
137
137
  - !ruby/object:Gem::Version
138
138
  version: '0.1'
139
+ - !ruby/object:Gem::Dependency
140
+ name: timecop
141
+ requirement: !ruby/object:Gem::Requirement
142
+ requirements:
143
+ - - "~>"
144
+ - !ruby/object:Gem::Version
145
+ version: '0.8'
146
+ type: :development
147
+ prerelease: false
148
+ version_requirements: !ruby/object:Gem::Requirement
149
+ requirements:
150
+ - - "~>"
151
+ - !ruby/object:Gem::Version
152
+ version: '0.8'
139
153
  description: Generate tedious Cucumber and Sinatra boilerplate like a boss
140
154
  email:
141
155
  - sam@pikesley.org
@@ -166,6 +180,7 @@ files:
166
180
  - lib/templates/.ruby-version.eruby
167
181
  - lib/templates/Gemfile.eruby
168
182
  - lib/templates/Guardfile.eruby
183
+ - lib/templates/LICENSE.md.eruby
169
184
  - lib/templates/Procfile.eruby
170
185
  - lib/templates/Rakefile.eruby
171
186
  - lib/templates/config.ru.eruby
@@ -197,6 +212,7 @@ files:
197
212
  - spec/cli/git_spec.rb
198
213
  - spec/cli/guardfile_spec.rb
199
214
  - spec/cli/javascript_spec.rb
215
+ - spec/cli/license_spec.rb
200
216
  - spec/cli/non_local_path_spec.rb
201
217
  - spec/cli/procfile_spec.rb
202
218
  - spec/cli/public_spec.rb
@@ -240,6 +256,7 @@ test_files:
240
256
  - spec/cli/git_spec.rb
241
257
  - spec/cli/guardfile_spec.rb
242
258
  - spec/cli/javascript_spec.rb
259
+ - spec/cli/license_spec.rb
243
260
  - spec/cli/non_local_path_spec.rb
244
261
  - spec/cli/procfile_spec.rb
245
262
  - spec/cli/public_spec.rb