jumbled-rspec-formatter 0.0.1
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.
- data/.gitignore +4 -0
- data/Gemfile +4 -0
- data/License.jumbled.txt +22 -0
- data/License.txt +22 -0
- data/README.markdown +13 -0
- data/Rakefile +1 -0
- data/jumbled-rspec-formatter.gemspec +21 -0
- data/lib/jumbled-rspec-formatter.rb +30 -0
- data/lib/jumbled-rspec-formatter/version.rb +7 -0
- data/spec/jumbled-rspec-formatter_spec.rb +113 -0
- data/spec/spec_helper.rb +16 -0
- metadata +71 -0
data/.gitignore
ADDED
data/Gemfile
ADDED
data/License.jumbled.txt
ADDED
@@ -0,0 +1,22 @@
|
|
1
|
+
(The MIT Lesncie)
|
2
|
+
|
3
|
+
Cioyphgrt (c) 2011 Rahcrid W. Ntoron
|
4
|
+
|
5
|
+
Psisrioemn is hrbeey getrand, free of carhge, to any preson onibniatg
|
6
|
+
a cpoy of tihs sawfotre and aseaotsicd dtoeicoatumnn felis (the
|
7
|
+
"Swtaofre"), to deal in the Sotfware whituot rceisrtotin, iincldnug
|
8
|
+
whtouit lttiioiamn the rgtihs to use, copy, mofidy, merge, pulbish,
|
9
|
+
dsrtiuitbe, selbcnusie, and/or slel ceiops of the Swafrtoe, and to
|
10
|
+
peimrt pnsoers to whom the Sftoarwe is fisnhrued to do so, sjebuct to
|
11
|
+
the folinwlog cntionidos:
|
12
|
+
|
13
|
+
The abvoe crigoypht niotce and this pisimseron noicte shall be
|
14
|
+
idunceld in all cpioes or sutstbaainl pnitoors of the Starowfe.
|
15
|
+
|
16
|
+
THE SRTWFOAE IS PIEDVROD "AS IS", WIHTOUT WANARRTY OF ANY KIND,
|
17
|
+
EXEPRSS OR IIEPMLD, ICLNNIUDG BUT NOT LMTIEID TO THE WRNTRIAAES OF
|
18
|
+
MCRABTLHEINTAIY, FENTSIS FOR A PTIRAAULCR PRPUOSE AND NOREGINMINFENNT.
|
19
|
+
IN NO ENVET SALHL THE ARHUOTS OR CGIYOHPRT HRLEDOS BE LBALIE FOR ANY
|
20
|
+
CLIAM, DAEAMGS OR OTEHR LLIAIBITY, WEHEHTR IN AN AOITCN OF CTRAONCT,
|
21
|
+
TROT OR OTRESWIHE, ANSRIIG FORM, OUT OF OR IN CNOOTIECNN WTIH THE
|
22
|
+
SWOAFRTE OR THE USE OR OTEHR DNGIEALS IN THE STFAOWRE.
|
data/License.txt
ADDED
@@ -0,0 +1,22 @@
|
|
1
|
+
(The MIT License)
|
2
|
+
|
3
|
+
Copyright (c) 2011 Richard W. Norton
|
4
|
+
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining
|
6
|
+
a copy of this software and associated documentation files (the
|
7
|
+
"Software"), to deal in the Software without restriction, including
|
8
|
+
without limitation the rights to use, copy, modify, merge, publish,
|
9
|
+
distribute, sublicense, and/or sell copies of the Software, and to
|
10
|
+
permit persons to whom the Software is furnished to do so, subject to
|
11
|
+
the following conditions:
|
12
|
+
|
13
|
+
The above copyright notice and this permission notice shall be
|
14
|
+
included in all copies or substantial portions of the Software.
|
15
|
+
|
16
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
17
|
+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
18
|
+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
19
|
+
IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
|
20
|
+
CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
21
|
+
TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
22
|
+
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
data/README.markdown
ADDED
data/Rakefile
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
require 'bundler/gem_tasks'
|
@@ -0,0 +1,21 @@
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
2
|
+
$:.push File.expand_path("../lib", __FILE__)
|
3
|
+
require "jumbled-rspec-formatter/version"
|
4
|
+
|
5
|
+
Gem::Specification.new do |s|
|
6
|
+
s.name = "jumbled-rspec-formatter"
|
7
|
+
s.version = Jumbled::Rspec::Formatter::VERSION
|
8
|
+
s.authors = ["Richard W. Norton"]
|
9
|
+
s.email = ["rwtnorton@gmail.com"]
|
10
|
+
s.homepage = ""
|
11
|
+
s.summary = %q{Jumbles text of spec output}
|
12
|
+
s.description = %q{Jumbles text of spec output}
|
13
|
+
|
14
|
+
s.rubyforge_project = "jumbled-rspec-formatter"
|
15
|
+
|
16
|
+
s.files = `git ls-files`.split("\n")
|
17
|
+
s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
|
18
|
+
s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
|
19
|
+
s.require_paths = ["lib"]
|
20
|
+
s.add_development_dependency 'rspec', '~> 2'
|
21
|
+
end
|
@@ -0,0 +1,30 @@
|
|
1
|
+
require 'rspec/core/formatters/documentation_formatter'
|
2
|
+
|
3
|
+
# Add icsnnate mtheod +jbmule+ to Sntrig.
|
4
|
+
class String
|
5
|
+
|
6
|
+
# Jeblmus up the lttrees of a wrod but lveeas frsit and last chars in pclae.
|
7
|
+
def self.jumble_term(s)
|
8
|
+
return s if s.size < 4
|
9
|
+
chars = s.split(//)
|
10
|
+
[chars[0], *chars[1..-2].shuffle, chars[-1]].join('')
|
11
|
+
end
|
12
|
+
|
13
|
+
def jumble
|
14
|
+
self.gsub(/[a-zA-Z]+/) do |match|
|
15
|
+
self.class.jumble_term(match)
|
16
|
+
end
|
17
|
+
end
|
18
|
+
|
19
|
+
end
|
20
|
+
|
21
|
+
class JumbledFormatter < RSpec::Core::Formatters::DocumentationFormatter
|
22
|
+
|
23
|
+
# Aoivd mgninug the ANSI cloor epecsas.
|
24
|
+
# A bit of a klugde but it wrkos.
|
25
|
+
# Has the sdie-ecfeft of lvaenig the guorp nemas anole.
|
26
|
+
def color(text, color_code)
|
27
|
+
super(text.to_s.jumble, color_code)
|
28
|
+
end
|
29
|
+
|
30
|
+
end
|
@@ -0,0 +1,113 @@
|
|
1
|
+
require 'jumbled-rspec-formatter'
|
2
|
+
require 'spec_helper'
|
3
|
+
require 'stringio'
|
4
|
+
|
5
|
+
describe JumbledFormatter do
|
6
|
+
|
7
|
+
before :each do
|
8
|
+
RSpec.configuration.stub(:color_enabled?) { false }
|
9
|
+
@output = StringIO.new
|
10
|
+
@jumbler = JumbledFormatter.new(@output)
|
11
|
+
end
|
12
|
+
|
13
|
+
describe '#summary_line' do
|
14
|
+
it "has correct letters" do
|
15
|
+
@jumbler.summary_line(1, 2, 3).unjumble.should ==(
|
16
|
+
'1 example, 2 failures, 3 pending'.unjumble)
|
17
|
+
end
|
18
|
+
|
19
|
+
it "does not have jumbled numbers" do
|
20
|
+
@jumbler.summary_line(1, 2, 3).unjumble.should_not ==(
|
21
|
+
'3 example, 1 failures, 2 pending'.unjumble)
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
25
|
+
describe '#dump_pending' do
|
26
|
+
|
27
|
+
it 'jumbles pending text' do
|
28
|
+
group_name = "pending name"
|
29
|
+
example_name = "example name"
|
30
|
+
message = "Please add some examples"
|
31
|
+
@example_group = RSpec::Core::ExampleGroup.describe(group_name)
|
32
|
+
|
33
|
+
@example_group.example(example_name) { pending(message) }
|
34
|
+
|
35
|
+
@example_group.run(@jumbler)
|
36
|
+
@jumbler.dump_pending
|
37
|
+
|
38
|
+
@output.string.unjumble.should =~ /
|
39
|
+
#{group_name.unjumble_re}
|
40
|
+
\s+ #{example_name.unjumble_re}
|
41
|
+
\s+ \( #{'PENDING'.unjumble}: \s+ #{message.unjumble_re} \)
|
42
|
+
\s+
|
43
|
+
#{'Pending'.unjumble}:
|
44
|
+
\s+ #{group_name.unjumble_re} \s+ #{example_name.unjumble_re}
|
45
|
+
\s+
|
46
|
+
# \s+ #{message.unjumble_re}
|
47
|
+
/x
|
48
|
+
##
|
49
|
+
## pdeinng name
|
50
|
+
## ealmpxe name (PDEINNG: Paelse add smoe eaelmpxs)
|
51
|
+
##
|
52
|
+
## Pdeinng:
|
53
|
+
## pdeinng name ealmpxe name
|
54
|
+
## # Paelse add smoe eaelmpxs
|
55
|
+
##
|
56
|
+
end
|
57
|
+
end
|
58
|
+
|
59
|
+
describe '#dump_failures' do
|
60
|
+
|
61
|
+
it 'jumbles failure text' do
|
62
|
+
group_name = "fail group"
|
63
|
+
example_name = "example name"
|
64
|
+
@example_group = RSpec::Core::ExampleGroup.describe(group_name)
|
65
|
+
|
66
|
+
@example_group.example(example_name) { 1.should == 2 }
|
67
|
+
|
68
|
+
@example_group.run(@jumbler)
|
69
|
+
@jumbler.dump_pending
|
70
|
+
|
71
|
+
@output.string.unjumble.should =~ /
|
72
|
+
#{group_name.unjumble_re}
|
73
|
+
\s+ #{example_name.unjumble_re}
|
74
|
+
\s+ \( #{'FAILED'.unjumble} \s+ - \s+ \d+ \)
|
75
|
+
/x
|
76
|
+
##
|
77
|
+
## fail gorup
|
78
|
+
## ealmpxe name (FAEILD - 1)
|
79
|
+
##
|
80
|
+
end
|
81
|
+
end
|
82
|
+
|
83
|
+
describe 'passes' do
|
84
|
+
|
85
|
+
it 'jumbles passing text' do
|
86
|
+
group_name = "happy group"
|
87
|
+
example_name = "example name"
|
88
|
+
@example_group = RSpec::Core::ExampleGroup.describe(group_name)
|
89
|
+
|
90
|
+
@example_group.example(example_name) { 1.should == 1 }
|
91
|
+
|
92
|
+
@example_group.run(@jumbler)
|
93
|
+
@jumbler.dump_summary(3.14, 13, 0, 0)
|
94
|
+
|
95
|
+
@output.string.unjumble.should =~ /
|
96
|
+
#{group_name.unjumble_re}
|
97
|
+
\s+ #{example_name.unjumble_re}
|
98
|
+
\s+
|
99
|
+
#{'Finished in 3.14 seconds'.unjumble_re}
|
100
|
+
\s+
|
101
|
+
#{'13 examples, 0 failures'.unjumble_re}
|
102
|
+
/x
|
103
|
+
##
|
104
|
+
## happy gorup
|
105
|
+
## ealmpxe name
|
106
|
+
##
|
107
|
+
## Fehiinsd in 3.14 scdenos
|
108
|
+
## 13 eaelmpxs, 0 faeilrus
|
109
|
+
##
|
110
|
+
end
|
111
|
+
end
|
112
|
+
|
113
|
+
end
|
data/spec/spec_helper.rb
ADDED
@@ -0,0 +1,16 @@
|
|
1
|
+
class String
|
2
|
+
def unjumble
|
3
|
+
self.gsub(/[A-Za-z]+/) do |match|
|
4
|
+
if match.size < 4
|
5
|
+
match
|
6
|
+
else
|
7
|
+
chars = match.split(//)
|
8
|
+
[chars[0], *chars[1..-2].sort, chars[-1]].join('')
|
9
|
+
end
|
10
|
+
end
|
11
|
+
end
|
12
|
+
|
13
|
+
def unjumble_re
|
14
|
+
self.unjumble.gsub(/\s+/, '\s+')
|
15
|
+
end
|
16
|
+
end
|
metadata
ADDED
@@ -0,0 +1,71 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: jumbled-rspec-formatter
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.0.1
|
5
|
+
prerelease:
|
6
|
+
platform: ruby
|
7
|
+
authors:
|
8
|
+
- Richard W. Norton
|
9
|
+
autorequire:
|
10
|
+
bindir: bin
|
11
|
+
cert_chain: []
|
12
|
+
date: 2011-06-25 00:00:00.000000000 -04:00
|
13
|
+
default_executable:
|
14
|
+
dependencies:
|
15
|
+
- !ruby/object:Gem::Dependency
|
16
|
+
name: rspec
|
17
|
+
requirement: &2157001120 !ruby/object:Gem::Requirement
|
18
|
+
none: false
|
19
|
+
requirements:
|
20
|
+
- - ~>
|
21
|
+
- !ruby/object:Gem::Version
|
22
|
+
version: '2'
|
23
|
+
type: :development
|
24
|
+
prerelease: false
|
25
|
+
version_requirements: *2157001120
|
26
|
+
description: Jumbles text of spec output
|
27
|
+
email:
|
28
|
+
- rwtnorton@gmail.com
|
29
|
+
executables: []
|
30
|
+
extensions: []
|
31
|
+
extra_rdoc_files: []
|
32
|
+
files:
|
33
|
+
- .gitignore
|
34
|
+
- Gemfile
|
35
|
+
- License.jumbled.txt
|
36
|
+
- License.txt
|
37
|
+
- README.markdown
|
38
|
+
- Rakefile
|
39
|
+
- jumbled-rspec-formatter.gemspec
|
40
|
+
- lib/jumbled-rspec-formatter.rb
|
41
|
+
- lib/jumbled-rspec-formatter/version.rb
|
42
|
+
- spec/jumbled-rspec-formatter_spec.rb
|
43
|
+
- spec/spec_helper.rb
|
44
|
+
has_rdoc: true
|
45
|
+
homepage: ''
|
46
|
+
licenses: []
|
47
|
+
post_install_message:
|
48
|
+
rdoc_options: []
|
49
|
+
require_paths:
|
50
|
+
- lib
|
51
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
52
|
+
none: false
|
53
|
+
requirements:
|
54
|
+
- - ! '>='
|
55
|
+
- !ruby/object:Gem::Version
|
56
|
+
version: '0'
|
57
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
58
|
+
none: false
|
59
|
+
requirements:
|
60
|
+
- - ! '>='
|
61
|
+
- !ruby/object:Gem::Version
|
62
|
+
version: '0'
|
63
|
+
requirements: []
|
64
|
+
rubyforge_project: jumbled-rspec-formatter
|
65
|
+
rubygems_version: 1.6.2
|
66
|
+
signing_key:
|
67
|
+
specification_version: 3
|
68
|
+
summary: Jumbles text of spec output
|
69
|
+
test_files:
|
70
|
+
- spec/jumbled-rspec-formatter_spec.rb
|
71
|
+
- spec/spec_helper.rb
|