hansi 0.1.0 → 0.1.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.
@@ -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: