Skip to content

Commit c320655

Browse files
committed
Start rewriting this gem
Get basic strings to work.
0 parents  commit c320655

28 files changed

+1358
-0
lines changed

.gitignore

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
.DS_Store
2+
spec/examples.txt

.rubocop.yml

Lines changed: 257 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,257 @@
1+
---
2+
AllCops:
3+
Exclude:
4+
- db/schema.rb
5+
TargetRubyVersion: 2.4
6+
Layout/DotPosition:
7+
EnforcedStyle: trailing
8+
Layout/ExtraSpacing:
9+
Enabled: true
10+
Layout/InitialIndentation:
11+
Enabled: false
12+
Layout/IndentArray:
13+
EnforcedStyle: "consistent"
14+
Layout/IndentHash:
15+
EnforcedStyle: "consistent"
16+
Layout/MultilineOperationIndentation:
17+
Enabled: true
18+
EnforcedStyle: indented
19+
Layout/MultilineMethodCallIndentation:
20+
Enabled: true
21+
EnforcedStyle: indented
22+
Lint/AmbiguousOperator:
23+
Enabled: false
24+
Lint/AmbiguousRegexpLiteral:
25+
Enabled: false
26+
Lint/AssignmentInCondition:
27+
Enabled: false
28+
Lint/CircularArgumentReference:
29+
Enabled: false
30+
Lint/ConditionPosition:
31+
Enabled: false
32+
Lint/DeprecatedClassMethods:
33+
Enabled: false
34+
Lint/DuplicatedKey:
35+
Enabled: false
36+
Lint/EachWithObjectArgument:
37+
Enabled: false
38+
Lint/ElseLayout:
39+
Enabled: false
40+
Lint/FormatParameterMismatch:
41+
Enabled: false
42+
Lint/HandleExceptions:
43+
Enabled: false
44+
Lint/LiteralInInterpolation:
45+
Enabled: false
46+
Lint/Loop:
47+
Enabled: false
48+
Lint/NestedMethodDefinition:
49+
Enabled: false
50+
Lint/NonLocalExitFromIterator:
51+
Enabled: false
52+
Lint/ParenthesesAsGroupedExpression:
53+
Enabled: false
54+
Lint/RequireParentheses:
55+
Enabled: false
56+
Lint/UnderscorePrefixedVariableName:
57+
Enabled: false
58+
Lint/UnneededDisable:
59+
Enabled: false
60+
Lint/Void:
61+
Enabled: false
62+
Metrics/AbcSize:
63+
Enabled: false
64+
Metrics/BlockNesting:
65+
Enabled: false
66+
Metrics/ClassLength:
67+
Enabled: false
68+
Metrics/CyclomaticComplexity:
69+
Enabled: false
70+
Metrics/LineLength:
71+
Max: 120
72+
Metrics/MethodLength:
73+
Enabled: false
74+
Metrics/ModuleLength:
75+
Enabled: false
76+
Metrics/ParameterLists:
77+
Enabled: false
78+
Naming/AccessorMethodName:
79+
Enabled: false
80+
Naming/AsciiIdentifiers:
81+
Enabled: false
82+
Naming/BinaryOperatorParameterName:
83+
Enabled: false
84+
Naming/FileName:
85+
Enabled: false
86+
Naming/PredicateName:
87+
NamePrefixBlacklist:
88+
- is_
89+
Exclude:
90+
- spec/**/*
91+
Performance/CaseWhenSplat:
92+
Enabled: false
93+
Performance/Count:
94+
Enabled: false
95+
Performance/Detect:
96+
Enabled: false
97+
Performance/FlatMap:
98+
Enabled: false
99+
Performance/ReverseEach:
100+
Enabled: false
101+
Performance/Sample:
102+
Enabled: false
103+
Performance/Size:
104+
Enabled: false
105+
Performance/StringReplacement:
106+
Enabled: false
107+
Rails/ActionFilter:
108+
Enabled: false
109+
Rails/Date:
110+
Enabled: false
111+
Rails/Delegate:
112+
Enabled: false
113+
Rails/FindBy:
114+
Enabled: false
115+
Rails/FindEach:
116+
Enabled: false
117+
Rails/HasAndBelongsToMany:
118+
Enabled: false
119+
Rails/Output:
120+
Enabled: false
121+
Rails/ReadWriteAttribute:
122+
Enabled: false
123+
Rails/ScopeArgs:
124+
Enabled: false
125+
Rails/TimeZone:
126+
Enabled: false
127+
Rails/Validation:
128+
Enabled: false
129+
Style/Alias:
130+
Enabled: false
131+
Style/ArrayJoin:
132+
Enabled: false
133+
Style/AsciiComments:
134+
Enabled: false
135+
Style/Attr:
136+
Enabled: false
137+
Style/BracesAroundHashParameters:
138+
Enabled: false
139+
Style/CaseEquality:
140+
Enabled: false
141+
Style/CharacterLiteral:
142+
Enabled: false
143+
Style/ClassAndModuleChildren:
144+
Enabled: true
145+
EnforcedStyle: nested
146+
Style/ClassVars:
147+
Enabled: false
148+
Style/CollectionMethods:
149+
Enabled: true
150+
PreferredMethods:
151+
find: detect
152+
inject: reduce
153+
collect: map
154+
find_all: select
155+
Style/ColonMethodCall:
156+
Enabled: false
157+
Style/CommentAnnotation:
158+
Enabled: false
159+
Style/Documentation:
160+
Enabled: false
161+
Style/DoubleNegation:
162+
Enabled: false
163+
Style/EachWithObject:
164+
Enabled: false
165+
Style/EmptyLiteral:
166+
Enabled: false
167+
Style/EmptyMethod:
168+
EnforcedStyle: expanded
169+
Style/Encoding:
170+
Enabled: false
171+
Style/EvenOdd:
172+
Enabled: false
173+
Style/FrozenStringLiteralComment:
174+
Enabled: false
175+
Style/FlipFlop:
176+
Enabled: false
177+
Style/FormatString:
178+
Enabled: false
179+
Style/GlobalVars:
180+
Enabled: false
181+
Style/GuardClause:
182+
Enabled: false
183+
Style/IfUnlessModifier:
184+
Enabled: false
185+
Style/IfWithSemicolon:
186+
Enabled: false
187+
Style/InlineComment:
188+
Enabled: false
189+
Style/Lambda:
190+
Enabled: false
191+
Style/LambdaCall:
192+
Enabled: false
193+
Style/LineEndConcatenation:
194+
Enabled: false
195+
Style/ModuleFunction:
196+
Enabled: false
197+
Style/MultilineBlockChain:
198+
Enabled: false
199+
Style/NegatedIf:
200+
Enabled: false
201+
Style/NegatedWhile:
202+
Enabled: false
203+
Style/Next:
204+
Enabled: false
205+
Style/NilComparison:
206+
Enabled: false
207+
Style/Not:
208+
Enabled: false
209+
Style/NumericLiterals:
210+
Enabled: false
211+
Style/OneLineConditional:
212+
Enabled: false
213+
Style/PercentLiteralDelimiters:
214+
Enabled: false
215+
Style/PerlBackrefs:
216+
Enabled: false
217+
Style/PreferredHashMethods:
218+
Enabled: false
219+
Style/Proc:
220+
Enabled: false
221+
Style/RaiseArgs:
222+
Enabled: false
223+
Style/RegexpLiteral:
224+
Enabled: false
225+
Style/SafeNavigation:
226+
Enabled: false
227+
Style/SelfAssignment:
228+
Enabled: false
229+
Style/SingleLineBlockParams:
230+
Enabled: false
231+
Style/SingleLineMethods:
232+
Enabled: false
233+
Style/SignalException:
234+
Enabled: false
235+
Style/SpecialGlobalVars:
236+
Enabled: false
237+
Style/StringLiterals:
238+
EnforcedStyle: double_quotes
239+
Enabled: true
240+
Style/SymbolArray:
241+
Enabled: false
242+
Style/TrailingCommaInArguments:
243+
EnforcedStyleForMultiline: comma
244+
Enabled: true
245+
Style/TrailingCommaInLiteral:
246+
EnforcedStyleForMultiline: comma
247+
Enabled: true
248+
Style/TrivialAccessors:
249+
Enabled: false
250+
Style/VariableInterpolation:
251+
Enabled: false
252+
Style/WhenThen:
253+
Enabled: false
254+
Style/WhileUntilModifier:
255+
Enabled: false
256+
Style/WordArray:
257+
Enabled: false

