skellington 0.0.2 → 0.0.4

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: ebe62e8d497b68c839729162c81cb23103697759
4
- data.tar.gz: b459a386d94e4789cb0c8722ce34310e5884a3ce
3
+ metadata.gz: 2962135240e9ce88b402902718383b2635f09ba7
4
+ data.tar.gz: d2d14666f98f069aeb631c9f4ee539dcef286389
5
5
  SHA512:
6
- metadata.gz: ad36570bf89289381d4b0bbe7e72d7366c2e75febfb12dd38a040a9aa6b6d981e82aad119b096b21bc4fac4451c0929dce6526fbfe6b968108d64faa3d272466
7
- data.tar.gz: 57f8e3b4333e8aff3290b8be31cede0c3dc961a7bcb7df4d53591fb06cab687f79decbd5c7aab3f10f9f0bf5c6d55d52dfc185c8c97cb5ce615ad8d618e07a01
6
+ metadata.gz: eb0a92bf9bd38233a546ed4fbb86c6ce1d4014758ba744c9bd31d30cc79d24ee06a8f610533599a31560791b10db6003a92862b0edcca74f694ff996167ee85b
7
+ data.tar.gz: f28a15c57149fa31121cbd1396005e234a864013be04b4fc89011256519753b1e5bf7e8ffc4fa0fe5634768026c017f005b942638f6dbe77812999c1dc4c2569
data/README.md CHANGED
@@ -7,4 +7,36 @@
7
7
 
8
8
  # Skellington
9
9
 
10
- Zero to cuke-powered Sinatra starter app
10
+ Generate tedious Cucumber and Sinatra boilerplate like a boss
11
+
12
+ $ skellington generate naming_things_is_hard
13
+
14
+ Generating naming_things_is_hard/Gemfile...done
15
+ Generating naming_things_is_hard/Rakefile...done
16
+ Generating naming_things_is_hard/Procfile...done
17
+ Generating naming_things_is_hard/config.ru...done
18
+ Generating naming_things_is_hard/features/naming_things_is_hard.feature...done
19
+ Generating naming_things_is_hard/features/support/env.rb...done
20
+ Generating naming_things_is_hard/lib/naming_things_is_hard.rb...done
21
+
22
+ Your new Sinatra app 'NamingThingsIsHard' has been created
23
+
24
+ Now do
25
+
26
+ cd naming_things_is_hard
27
+ bundle
28
+ rake
29
+
30
+ And presuming that passes OK
31
+
32
+ badger > README.md
33
+ git add .
34
+ git commit -m 'First commit'
35
+
36
+ You can run the app with
37
+
38
+ rackup
39
+
40
+ This assumes a bunch of things about your system, you'll need at least
41
+
42
+ * A reasonable git installation
@@ -0,0 +1,7 @@
1
+ Feature: Generate skellington
2
+
3
+ Scenario: get some feedback
4
+ When I successfully run `skellington generate dummy_gem`
5
+ Then the output should contain "Generating dummy_gem/Gemfile"
6
+ And the output should contain "bundle"
7
+ And the output should contain "rake"
@@ -0,0 +1,5 @@
1
+ Feature: Generate skellington
2
+
3
+ Scenario: git init the repo
4
+ When I successfully run `skellington generate dummy_gem`
5
+ Then a directory named "dummy_gem/.git/" should exist
data/lib/skellington.rb CHANGED
@@ -2,8 +2,10 @@ require 'thor'
2
2
  require 'yaml'
3
3
  require 'fileutils'
4
4
  require 'erubis'
5
+ require 'git'
5
6
 
6
7
  require 'skellington/version'
7
8
  require 'skellington/generator'
8
9
  require 'skellington/cli'
10
+ require 'skellington/helpers'
9
11
  require 'skellington/template'
@@ -1,8 +1,10 @@
1
1
  module Skellington
2
2
  class CLI < Thor
3
- desc 'generate', 'Generate a skeleton Sinatra app'
3
+ desc 'generate PATH', 'Generate a skeleton Sinatra app at PATH'
4
4
  def generate path
5
5
  @g = Generator.new path
6
+ @g.run
7
+
6
8
  end
7
9
  end
8
10
  end
@@ -45,25 +45,38 @@ module Skellington
45
45
  outpath: "lib/#{@path}.rb"
46
46
  }
47
47
  }
48
+ end
48
49
 
50
+ def run
49
51
  generate
52
+ git_init
53
+ post_run
50
54
  end
51
55
 
52
56
  def generate
57
+ puts ''
53
58
  @files.each do |k, v|
54
59
  t = Template.new k
55
60
  t.params = v[:params]
56
-
57
61
  t.outpath = "#{@path}/#{k}"
58
62
  t.outpath = "#{@path}/#{v[:outpath]}" if v[:outpath]
