cute_print 1.1.4 → 1.2.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (56) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +6 -0
  3. data/Gemfile +1 -17
  4. data/README.md +3 -3
  5. data/cute_print.gemspec +63 -77
  6. data/lib/cute_print/release.rb +13 -0
  7. metadata +98 -62
  8. data/.config/cucumber.yml +0 -1
  9. data/.rspec +0 -1
  10. data/.travis.yml +0 -6
  11. data/.yardopts +0 -7
  12. data/Gemfile.lock +0 -110
  13. data/VERSION +0 -1
  14. data/features/.nav +0 -10
  15. data/features/call_chain.feature +0 -96
  16. data/features/configuring/configure_output.feature +0 -21
  17. data/features/configuring/configure_position_format.feature +0 -39
  18. data/features/configuring/readme.md +0 -1
  19. data/features/configuring/reset_configuration.feature +0 -24
  20. data/features/inspect/core.feature +0 -18
  21. data/features/inspect/inspect.feature +0 -29
  22. data/features/inspect/inspect_with_location.feature +0 -54
  23. data/features/inspect/inspect_with_source.feature +0 -16
  24. data/features/inspect/readme.md +0 -1
  25. data/features/pretty_print/pretty_print.feature +0 -41
  26. data/features/pretty_print/pretty_print_with_location.feature +0 -73
  27. data/features/pretty_print/pretty_print_with_source.feature +0 -27
  28. data/features/readme.md +0 -1
  29. data/features/support/env.rb +0 -9
  30. data/features/support/helpers/example.rb +0 -52
  31. data/features/support/helpers/example_runner.rb +0 -24
  32. data/features/support/helpers/fork_example_runner.rb +0 -37
  33. data/features/support/helpers/lib_path.rb +0 -7
  34. data/features/support/helpers/shell_example_runner.rb +0 -26
  35. data/features/support/helpers/temp_dir.rb +0 -15
  36. data/features/support/step_definitions.rb +0 -49
  37. data/spec/cute_print_spec.rb +0 -54
  38. data/spec/format/inspect_spec.rb +0 -20
  39. data/spec/format/pretty_print_spec.rb +0 -36
  40. data/spec/inline_labeler_spec.rb +0 -39
  41. data/spec/irb_spec.rb +0 -25
  42. data/spec/labeler_spec.rb +0 -97
  43. data/spec/outline_labeler_spec.rb +0 -37
  44. data/spec/printer_spec.rb +0 -79
  45. data/spec/silence_warnings.rb +0 -24
  46. data/spec/spec_helper.rb +0 -21
  47. data/spec/support/captures_stderr.rb +0 -3
  48. data/tasks/cucumber.rake +0 -8
  49. data/tasks/default.rake +0 -1
  50. data/tasks/jeweler.rake +0 -39
  51. data/tasks/spec.rake +0 -5
  52. data/tasks/test.rake +0 -2
  53. data/tasks/yard.rake +0 -3
  54. data/test_support/captures_stderr.rb +0 -16
  55. data/test_support/captures_stdout.rb +0 -16
  56. data/test_support/thread_unsafe_string_io.rb +0 -13