Gemfile

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
# frozen_string_literal: true
2+
3+
source "https://rubygems.org"
4+
5+
git_source(:github) { |repo_name| "https://github.com/#{repo_name}" }
6+
7+
gem "rubocop"
8+
gem "rspec"
9+
gem "pry-byebug"
10+
11+
gemspec

Gemfile.lock

Lines changed: 64 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,64 @@
1+
PATH
2+
remote: .
3+
specs:
4+
super_diff (0.0.1)
5+
patience_diff
6+
7+
GEM
8+
remote: https://rubygems.org/
9+
specs:
10+
ast (2.4.0)
11+
byebug (10.0.2)
12+
coderay (1.1.2)
13+
diff-lcs (1.3)
14+
jaro_winkler (1.5.1)
15+
method_source (0.9.0)
16+
parallel (1.12.1)
17+
parser (2.5.1.2)
18+
ast (~> 2.4.0)
19+
patience_diff (1.1.0)
20+
trollop (~> 1.16)
21+
powerpack (0.1.2)
22+
pry (0.11.3)
23+
coderay (~> 1.1.0)
24+
method_source (~> 0.9.0)
25+
pry-byebug (3.6.0)
26+
byebug (~> 10.0)
27+
pry (~> 0.10)
28+
rainbow (3.0.0)
29+
rspec (3.8.0)
30+
rspec-core (~> 3.8.0)
31+
rspec-expectations (~> 3.8.0)
32+
rspec-mocks (~> 3.8.0)
33+
rspec-core (3.8.0)
34+
rspec-support (~> 3.8.0)
35+
rspec-expectations (3.8.1)
36+
diff-lcs (>= 1.2.0, < 2.0)
37+
rspec-support (~> 3.8.0)
38+
rspec-mocks (3.8.0)
39+
diff-lcs (>= 1.2.0, < 2.0)
40+
rspec-support (~> 3.8.0)
41+
rspec-support (3.8.0)
42+
rubocop (0.58.2)
43+
jaro_winkler (~> 1.5.1)
44+
parallel (~> 1.10)
45+
parser (>= 2.5, != 2.5.1.1)
46+
powerpack (~> 0.1)
47+
rainbow (>= 2.2.2, < 4.0)
48+
ruby-progressbar (~> 1.7)
49+
unicode-display_width (~> 1.0, >= 1.0.1)
50+
ruby-progressbar (1.10.0)
51+
trollop (1.16.2)
52+
unicode-display_width (1.4.0)
53+
54+
PLATFORMS
55+
ruby
56+
57+
DEPENDENCIES
58+
pry-byebug
59+
rspec
60+
rubocop
61+
super_diff!
62+
63+
BUNDLED WITH
64+
1.16.2

