skellington 0.4.3 → 0.4.4
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 +4 -4
- data/README.md +1 -1
- data/lib/skellington/version.rb +1 -1
- data/skellington.gemspec +1 -0
- data/spec/cli/cukes_spec.rb +2 -3
- data/spec/cli/javascript_spec.rb +2 -3
- data/spec/cli/public_spec.rb +2 -3
- data/spec/cli/rbenv_spec.rb +1 -2
- data/spec/spec_helper.rb +1 -28
- metadata +16 -6
- data/spec/matcher/have_content_spec.rb +0 -137
- data/spec/support/matchers/have_content.rb +0 -47
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f235cc13c4aee809b69d238b567910174a9e4a52
|
4
|
+
data.tar.gz: 7f57088c57f77afab65fa099ccf929596b4cebcd
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 48ad41857da93100b3d9cf3b373eff1a2a547da5238af5703590c2185dafcd58d5a288f96b88991e494b006f6598c2adca83fa707ed647496a12f897b19c71ec
|
7
|
+
data.tar.gz: 006a2affeb86b2b5cdc894dcc914f19f919603fffe0e5771338cf67506f6ce08497eebe096247f93c9e1f5dad8343993c7f2f16c61a014e7514fdd7646286d09
|
data/README.md
CHANGED
@@ -8,7 +8,7 @@
|
|
8
8
|
|
9
9
|
# Skellington
|
10
10
|
|
11
|
-
|
11
|
+
Extremely opinionated generator for your [Sinatra](http://www.sinatrarb.com/) app. Sets up:
|
12
12
|
|
13
13
|
* [Cucumber](https://cucumber.io/)
|
14
14
|
* with [cucumber-api-steps](https://github.com/jayzes/cucumber-api-steps)
|
data/lib/skellington/version.rb
CHANGED
data/skellington.gemspec
CHANGED
data/spec/cli/cukes_spec.rb
CHANGED
@@ -5,7 +5,8 @@ module Skellington
|
|
5
5
|
end
|
6
6
|
|
7
7
|
it 'generates some cucumber file' do
|
8
|
-
subject.generate 'dummy_app'
|
8
|
+
expect { subject.generate 'dummy_app' }.to produce_file 'dummy_app/features/step_definitions/dummy_app_steps.rb'
|
9
|
+
|
9
10
|
expect('dummy_app/features/dummy_app.feature').to have_content (
|
10
11
|
"""
|
11
12
|
Feature: Make sure DummyApp is plumbed in correctly
|
@@ -59,8 +60,6 @@ module Skellington
|
|
59
60
|
end
|
60
61
|
"""
|
61
62
|
)
|
62
|
-
|
63
|
-
expect(File).to exist 'dummy_app/features/step_definitions/dummy_app_steps.rb'
|
64
63
|
end
|
65
64
|
end
|
66
65
|
end
|
data/spec/cli/javascript_spec.rb
CHANGED
@@ -5,7 +5,8 @@ module Skellington
|
|
5
5
|
end
|
6
6
|
|
7
7
|
it 'generates javascript files' do
|
8
|
-
subject.generate 'dummy_app'
|
8
|
+
expect{ subject.generate 'dummy_app'}.to produce_file 'dummy_app/spec/javascripts/support/jasmine_helper.rb'
|
9
|
+
|
9
10
|
expect('dummy_app/spec/javascripts/support/jasmine.yml').to have_content (
|
10
11
|
"""
|
11
12
|
src_files:
|
@@ -26,8 +27,6 @@ module Skellington
|
|
26
27
|
"""
|
27
28
|
)
|
28
29
|
|
29
|
-
expect(File).to exist 'dummy_app/spec/javascripts/support/jasmine_helper.rb'
|
30
|
-
|
31
30
|
expect('dummy_app/spec/javascripts/dummy_app_spec.js').to have_content (
|
32
31
|
"""
|
33
32
|
describe('DummyApp', function() {
|
data/spec/cli/public_spec.rb
CHANGED
@@ -5,10 +5,9 @@ module Skellington
|
|
5
5
|
end
|
6
6
|
|
7
7
|
it 'generates placeholders for static files' do
|
8
|
-
subject.generate 'dummy_app'
|
9
|
-
expect(File).to exist 'dummy_app/public/css/styles.css'
|
8
|
+
expect { subject.generate 'dummy_app' }.to produce_file 'dummy_app/public/css/styles.css'
|
10
9
|
expect(File).to exist 'dummy_app/public/js/dummy_app.js'
|
11
|
-
expect(File).to exist 'dummy_app/public/assets/favicon.ico'
|
10
|
+
expect(File).to exist 'dummy_app/public/assets/favicon.ico'
|
12
11
|
end
|
13
12
|
end
|
14
13
|
end
|
data/spec/cli/rbenv_spec.rb
CHANGED
@@ -5,8 +5,7 @@ module Skellington
|
|
5
5
|
end
|
6
6
|
|
7
7
|
it 'generates a .ruby-version' do
|
8
|
-
subject.generate 'dummy_app'
|
9
|
-
expect(File).to exist 'dummy_app/.ruby-version'
|
8
|
+
expect { subject.generate 'dummy_app' }.to produce_file 'dummy_app/.ruby-version'
|
10
9
|
expect('dummy_app/.ruby-version').to have_content (
|
11
10
|
"""
|
12
11
|
/[0-9]*\\.[0-9]*\\.[0-9]*/
|
data/spec/spec_helper.rb
CHANGED
@@ -1,5 +1,6 @@
|
|
1
1
|
require 'skellington'
|
2
2
|
require 'coveralls'
|
3
|
+
require 'curacao'
|
3
4
|
|
4
5
|
Coveralls.wear_merged!
|
5
6
|
|
@@ -15,32 +16,4 @@ RSpec.configure do |config|
|
|
15
16
|
config.filter_run :focus
|
16
17
|
config.run_all_when_everything_filtered = true
|
17
18
|
config.order = :random
|
18
|
-
|
19
|
-
# Use tmp/ to write skellington
|
20
|
-
$pwd = FileUtils.pwd
|
21
|
-
config.before(:each) do
|
22
|
-
FileUtils.rm_rf 'tmp'
|
23
|
-
FileUtils.mkdir_p 'tmp'
|
24
|
-
FileUtils.cd 'tmp'
|
25
|
-
end
|
26
|
-
|
27
|
-
config.after(:each) do
|
28
|
-
FileUtils.cd $pwd
|
29
|
-
end
|
30
|
-
|
31
|
-
# Suppress CLI output. This *will* fuck with Pry
|
32
|
-
original_stderr = $stderr
|
33
|
-
original_stdout = $stdout
|
34
|
-
config.before(:all) do
|
35
|
-
# Redirect stderr and stdout
|
36
|
-
$stderr = File.new '/dev/null', 'w'
|
37
|
-
$stdout = File.new '/dev/null', 'w'
|
38
|
-
end
|
39
|
-
|
40
|
-
config.after(:all) do
|
41
|
-
$stderr = original_stderr
|
42
|
-
$stdout = original_stdout
|
43
|
-
end
|
44
19
|
end
|
45
|
-
|
46
|
-
Dir[File.dirname(__FILE__) + "/support/**/*.rb"].each {|f| require f}
|
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.4.
|
4
|
+
version: 0.4.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- pikesley
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-01-
|
11
|
+
date: 2016-01-16 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: thor
|
@@ -122,6 +122,20 @@ dependencies:
|
|
122
122
|
- - "~>"
|
123
123
|
- !ruby/object:Gem::Version
|
124
124
|
version: '4.5'
|
125
|
+
- !ruby/object:Gem::Dependency
|
126
|
+
name: curacao
|
127
|
+
requirement: !ruby/object:Gem::Requirement
|
128
|
+
requirements:
|
129
|
+
- - "~>"
|
130
|
+
- !ruby/object:Gem::Version
|
131
|
+
version: '0.1'
|
132
|
+
type: :development
|
133
|
+
prerelease: false
|
134
|
+
version_requirements: !ruby/object:Gem::Requirement
|
135
|
+
requirements:
|
136
|
+
- - "~>"
|
137
|
+
- !ruby/object:Gem::Version
|
138
|
+
version: '0.1'
|
125
139
|
description: Generate tedious Cucumber and Sinatra boilerplate like a boss
|
126
140
|
email:
|
127
141
|
- sam@pikesley.org
|
@@ -191,10 +205,8 @@ files:
|
|
191
205
|
- spec/cli/spec_spec.rb
|
192
206
|
- spec/cli_spec.rb
|
193
207
|
- spec/hyphens_spec.rb
|
194
|
-
- spec/matcher/have_content_spec.rb
|
195
208
|
- spec/skellington_spec.rb
|
196
209
|
- spec/spec_helper.rb
|
197
|
-
- spec/support/matchers/have_content.rb
|
198
210
|
homepage: http://sam.pikesley.org/projects/skellington/
|
199
211
|
licenses:
|
200
212
|
- MIT
|
@@ -236,7 +248,5 @@ test_files:
|
|
236
248
|
- spec/cli/spec_spec.rb
|
237
249
|
- spec/cli_spec.rb
|
238
250
|
- spec/hyphens_spec.rb
|
239
|
-
- spec/matcher/have_content_spec.rb
|
240
251
|
- spec/skellington_spec.rb
|
241
252
|
- spec/spec_helper.rb
|
242
|
-
- spec/support/matchers/have_content.rb
|
@@ -1,137 +0,0 @@
|
|
1
|
-
describe 'Matcher' do
|
2
|
-
context 'simple matches' do
|
3
|
-
it 'matches a file and a string' do
|
4
|
-
dump 'A string'
|
5
|
-
expect('matcher').to have_content 'A string'
|
6
|
-
end
|
7
|
-
|
8
|
-
it 'matches two strings ignoring extra whitespace' do
|
9
|
-
dump ' Leading space'
|
10
|
-
expect('matcher').to have_content 'Leading space'
|
11
|
-
|
12
|
-
dump 'Trailing space '
|
13
|
-
expect('matcher').to have_content 'Trailing space'
|
14
|
-
|
15
|
-
dump ' Space at both ends '
|
16
|
-
expect('matcher').to have_content 'Space at both ends'
|
17
|
-
end
|
18
|
-
|
19
|
-
it 'does not match wrong strings' do
|
20
|
-
dump 'A string'
|
21
|
-
expect('matcher').to_not have_content 'A different string'
|
22
|
-
end
|
23
|
-
end
|
24
|
-
|
25
|
-
context 'multi-line matches' do
|
26
|
-
it 'matches on multi-line files' do
|
27
|
-
dump """
|
28
|
-
foo
|
29
|
-
bar
|
30
|
-
baz
|
31
|
-
"""
|
32
|
-
expect('matcher').to have_content (
|
33
|
-
"""
|
34
|
-
foo
|
35
|
-
bar
|
36
|
-
baz
|
37
|
-
"""
|
38
|
-
)
|
39
|
-
end
|
40
|
-
|
41
|
-
it 'matches multi-line, ignoring extraneous whitespace' do
|
42
|
-
dump """
|
43
|
-
odd
|
44
|
-
spacing
|
45
|
-
here
|
46
|
-
"""
|
47
|
-
expect('matcher').to have_content (
|
48
|
-
"""
|
49
|
-
odd
|
50
|
-
spacing
|
51
|
-
here
|
52
|
-
"""
|
53
|
-
)
|
54
|
-
end
|
55
|
-
|
56
|
-
it 'ignores blank lines' do
|
57
|
-
dump """
|
58
|
-
|
59
|
-
this
|
60
|
-
has
|
61
|
-
a blank
|
62
|
-
"""
|
63
|
-
expect('matcher').to have_content (
|
64
|
-
"""
|
65
|
-
this
|
66
|
-
has
|
67
|
-
a blank
|
68
|
-
"""
|
69
|
-
)
|
70
|
-
end
|
71
|
-
|
72
|
-
it 'even blank lines in the middle of the file' do
|
73
|
-
dump """
|
74
|
-
this
|
75
|
-
is
|
76
|
-
|
77
|
-
a
|
78
|
-
file
|
79
|
-
"""
|
80
|
-
expect('matcher').to have_content (
|
81
|
-
"""
|
82
|
-
this
|
83
|
-
is
|
84
|
-
a
|
85
|
-
file
|
86
|
-
"""
|
87
|
-
)
|
88
|
-
end
|
89
|
-
end
|
90
|
-
|
91
|
-
context 'regular expressions' do
|
92
|
-
it 'matches on a regex' do
|
93
|
-
dump 'partial match'
|
94
|
-
expect('matcher').to have_content '/partial/'
|
95
|
-
end
|
96
|
-
|
97
|
-
it 'matches on a regex somewhere in a file' do
|
98
|
-
dump """
|
99
|
-
source 'https://rubygems.org'
|
100
|
-
|
101
|
-
ruby '2.3.0'
|
102
|
-
|
103
|
-
gem 'skellington'
|
104
|
-
"""
|
105
|
-
expect('matcher').to have_content (
|
106
|
-
"""
|
107
|
-
source 'https://rubygems.org'
|
108
|
-
|
109
|
-
/ruby '[0-9]*\.[0-9]*\.[0-9]*'/
|
110
|
-
|
111
|
-
gem 'skellington'
|
112
|
-
"""
|
113
|
-
)
|
114
|
-
end
|
115
|
-
|
116
|
-
it 'fails on a non-match' do
|
117
|
-
dump """
|
118
|
-
foo
|
119
|
-
ruby '2.3.0'
|
120
|
-
bar
|
121
|
-
"""
|
122
|
-
expect('matcher').to_not have_content (
|
123
|
-
"""
|
124
|
-
foo
|
125
|
-
ruby 2.3.0
|
126
|
-
bar
|
127
|
-
"""
|
128
|
-
)
|
129
|
-
end
|
130
|
-
end
|
131
|
-
end
|
132
|
-
|
133
|
-
def dump content
|
134
|
-
File.open 'matcher', 'w' do |f|
|
135
|
-
f.write content
|
136
|
-
end
|
137
|
-
end
|
@@ -1,47 +0,0 @@
|
|
1
|
-
RSpec::Matchers.define :have_content do |expected|
|
2
|
-
match do |actual|
|
3
|
-
actual = File.read actual
|
4
|
-
|
5
|
-
pass = true
|
6
|
-
expected.contentise.each_with_index do |line, index|
|
7
|
-
unless line.matches actual.contentise[index]
|
8
|
-
pass = false
|
9
|
-
end
|
10
|
-
end
|
11
|
-
pass
|
12
|
-
end
|
13
|
-
|
14
|
-
failure_message do |actual|
|
15
|
-
"expected #{expected} to match #{File.read actual}"
|
16
|
-
end
|
17
|
-
|
18
|
-
failure_message_when_negated do |actual|
|
19
|
-
"expected #{expected} to not match #{File.read actual}"
|
20
|
-
end
|
21
|
-
|
22
|
-
description do
|
23
|
-
'matches file content against expectation'
|
24
|
-
end
|
25
|
-
end
|
26
|
-
|
27
|
-
class String
|
28
|
-
def contentise
|
29
|
-
# split into lines, strip spaces from ends, ding blank lines
|
30
|
-
self.strip.split("\n").map { |l| l.strip }.reject { |l| l == '' }
|
31
|
-
end
|
32
|
-
|
33
|
-
def matches other
|
34
|
-
if self.is_regex
|
35
|
-
return self.to_regex.match other
|
36
|
-
end
|
37
|
-
self == other
|
38
|
-
end
|
39
|
-
|
40
|
-
def is_regex
|
41
|
-
/^\/.*\/$/.match self.strip
|
42
|
-
end
|
43
|
-
|
44
|
-
def to_regex
|
45
|
-
Regexp.new self[1..-2]
|
46
|
-
end
|
47
|
-
end
|