63
+ print "Generating #{t.outpath}..."
59
64
  t.write
65
+ puts 'done'
60
66
  end
61
67
  end
62
- end
63
68
 
64
- def self.camelise worm_case
65
- parts = worm_case.split '_'
66
- parts.map! { |word| "#{word[0].upcase}#{word[1..-1]}" }
67
- parts.join ''
69
+ def git_init
70
+ Git.init @path
71
+ end
72
+
73
+ def post_run
74
+ puts ''
75
+ puts "Your new Sinatra app '#{Skellington.camelise(@path)}' has been created"
76
+ t = Template.new 'post-run'
77
+ t.params = { path: @path }
78
+ puts t.to_s
79
+ puts ''
80
+ end
68
81
  end
69
82
  end
@@ -0,0 +1,7 @@
1
+ module Skellington
2
+ def self.camelise worm_case
3
+ parts = worm_case.split '_'
4
+ parts.map! { |word| "#{word[0].upcase}#{word[1..-1]}" }
5
+ parts.join ''
6
+ end
7
+ end
@@ -1,3 +1,3 @@
1
1
  module Skellington
2
- VERSION = "0.0.2"
2
+ VERSION = "0.0.4"
3
3
  end
@@ -0,0 +1,16 @@
1
+
2
+ Now do
3
+
4
+ cd <%= path %>
5
+ bundle
6
+ rake
7
+
8
+ And presuming that passes OK
9
+
10
+ badger > README.md
11
+ git add .
12
+ git commit -m 'First commit'
13
+
14
+ You can run the app with
15
+
16
+ rackup
data/skellington.gemspec CHANGED
@@ -21,6 +21,8 @@ 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 'fileutils', '~> 0.7'
24
+ spec.add_dependency 'badgerbadgerbadger', '~> 0.12'
25
+ spec.add_dependency 'git', '~> 1.2'
24
26
 
25
27
  spec.add_development_dependency 'bundler', '~> 1.7'
26
28
  spec.add_development_dependency 'rake', '~> 10.0'
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.0.2
4
+ version: 0.0.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - pikesley
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-01-17 00:00:00.000000000 Z
11
+ date: 2015-01-18 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: thor
@@ -52,6 +52,34 @@ dependencies:
52
52
  - - "~>"
53
53
  - !ruby/object:Gem::Version
54
54
  version: '0.7'
55
+ - !ruby/object:Gem::Dependency
56
+ name: badgerbadgerbadger
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - "~>"
60
+ - !ruby/object:Gem::Version
61
+ version: '0.12'
62
+ type: :runtime
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - "~>"
67
+ - !ruby/object:Gem::Version
68
+ version: '0.12'
69
+ - !ruby/object:Gem::Dependency
70
+ name: git
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - "~>"
74
+ - !ruby/object:Gem::Version
75
+ version: '1.2'
76
+ type: :runtime
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - "~>"
81
+ - !ruby/object:Gem::Version
82
+ version: '1.2'
55
83
  - !ruby/object:Gem::Dependency
56
84
  name: bundler
57
85
  requirement: !ruby/object:Gem::Requirement
@@ -170,9 +198,11 @@ files:
170
198
  - bin/skellington
171
199
  - config/config.yaml
172
200
  - features/app.feature
201
+ - features/cli.feature
173
202
  - features/config.ru.feature
174
203
  - features/cukes.feature
175
204
  - features/gemfile.feature
205
+ - features/git.feature
176
206
  - features/procfile.feature
177
207
  - features/rakefile.feature
178
208
  - features/support/app.feature
@@ -180,6 +210,7 @@ files:
180
210
  - lib/skellington.rb
181
211
  - lib/skellington/cli.rb
182
212
  - lib/skellington/generator.rb
213
+ - lib/skellington/helpers.rb
183
214
  - lib/skellington/template.rb
184
215
  - lib/skellington/version.rb
185
216
  - lib/templates/Gemfile.eruby
@@ -189,6 +220,7 @@ files:
189
220
  - lib/templates/features/first.feature.eruby
190
221
  - lib/templates/features/support/env.rb.eruby
191
222
  - lib/templates/lib/app.rb.eruby
223
+ - lib/templates/post-run.eruby
192
224
  - skellington.gemspec
193
225
  - spec/skellington_spec.rb
194
226
  - spec/spec_helper.rb
@@ -219,9 +251,11 @@ specification_version: 4
219
251
  summary: Opinionated boilerplate skeleton for a cuked Sinatra app
220
252
  test_files:
221
253
  - features/app.feature
254
+ - features/cli.feature
222
255
  - features/config.ru.feature
223
256
  - features/cukes.feature
224
257
  - features/gemfile.feature
258
+ - features/git.feature
225
259
  - features/procfile.feature
226
260
  - features/rakefile.feature
227
261
  - features/support/app.feature