@@ -1,16 +0,0 @@
1
- Feature: Inspect with source
2
-
3
- Kernel#q, if given a block, prints the source for the block and then
4
- the inspected result of running the block.
5
-
6
- Scenario: Label and inspect an object
7
- Given a file with:
8
- """
9
- require "cute_print"
10
- q {1 + 2}
11
- """
12
- Then stderr should be
13
- """
14
- (1 + 2) is 3
15
-
16
- """
@@ -1 +0,0 @@
1
- There are several ways to inspect objects:
@@ -1,41 +0,0 @@
1
- Feature: Pretty-print
2
-
3
- Kernel#qq pretty-prints its arguments and prints them, one per line. This
4
- is just like Kernel#pp from the pp library, except that it writes to $stderr
5
- by default.
6
-
7
- Scenario: One argument
8
- Given a file with:
9
- """
10
- require "cute_print"
11
- a = [
12
- "Once upon a time there were four little Rabbits, and their names were",
13
- "Flopsy,",
14
- "Mopsy,",
15
- "Cotton-tail, and",
16
- "Peter.",
17
- ]
18
- qq a
19
- """
20
- Then stderr should be
21
- """
22
- ["Once upon a time there were four little Rabbits, and their names were",
23
- "Flopsy,",
24
- "Mopsy,",
25
- "Cotton-tail, and",
26
- "Peter."]
27
-
28
- """
29
-
30
- Scenario: Two arguments
31
- Given a file with:
32
- """
33
- require "cute_print"
34
- qq 1, "foo"
35
- """
36
- Then stderr should be
37
- """
38
- 1
39
- "foo"
40
-
41
- """
@@ -1,73 +0,0 @@
1
- Feature: Pretty-print with source location
2
-
3
- Kernel#qql works just like Kernel#pp from the built-in pp library,
4
- except that it writes to $stderr _and_ it labels the output with
5
- the source location.
6
-
7
- If the filename is long, then the source location is printed on a
8
- line of its own.
9
-
10
- Scenario: One argument
11
- Given a file named "example.rb" with:
12
- """
13
- require "cute_print"
14
- a = [
15
- "Once upon a time there were four little Rabbits, ",
16
- "and their names were",
17
- "Flopsy,",
18
- "Mopsy,",
19
- "Cotton-tail, and",
20
- "Peter.",
21
- ]
22
- qql a
23
- """
24
- Then stderr should be
25
- """
26
- example.rb:10: ["Once upon a time there were four little Rabbits, ",
27
- "and their names were",
28
- "Flopsy,",
29
- "Mopsy,",
30
- "Cotton-tail, and",
31
- "Peter."]
32
-
33
- """
34
-
35
- Scenario: Two arguments
36
- Given a file named "example.rb" with:
37
- """
38
- require "cute_print"
39
- qql 1, "foo"
40
- """
41
- Then stderr should be
42
- """
43
- example.rb:2: 1
44
- example.rb:2: "foo"
45
-
46
- """
47
-
48
- Scenario: Very long label
49
-
50
- Given a file named "long____________________________filename.rb" with:
51
- """
52
- require "cute_print"
53
- a = [
54
- "Once upon a time there were four little Rabbits, ",
55
- "and their names were",
56
- "Flopsy,",
57
- "Mopsy,",
58
- "Cotton-tail, and",
59
- "Peter.",
60
- ]
61
- qql a
62
- """
63
- Then stderr should be
64
- """
65
- long____________________________filename.rb:10:
66
- ["Once upon a time there were four little Rabbits, ",
67
- "and their names were",
68
- "Flopsy,",
69
- "Mopsy,",
70
- "Cotton-tail, and",
71
- "Peter."]
72
-
73
- """
@@ -1,27 +0,0 @@
1
- Feature: Pretty-print with source
2
-
3
- Kernel#pp, if given a block, prints the source for the block and then
4
- the pretty-printed result of running the block.
5
-
6
- Scenario: Label and pretty-print an object
7
- Given a file with:
8
- """
9
- require "cute_print"
10
- a = [
11
- "Once upon a time there were four little Rabbits, and their names were",
12
- "Flopsy,",
13
- "Mopsy,",
14
- "Cotton-tail, and",
15
- "Peter.",
16
- ]
17
- qq {a}
18
- """
19
- Then stderr should be
20
- """
21
- a is ["Once upon a time there were four little Rabbits, and their names were",
22
- "Flopsy,",
23
- "Mopsy,",
24
- "Cotton-tail, and",
25
- "Peter."]
26
-
27
- """
data/features/readme.md DELETED
@@ -1 +0,0 @@
1
- Write debug output to the console, with flair.
@@ -1,9 +0,0 @@
1
- require "rspec/expectations"
2
-
3
- # Instead of letting cucumber load all of the .rb, we configure
4
- # cucumber to require them (in .config/cucumber.yml)
5
-
6
- glob = File.join(File.dirname(__FILE__), '**/*.rb')
7
- Dir[glob].sort.each do |path|
8
- require path
9
- end
@@ -1,52 +0,0 @@
1
- require_relative "example_runner"
2
- require_relative "temp_dir"
3
-
4
- class Example
5
-
6
- def initialize(contents, opts = {})
7
- @contents = contents
8
- @filename = opts.fetch(:filename, "example.rb")
9
- @temp_dir = TempDir.new
10
- create_file
11
- end
12
-
13
- def run
14
- ExampleRunner.run(path) do |stdout, stderr, exit_status|
15
- @stdout = stdout
16
- @stderr = stderr
17
- @exit_status = exit_status
18
- if @exit_status != 0
19
- fail "Failed: #{@stdout}\n#{@stderr}"
20
- end
21
- end
22
- end
23
-
24
- def stdout
25
- filter_output(@stdout)
26
- end
27
-
28
- def stderr
29
- filter_output(@stderr)
30
- end
31
-
32
- private
33
-
34
- def create_file
35
- File.open(path, 'w') do |file|
36
- file.write @contents
37
- end
38
- end
39
-
40
- def path
41
- File.join(@temp_dir.path, @filename)
42
- end
43
-
44
- def filter_output(output)
45
- redact_tmp_path(output)
46
- end
47
-
48
- def redact_tmp_path(output)
49
- output.sub(/\/tmp\/.*\//, "/tmp/.../")
50
- end
51
-
52
- end
@@ -1,24 +0,0 @@
1
- require "open3"
2
-
3
- require_relative "fork_example_runner"
4
- require_relative "shell_example_runner"
5
-
6
- class ExampleRunner
7
-
8
- def self.run(*args, &block)
9
- instance.run(*args, &block)
10
- end
11
-
12
- def self.instance
13
- @instance ||= make
14
- end
15
-
16
- def self.make
17
- if ForkExampleRunner.supported?
18
- ForkExampleRunner.new
19
- else
20
- ShellExampleRunner.new
21
- end
22
- end
23
-
24
- end
@@ -1,37 +0,0 @@
1
- require_relative "../../../test_support/captures_stderr"
2
- require_relative "../../../test_support/captures_stdout"
3
- require_relative "lib_path"
4
-
5
- require "open3"
6
-
7
- # This example runner is relatively fast, but isn't available on all
8
- # platforms.
9
- class ForkExampleRunner
10
-
11
- include CapturesStderr
12
- include CapturesStdout
13
- include LibPath
14
-
15
- def self.supported?
16
- Process.respond_to?(:fork)
17
- end
18
-
19
- def run(path)
20
- stdout_rd, stdout_wr = IO.pipe
21
- stderr_rd, stderr_wr = IO.pipe
22
- pid = fork do
23
- $stdout.reopen stdout_wr
24
- $stderr.reopen stderr_wr
25
- load path
26
- exit! 0
27
- end
28
- Process.wait(pid)
29
- exit_status = $?
30
- stdout_wr.close
31
- stderr_wr.close
32
- stdout = stdout_rd.read
33
- stderr = stderr_rd.read
34
- yield stdout, stderr, exit_status
35
- end
36
-
37
- end
@@ -1,7 +0,0 @@
1
- module LibPath
2
-
3
- def lib_path
4
- File.join(File.dirname(__FILE__), '../../../lib')
5
- end
6
-
7
- end
@@ -1,26 +0,0 @@
1
- require "open3"
2
-
3
- require_relative "lib_path"
4
-
5
- # This example runner is relatively slow, but should work on platforms
6
- # which do not support fork, such as Windows.
7
- class ShellExampleRunner
8
-
9
- include LibPath
10
-
11
- def run(path)
12
- command = [
13
- "ruby",
14
- "-I", lib_path,
15
- path,
16
- ]
17
- Open3.popen3(*command) do |stdin, stdout, stderr, wait_thr|
18
- stdin.close
19
- stdout = stdout.read
20
- stderr = stderr.read
21
- exit_status = wait_thr.value
22
- yield stdout, stderr, exit_status
23
- end
24
- end
25
-
26
- end
@@ -1,15 +0,0 @@
1
- require "fileutils"
2
- require "tmpdir"
3
-
4
- require_relative "temp_dir"
5
-
6
- class TempDir
7
-
8
- attr_reader :path
9
-
10
- def initialize
11
- @path = Dir.mktmpdir
12
- at_exit { FileUtils.remove_entry(@path) }
13
- end
14
-
15
- end
@@ -1,49 +0,0 @@
1
- module EnvUtil
2
-
3
- extend self
4
-
5
- # Set environment variables for the duration of the block, then
6
- # restore them to their original value.
7
- # @param h [Hash]
8
- def set(h)
9
- orig = {}
10
- h.keys.each do |key|
11
- orig[key] = ENV[key]
12
- end
13
- begin
14
- h.each do |key, value|
15
- ENV[key] = value.to_s
16
- end
17
- yield
18
- ensure
19
- orig.each do |key, value|
20
- ENV[key] = value
21
- end
22
- end
23
- end
24
-
25
- end
26
-
27
- Around do |scenario, block|
28
- EnvUtil.set("CUTE_PRINT_TERM_WIDTH" => 79) do
29
- block.call
30
- end
31
- end
32
-
33
- Given(/^a file with:$/) do |contents|
34
- @example = Example.new(contents)
35
- @example.run
36
- end
37
-
38
- Given(/^a file named "(.*?)" with:$/) do |filename, contents|
39
- @example = Example.new(contents, :filename => filename)
40
- @example.run
41
- end
42
-
43
- Then(/^stderr should be$/) do |expected|
44
- expect(@example.stderr).to eq expected
45
- end
46
-
47
- Then(/^stdout should be$/) do |expected|
48
- expect(@example.stdout).to eq expected
49
- end
@@ -1,54 +0,0 @@
1
- require_relative "spec_helper"
2
-
3
- require "stringio"
4
-
5
- require "cute_print"
6
-
7
- # This spec tests the parts of the library, as the user sees it, that
8
- # are not covered by a Cucumber feature.
9
- #
10
- # The other specs test internals.
11
-
12
- describe CutePrint do
13
-
14
- before(:each) do
15
- CutePrint.configure { |c| c.reset }
16
- end
17
-
18
- describe "#q" do
19
- When(:stderr) do
20
- capture_stderr do
21
- @result = q 123
22
- end
23
- end
24
- Then { expect(@result).to be_nil }
25
- end
26
-
27
- describe "#ql" do
28
- When(:stderr) do
29
- capture_stderr do
30
- @result = ql 123
31
- end
32
- end
33
- Then { expect(@result).to be_nil }
34
- end
35
-
36
- describe "#qq" do
37
- When do
38
- @stderr = capture_stderr do
39
- @result = qq 123
40
- end
41
- end
42
- Then { expect(@result).to be_nil }
43
- end
44
-
45
- describe "#qql" do
46
- When do
47
- @stderr = capture_stderr do
48
- @result = qql 123
49
- end
50
- end
51
- Then { expect(@result).to be_nil }
52
- end
53
-
54
- end