README.md

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
# SuperDiff
2+
3+
I'll fill this in later!
4+
5+
## Development
6+
7+
bin/setup

bin/setup

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
#!/bin/sh
2+
3+
if ! type bundle &>/dev/null; then
4+
echo "You don't seem to have Bundler installed. Install it first and then re-run this"
5+
echo "script."
6+
exit 1
7+
fi
8+
9+
bundle install

diff-colors.svg

Lines changed: 15 additions & 0 deletions
Loading

lib/super_diff.rb

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
require_relative "super_diff/differ"

lib/super_diff/csi.rb

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
require_relative "csi/reset_sequence"
2+
3+
module SuperDiff
4+
module Csi
5+
def self.reset_sequence
6+
ResetSequence.new
7+
end
8+
9+
def self.colorize(text, fg: nil, bg: nil)
10+
parts = []
11+
12+
if fg
13+
parts << fg.sequence_for(:fg)
14+
end
15+
16+
if bg
17+
parts << bg.sequence_for(:bg)
18+
end
19+
20+
(parts + [text, reset_sequence]).join
21+
end
22+
end
23+
end
24+
25+
require_relative "csi/four_bit_color"
26+
require_relative "csi/eight_bit_color"
27+
require_relative "csi/twenty_four_bit_color"
28+
require_relative "csi/color_helper"

0 commit comments

Comments
 (0)