aruba 0.10.0.pre → 0.10.0.pre2
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.
- checksums.yaml +4 -4
- data/.travis.yml +3 -3
- data/History.md +7 -1
- data/lib/aruba/matchers/base/base_matcher.rb +2 -2
- data/lib/aruba/matchers/base/object_formatter.rb +110 -0
- data/lib/aruba/version.rb +1 -1
- metadata +4 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 8629fdb3cc71266ccb714b5423728671ef1216b9
|
4
|
+
data.tar.gz: 5451d0a593fcb71b59275a3b83f7ecdbacc79d8d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: b61b360369dd57186dc7a4de4c0e2c5c367fa3109a0ed4d63205f704787344392e9b677216fc00b2d5eb33a19ed0c66b8c087d3d08492260911033d2655d813b
|
7
|
+
data.tar.gz: 3e69d2bdc444786404a5e09edef498afb4c5f6a041858d950ff90528c87d01971eb550977b8ed65e8c9a3fe9729d02eecba9ec03ce4ae84f51d7fe0349e695d7
|
data/.travis.yml
CHANGED
@@ -19,9 +19,9 @@ rvm:
|
|
19
19
|
matrix:
|
20
20
|
allow_failures:
|
21
21
|
- rvm: rbx
|
22
|
-
- rvm:
|
23
|
-
- rvm:
|
24
|
-
- rvm:
|
22
|
+
- rvm: jruby-9.0.0.0
|
23
|
+
- rvm: jruby-9.0.0.0-20mode
|
24
|
+
- rvm: jruby-9.0.0.0-21mode
|
25
25
|
notifications:
|
26
26
|
email:
|
27
27
|
- cukes-devs@googlegroups.com
|
data/History.md
CHANGED
@@ -1,5 +1,12 @@
|
|
1
1
|
# Latest Release
|
2
2
|
|
3
|
+
## [v0.10.0.pre2](https://github.com/cucumber/aruba/compare/v0.10.0.pre...v0.10.0.pre2)
|
4
|
+
|
5
|
+
* Take over code from `RSpec::Support::ObjectFormatter` since `rspec-support`
|
6
|
+
is not intended for public use.
|
7
|
+
|
8
|
+
# Old releases
|
9
|
+
|
3
10
|
## [v0.10.0.pre](https://github.com/cucumber/aruba/compare/v0.9.0...v0.10.0)
|
4
11
|
|
5
12
|
* Add some new steps to make writing documentation easier using "cucumber",
|
@@ -14,7 +21,6 @@
|
|
14
21
|
* Added work around because of method name conflict between Capybara and RSpec
|
15
22
|
(https://github.com/cucumber/aruba/commit/1939c4049d5195ffdd967485f50119bdd86e98a0)
|
16
23
|
|
17
|
-
# Old releases
|
18
24
|
|
19
25
|
## [v0.9.0](https://github.com/cucumber/aruba/compare/v0.9.0.pre2...v0.9.0)
|
20
26
|
|
@@ -1,4 +1,4 @@
|
|
1
|
-
require '
|
1
|
+
require 'aruba/matchers/base/object_formatter'
|
2
2
|
|
3
3
|
module Aruba
|
4
4
|
module Matchers
|
@@ -87,7 +87,7 @@ module Aruba
|
|
87
87
|
# a `description` method, returns the description; otherwise
|
88
88
|
# returns `object.inspect`.
|
89
89
|
def description_of(object)
|
90
|
-
|
90
|
+
Aruba::Matchers::ObjectFormatter.format(object)
|
91
91
|
end
|
92
92
|
end
|
93
93
|
end
|
@@ -0,0 +1,110 @@
|
|
1
|
+
module Aruba
|
2
|
+
module Matchers
|
3
|
+
# Provide additional output details beyond what `inspect` provides when
|
4
|
+
# printing Time, DateTime, or BigDecimal
|
5
|
+
module ObjectFormatter
|
6
|
+
# @api private
|
7
|
+
def self.format(object)
|
8
|
+
prepare_for_inspection(object).inspect
|
9
|
+
end
|
10
|
+
|
11
|
+
# rubocop:disable MethodLength
|
12
|
+
# rubocop:disable Metrics/CyclomaticComplexity
|
13
|
+
|
14
|
+
# @private
|
15
|
+
# Prepares the provided object to be formatted by wrapping it as needed
|
16
|
+
# in something that, when `inspect` is called on it, will produce the
|
17
|
+
# desired output.
|
18
|
+
#
|
19
|
+
# This allows us to apply the desired formatting to hash/array data structures
|
20
|
+
# at any level of nesting, simply by walking that structure and replacing items
|
21
|
+
# with custom items that have `inspect` defined to return the desired output
|
22
|
+
# for that item. Then we can just use `Array#inspect` or `Hash#inspect` to
|
23
|
+
# format the entire thing.
|
24
|
+
def self.prepare_for_inspection(object)
|
25
|
+
case object
|
26
|
+
when Array
|
27
|
+
return object.map { |o| prepare_for_inspection(o) }
|
28
|
+
when Hash
|
29
|
+
return prepare_hash(object)
|
30
|
+
when Time
|
31
|
+
inspection = format_time(object)
|
32
|
+
else
|
33
|
+
if defined?(DateTime) && DateTime === object
|
34
|
+
inspection = format_date_time(object)
|
35
|
+
elsif defined?(BigDecimal) && BigDecimal === object
|
36
|
+
inspection = "#{object.to_s 'F'} (#{object.inspect})"
|
37
|
+
elsif RSpec::Support.is_a_matcher?(object) && object.respond_to?(:description)
|
38
|
+
inspection = object.description
|
39
|
+
else
|
40
|
+
return DelegatingInspector.new(object)
|
41
|
+
end
|
42
|
+
end
|
43
|
+
|
44
|
+
InspectableItem.new(inspection)
|
45
|
+
end
|
46
|
+
# rubocop:enable Metrics/CyclomaticComplexity
|
47
|
+
# rubocop:enable MethodLength
|
48
|
+
|
49
|
+
# @private
|
50
|
+
def self.prepare_hash(input)
|
51
|
+
input.each_with_object({}) do |(k, v), hash|
|
52
|
+
hash[prepare_for_inspection(k)] = prepare_for_inspection(v)
|
53
|
+
end
|
54
|
+
end
|
55
|
+
|
56
|
+
TIME_FORMAT = "%Y-%m-%d %H:%M:%S"
|
57
|
+
|
58
|
+
if Time.method_defined?(:nsec)
|
59
|
+
# @private
|
60
|
+
def self.format_time(time)
|
61
|
+
time.strftime("#{TIME_FORMAT}.#{format('%09d', time.nsec)} %z")
|
62
|
+
end
|
63
|
+
else # for 1.8.7
|
64
|
+
# @private
|
65
|
+
def self.format_time(time)
|
66
|
+
time.strftime("#{TIME_FORMAT}.#{format('%06d', time.usec)} %z")
|
67
|
+
end
|
68
|
+
end
|
69
|
+
|
70
|
+
DATE_TIME_FORMAT = "%a, %d %b %Y %H:%M:%S.%N %z"
|
71
|
+
|
72
|
+
# ActiveSupport sometimes overrides inspect. If `ActiveSupport` is
|
73
|
+
# defined use a custom format string that includes more time precision.
|
74
|
+
# @private
|
75
|
+
def self.format_date_time(date_time)
|
76
|
+
if defined?(ActiveSupport)
|
77
|
+
date_time.strftime(DATE_TIME_FORMAT)
|
78
|
+
else
|
79
|
+
date_time.inspect
|
80
|
+
end
|
81
|
+
end
|
82
|
+
|
83
|
+
# @private
|
84
|
+
InspectableItem = Struct.new(:inspection) do
|
85
|
+
def inspect
|
86
|
+
inspection
|
87
|
+
end
|
88
|
+
|
89
|
+
def pretty_print(pp)
|
90
|
+
pp.text inspection
|
91
|
+
end
|
92
|
+
end
|
93
|
+
|
94
|
+
# @private
|
95
|
+
DelegatingInspector = Struct.new(:object) do
|
96
|
+
def inspect
|
97
|
+
if defined?(::Delegator) && ::Delegator === object
|
98
|
+
"#<#{object.class}(#{ObjectFormatter.format(object.__getobj__)})>"
|
99
|
+
else
|
100
|
+
object.inspect
|
101
|
+
end
|
102
|
+
end
|
103
|
+
|
104
|
+
def pretty_print(pp)
|
105
|
+
pp.text inspect
|
106
|
+
end
|
107
|
+
end
|
108
|
+
end
|
109
|
+
end
|
110
|
+
end
|
data/lib/aruba/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: aruba
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.10.0.
|
4
|
+
version: 0.10.0.pre2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Aslak Hellesøy
|
@@ -13,7 +13,7 @@ authors:
|
|
13
13
|
autorequire:
|
14
14
|
bindir: bin
|
15
15
|
cert_chain: []
|
16
|
-
date: 2015-10-
|
16
|
+
date: 2015-10-21 00:00:00.000000000 Z
|
17
17
|
dependencies:
|
18
18
|
- !ruby/object:Gem::Dependency
|
19
19
|
name: cucumber
|
@@ -292,6 +292,7 @@ files:
|
|
292
292
|
- lib/aruba/initializer.rb
|
293
293
|
- lib/aruba/jruby.rb
|
294
294
|
- lib/aruba/matchers/base/base_matcher.rb
|
295
|
+
- lib/aruba/matchers/base/object_formatter.rb
|
295
296
|
- lib/aruba/matchers/collection.rb
|
296
297
|
- lib/aruba/matchers/collection/all.rb
|
297
298
|
- lib/aruba/matchers/collection/include_an_object.rb
|
@@ -431,7 +432,7 @@ rubyforge_project:
|
|
431
432
|
rubygems_version: 2.4.5.1
|
432
433
|
signing_key:
|
433
434
|
specification_version: 4
|
434
|
-
summary: aruba-0.10.0.
|
435
|
+
summary: aruba-0.10.0.pre2
|
435
436
|
test_files:
|
436
437
|
- features/announce.feature
|
437
438
|
- features/api/command/run.feature
|