hansi 0.1.0 → 0.1.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,41 @@
1
+ describe Hansi do
2
+ describe :mode_for do
3
+ specify { Hansi.mode_for({}) .should be == 0 }
4
+ specify { Hansi.mode_for('TERM' => 'footerm-256color') .should be == 256 }
5
+ end
6
+
7
+ describe :color_names do
8
+ specify { Hansi.color_names.should include(:red) }
9
+ specify { Hansi.color_names.should include(:rebeccapurple) }
10
+ end
11
+
12
+ describe :render do
13
+ subject(:renderer) { Hansi }
14
+
15
+ context "string renderer" do
16
+ it { should render("foo *bar*") .as("\e[0m\e[10mfoo *bar*\e[0m") }
17
+ it { should render("<foo>") .as("\e[0m\e[10m<foo>\e[0m") }
18
+ it { should render("foo *bar*", "*" => :bold) .as("\e[0m\e[10mfoo \e[0m\e[10m\e[1mbar\e[0m") }
19
+ it { should render("foo \\*bar\\*", "*" => :bold) .as("\e[0m\e[10mfoo *bar*\e[0m") }
20
+ it { should render("<bold>foo</bold>", tags: true) .as("\e[0m\e[10m\e[1mfoo\e[0m") }
21
+ it { should render("foo", mode: 256, theme: :solarized) .as("\e[0m\e[38;5;66mfoo\e[0m") }
22
+ it { should render("*%s*", "*", "*" => :bold) .as("\e[0m\e[10m\e[1m*\e[0m") }
23
+
24
+ it { should_not render("<red>", tags: true) }
25
+ it { should_not render("*", "*" => :bold) }
26
+ end
27
+
28
+ context 'sexp renderer' do
29
+ it { should render([:red, "foo"]) .as("\e[0m\e[91mfoo\e[0m") }
30
+ it { should render([:red, [:blue, "b"], "c"], join: " ") .as("\e[0m\e[91m\e[34mb\e[0m \e[0m\e[91mc\e[0m") }
31
+ it { should render([:default, "foo"], theme: :solarized) .as("\e[0m\e[90mfoo\e[0m") }
32
+ end
33
+
34
+ context 'color renderer' do
35
+ it { should render(Hansi[:red]) .as("\e[91m") }
36
+ it { should render(Hansi[:red], "foo") .as("\e[91mfoo\e[0m") }
37
+ end
38
+
39
+ it { should_not render(Object.new) }
40
+ end
41
+ end
@@ -0,0 +1,6 @@
1
+ require 'support/env'
2
+ require 'support/coverage'
3
+ require 'support/escape_matcher'
4
+ require 'support/parse_matcher'
5
+ require 'support/render_matcher'
6
+ require 'hansi'
@@ -0,0 +1,14 @@
1
+ require 'simplecov'
2
+ require 'coveralls'
3
+
4
+ SimpleCov.formatter = SimpleCov::Formatter::MultiFormatter[
5
+ SimpleCov::Formatter::HTMLFormatter,
6
+ Coveralls::SimpleCov::Formatter
7
+ ]
8
+
9
+ SimpleCov.start do
10
+ project_name 'hansi'
11
+ coverage_dir '.coverage'
12
+ add_filter "/spec/"
13
+ add_filter "/lib/hansi/mode_detector.rb"
14
+ end
@@ -0,0 +1,10 @@
1
+ require 'tool/warning_filter'
2
+ $-w = true
3
+
4
+ require 'rspec'
5
+
6
+ RSpec.configure do |config|
7
+ config.expect_with :rspec do |c|
8
+ c.syntax = [:should, :expect]
9
+ end
10
+ end
@@ -0,0 +1,28 @@
1
+ RSpec::Matchers.define :escape do |*args|
2
+ match do |renderer|
3
+ begin
4
+ @rendered = renderer.escape(*args)
5
+ rescue Exception => e
6
+ @exception = e
7
+ false
8
+ else
9
+ if @expected ||= nil
10
+ @rendered == @expected
11
+ else
12
+ !!@rendered
13
+ end
14
+ end
15
+ end
16
+
17
+ chain :as do |result|
18
+ @expected = result
19
+ end
20
+
21
+ failure_message do |renderer|
22
+ if @exception ||= nil
23
+ "expected %p to escape %p, but got exception: %p" % [renderer, args, @exception]
24
+ else
25
+ "expected %p to escape %p as %p, but got %p" % [render, args, @expected, @rendered]
26
+ end
27
+ end
28
+ end
@@ -0,0 +1,28 @@
1
+ RSpec::Matchers.define :parse do |*args|
2
+ match do |parser|
3
+ begin
4
+ @parsed = parser.parse(*args)
5
+ rescue Exception => e
6
+ @exception = e
7
+ false
8
+ else
9
+ if @expected ||= nil
10
+ @parsed == @expected
11
+ else
12
+ !!@parsed
13
+ end
14
+ end
15
+ end
16
+
17
+ chain :as do |*result|
18
+ @expected = parser.parse(*result)
19
+ end
20
+
21
+ failure_message do |parser|
22
+ if @exception ||= nil
23
+ "expected %p to parse %p, but got exception: %p" % [parser, args, @exception]
24
+ else
25
+ "expected %p to parse %p as %p, but got %p" % [parser, args, @expected, @parsed]
26
+ end
27
+ end
28
+ end
@@ -0,0 +1,28 @@
1
+ RSpec::Matchers.define :render do |*args|
2
+ match do |renderer|
3
+ begin
4
+ @rendered = renderer.render(*args)
5
+ rescue Exception => e
6
+ @exception = e
7
+ false
8
+ else
9
+ if @expected ||= nil
10
+ @rendered == @expected
11
+ else
12
+ !!@rendered
13
+ end
14
+ end
15
+ end
16
+
17
+ chain :as do |result|
18
+ @expected = result
19
+ end
20
+
21
+ failure_message do |renderer|
22
+ if @exception ||= nil
23
+ "expected %p to render %p, but got exception: %p" % [renderer, args, @exception]
24
+ else
25
+ "expected %p to render %p as %p, but got %p" % [render, args, @expected, @rendered]
26
+ end
27
+ end
28
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: hansi
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Konstantin Haase
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-11-22 00:00:00.000000000 Z
11
+ date: 2014-11-23 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: tool
@@ -71,7 +71,43 @@ email: konstantin.mailinglists@googlemail.com
71
71
  executables: []
72
72
  extensions: []
73
73
  extra_rdoc_files: []
74
- files: []
74
+ files:
75
+ - ".gitignore"
76
+ - ".rspec"
77
+ - ".travis.yml"
78
+ - Gemfile
79
+ - LICENSE
80
+ - README.md
81
+ - hansi.gemspec
82
+ - hansi.png
83
+ - lib/hansi.rb
84
+ - lib/hansi/ansi_code.rb
85
+ - lib/hansi/color.rb
86
+ - lib/hansi/color_parser.rb
87
+ - lib/hansi/color_renderer.rb
88
+ - lib/hansi/mode_detector.rb
89
+ - lib/hansi/palettes.rb
90
+ - lib/hansi/sexp_renderer.rb
91
+ - lib/hansi/special.rb
92
+ - lib/hansi/string_renderer.rb
93
+ - lib/hansi/theme.rb
94
+ - lib/hansi/themes.rb
95
+ - lib/hansi/version.rb
96
+ - spec/hansi/color_parser_spec.rb
97
+ - spec/hansi/color_renderer_spec.rb
98
+ - spec/hansi/color_spec.rb
99
+ - spec/hansi/mode_detector_spec.rb
100
+ - spec/hansi/sexp_renderer_spec.rb
101
+ - spec/hansi/special_spec.rb
102
+ - spec/hansi/string_renderer_spec.rb
103
+ - spec/hansi/theme_spec.rb
104
+ - spec/hansi_spec.rb
105
+ - spec/support.rb
106
+ - spec/support/coverage.rb
107
+ - spec/support/env.rb
108
+ - spec/support/escape_matcher.rb
109
+ - spec/support/parse_matcher.rb
110
+ - spec/support/render_matcher.rb
75
111
  homepage: https://github.com/rkh/hansi
76
112
  licenses:
77
113
  - MIT
@@ -92,9 +128,24 @@ required_rubygems_version: !ruby/object:Gem::Requirement
92
128
  version: '0'
93
129
  requirements: []
94
130
  rubyforge_project:
95
- rubygems_version: 2.2.2
131
+ rubygems_version: 2.4.3
96
132
  signing_key:
97
133
  specification_version: 4
98
134
  summary: Hipster ANSI color library
99
- test_files: []
135
+ test_files:
136
+ - spec/hansi/color_parser_spec.rb
137
+ - spec/hansi/color_renderer_spec.rb
138
+ - spec/hansi/color_spec.rb
139
+ - spec/hansi/mode_detector_spec.rb
140
+ - spec/hansi/sexp_renderer_spec.rb
141
+ - spec/hansi/special_spec.rb
142
+ - spec/hansi/string_renderer_spec.rb
143
+ - spec/hansi/theme_spec.rb
144
+ - spec/hansi_spec.rb
145
+ - spec/support.rb
146
+ - spec/support/coverage.rb
147
+ - spec/support/env.rb
148
+ - spec/support/escape_matcher.rb
149
+ - spec/support/parse_matcher.rb
150
+ - spec/support/render_matcher.rb
100
151
  has_rdoc: