amazing_print 1.1.0 → 1.2.0
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/CHANGELOG.md +16 -0
- data/Gemfile +2 -0
- data/LICENSE +1 -0
- data/Rakefile +2 -0
- data/lib/amazing_print.rb +3 -1
- data/lib/amazing_print/colorize.rb +2 -0
- data/lib/amazing_print/core_ext/awesome_method_array.rb +3 -1
- data/lib/amazing_print/core_ext/class.rb +2 -0
- data/lib/amazing_print/core_ext/kernel.rb +2 -0
- data/lib/amazing_print/core_ext/logger.rb +2 -0
- data/lib/amazing_print/core_ext/object.rb +2 -0
- data/lib/amazing_print/core_ext/string.rb +5 -2
- data/lib/amazing_print/custom_defaults.rb +2 -0
- data/lib/amazing_print/ext/action_view.rb +2 -0
- data/lib/amazing_print/ext/active_record.rb +3 -1
- data/lib/amazing_print/ext/active_support.rb +2 -0
- data/lib/amazing_print/ext/mongo_mapper.rb +3 -1
- data/lib/amazing_print/ext/mongoid.rb +2 -0
- data/lib/amazing_print/ext/nobrainer.rb +2 -0
- data/lib/amazing_print/ext/nokogiri.rb +2 -0
- data/lib/amazing_print/ext/ostruct.rb +2 -0
- data/lib/amazing_print/ext/ripple.rb +2 -0
- data/lib/amazing_print/ext/sequel.rb +4 -2
- data/lib/amazing_print/formatter.rb +7 -0
- data/lib/amazing_print/formatters.rb +2 -0
- data/lib/amazing_print/formatters/array_formatter.rb +3 -1
- data/lib/amazing_print/formatters/base_formatter.rb +3 -1
- data/lib/amazing_print/formatters/class_formatter.rb +2 -0
- data/lib/amazing_print/formatters/dir_formatter.rb +2 -0
- data/lib/amazing_print/formatters/file_formatter.rb +2 -0
- data/lib/amazing_print/formatters/hash_formatter.rb +3 -1
- data/lib/amazing_print/formatters/method_formatter.rb +2 -0
- data/lib/amazing_print/formatters/object_formatter.rb +13 -12
- data/lib/amazing_print/formatters/simple_formatter.rb +2 -0
- data/lib/amazing_print/formatters/struct_formatter.rb +8 -6
- data/lib/amazing_print/indentator.rb +2 -0
- data/lib/amazing_print/inspector.rb +9 -9
- data/lib/amazing_print/version.rb +3 -1
- data/lib/ap.rb +2 -0
- data/spec/active_record_helper.rb +2 -0
- data/spec/colors_spec.rb +11 -2
- data/spec/core_ext/logger_spec.rb +2 -0
- data/spec/core_ext/string_spec.rb +2 -7
- data/spec/ext/action_controller_spec.rb +40 -0
- data/spec/ext/action_view_spec.rb +2 -0
- data/spec/ext/active_record_spec.rb +7 -5
- data/spec/ext/active_support_spec.rb +2 -0
- data/spec/ext/mongo_mapper_spec.rb +6 -4
- data/spec/ext/mongoid_spec.rb +2 -0
- data/spec/ext/nobrainer_spec.rb +2 -0
- data/spec/ext/nokogiri_spec.rb +2 -0
- data/spec/ext/ostruct_spec.rb +2 -0
- data/spec/ext/ripple_spec.rb +2 -0
- data/spec/ext/sequel_spec.rb +29 -27
- data/spec/formats_spec.rb +10 -8
- data/spec/methods_spec.rb +5 -3
- data/spec/misc_spec.rb +3 -1
- data/spec/objects_spec.rb +2 -0
- data/spec/sequel_helper.rb +2 -0
- data/spec/spec_helper.rb +4 -1
- data/spec/support/active_record_data.rb +2 -0
- data/spec/support/ext_verifier.rb +2 -0
- data/spec/support/mongoid_versions.rb +2 -0
- data/spec/support/rails_versions.rb +2 -0
- metadata +56 -41
- data/lib/amazing_print/core_ext/method.rb +0 -21
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 831dcabef8a04de7ce8342167146dc8ab32017b74d4edd59cb195a151f7da935
|
4
|
+
data.tar.gz: 4ee631f2582a834a7cf729cc183da2f9473fb8c3fd77ba176eaf731722b7a626
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 65eccdf9af7bae3928fa0310e17e823c2c308bb21884cb70d264175fbf1d73716e5a8e2d8ff3bed7a316033fb7d61763cc70ae6411fb68566cbf599fb0fd535d
|
7
|
+
data.tar.gz: 138adab4d8821378740b0214553c2a8ef6ac0cb7ce96cdf0029b437fb30bc3776958f81aa00dddbc855d137114388ae7b4ef4513df41d0ab280f34563342b95d
|
data/CHANGELOG.md
CHANGED
@@ -1,2 +1,18 @@
|
|
1
|
+
## unreleased
|
2
|
+
- Add `uncolor` method to remove ANSI color sequences.
|
3
|
+
|
4
|
+
|
5
|
+
## v1.1.0
|
6
|
+
- Print out method keyword arguments
|
7
|
+
- Fix NoMethodError with Sequel
|
8
|
+
- Code cleanups
|
9
|
+
|
10
|
+
Thanks for the great contributions from:
|
11
|
+
|
12
|
+
- andydna
|
13
|
+
- beanieboi
|
14
|
+
|
15
|
+
|
16
|
+
|
1
17
|
## v1.0.0
|
2
18
|
- Initial Release.
|
data/Gemfile
CHANGED
data/LICENSE
CHANGED
data/Rakefile
CHANGED
data/lib/amazing_print.rb
CHANGED
@@ -1,3 +1,5 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
# Copyright (c) 2010-2016 Michael Dvorkin and contributors
|
2
4
|
#
|
3
5
|
# AmazingPrint is freely distributable under the terms of MIT license.
|
@@ -8,7 +10,7 @@
|
|
8
10
|
# so do nothing for subsequent requires.
|
9
11
|
#
|
10
12
|
unless defined?(AmazingPrint::Inspector)
|
11
|
-
%w[awesome_method_array string
|
13
|
+
%w[awesome_method_array string object class kernel].each do |file|
|
12
14
|
require_relative "amazing_print/core_ext/#{file}"
|
13
15
|
end
|
14
16
|
|
@@ -1,3 +1,5 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
# Copyright (c) 2010-2016 Michael Dvorkin and contributors
|
2
4
|
#
|
3
5
|
# AmazingPrint is freely distributable under the terms of MIT license.
|
@@ -76,7 +78,7 @@ module AwesomeMethodArray #:nodoc:
|
|
76
78
|
super(pattern)
|
77
79
|
end
|
78
80
|
arr.instance_variable_set(:@__awesome_methods__, instance_variable_get(:@__awesome_methods__))
|
79
|
-
arr.
|
81
|
+
arr.select! { |item| (item.is_a?(Symbol) || item.is_a?(String)) } # grep block might return crap.
|
80
82
|
arr
|
81
83
|
end
|
82
84
|
end
|
@@ -1,3 +1,4 @@
|
|
1
|
+
# frozen_string_literal: true
|
1
2
|
# Copyright (c) 2010-2016 Michael Dvorkin and contributors
|
2
3
|
#
|
3
4
|
# AmazingPrint is freely distributable under the terms of MIT license.
|
@@ -37,6 +38,8 @@ class String
|
|
37
38
|
end
|
38
39
|
end
|
39
40
|
|
40
|
-
|
41
|
-
|
41
|
+
# Remove ANSI color codes.
|
42
|
+
def uncolor
|
43
|
+
gsub(/\e\[[0-9;]*m/, '')
|
44
|
+
end
|
42
45
|
end
|
@@ -1,3 +1,5 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
# Copyright (c) 2010-2016 Michael Dvorkin and contributors
|
2
4
|
#
|
3
5
|
# AmazingPrint is freely distributable under the terms of MIT license.
|
@@ -53,7 +55,7 @@ module AmazingPrint
|
|
53
55
|
end
|
54
56
|
end
|
55
57
|
end
|
56
|
-
"#{object} "
|
58
|
+
"#{object} " + awesome_hash(data)
|
57
59
|
end
|
58
60
|
|
59
61
|
# Format ActiveRecord class object.
|
@@ -1,3 +1,5 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
# Copyright (c) 2010-2016 Michael Dvorkin and contributors
|
2
4
|
#
|
3
5
|
# AmazingPrint is freely distributable under the terms of MIT license.
|
@@ -17,7 +19,7 @@ module AmazingPrint
|
|
17
19
|
cast = cast_without_mongo_mapper(object, type)
|
18
20
|
|
19
21
|
if defined?(::MongoMapper::Document)
|
20
|
-
if object.is_a?(Class) && (object.ancestors & [::MongoMapper::Document, ::MongoMapper::EmbeddedDocument]).
|
22
|
+
if object.is_a?(Class) && !(object.ancestors & [::MongoMapper::Document, ::MongoMapper::EmbeddedDocument]).empty?
|
21
23
|
cast = :mongo_mapper_class
|
22
24
|
elsif object.is_a?(::MongoMapper::Document) || object.is_a?(::MongoMapper::EmbeddedDocument)
|
23
25
|
cast = :mongo_mapper_instance
|
@@ -1,3 +1,5 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
# Copyright (c) 2010-2016 Michael Dvorkin and contributors
|
2
4
|
#
|
3
5
|
# AmazingPrint is freely distributable under the terms of MIT license.
|
@@ -16,7 +18,7 @@ module AmazingPrint
|
|
16
18
|
cast = cast_without_sequel(object, type)
|
17
19
|
if defined?(::Sequel::Model) && object.is_a?(::Sequel::Model)
|
18
20
|
cast = :sequel_document
|
19
|
-
elsif defined?(::Sequel::Model) && object.is_a?(Class) && object.ancestors.include?(::Sequel::Model) && object&.name !=
|
21
|
+
elsif defined?(::Sequel::Model) && object.is_a?(Class) && object.ancestors.include?(::Sequel::Model) && object&.name != 'Sequel::Model'
|
20
22
|
cast = :sequel_model_class
|
21
23
|
elsif defined?(::Sequel::Mysql2::Dataset) && object.class.ancestors.include?(::Sequel::Mysql2::Dataset)
|
22
24
|
cast = :sequel_dataset
|
@@ -27,7 +29,7 @@ module AmazingPrint
|
|
27
29
|
# Format Sequel Document object.
|
28
30
|
#------------------------------------------------------------------------------
|
29
31
|
def awesome_sequel_document(object)
|
30
|
-
data = object.values.sort_by
|
32
|
+
data = object.values.sort_by(&:to_s).each_with_object({}) do |c, hash|
|
31
33
|
hash[c[0].to_sym] = c[1]
|
32
34
|
end
|
33
35
|
data = { errors: object.errors, values: data } unless object.errors.empty?
|
@@ -1,3 +1,5 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
# Copyright (c) 2010-2016 Michael Dvorkin and contributors
|
2
4
|
#
|
3
5
|
# AmazingPrint is freely distributable under the terms of MIT license.
|
@@ -111,6 +113,11 @@ module AmazingPrint
|
|
111
113
|
|
112
114
|
return nil if object.method(:to_hash).arity != 0
|
113
115
|
|
116
|
+
# ActionController::Parameters will raise if they are not yet permitted and
|
117
|
+
# we try to convert to hash.
|
118
|
+
# https://api.rubyonrails.org/classes/ActionController/Parameters.html
|
119
|
+
return nil if object.respond_to?(:permitted?) && !object.permitted?
|
120
|
+
|
114
121
|
hash = object.to_hash
|
115
122
|
return nil if !hash.respond_to?(:keys) || !hash.respond_to?(:[])
|
116
123
|
|
@@ -1,3 +1,5 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
require_relative 'base_formatter'
|
2
4
|
|
3
5
|
module AmazingPrint
|
@@ -31,7 +33,7 @@ module AmazingPrint
|
|
31
33
|
if options[:multiline]
|
32
34
|
multiline_array
|
33
35
|
else
|
34
|
-
'[ '
|
36
|
+
'[ ' + array.map { |item| inspector.awesome(item) }.join(', ') + ' ]'
|
35
37
|
end
|
36
38
|
end
|
37
39
|
|
@@ -1,3 +1,5 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
require_relative '../colorize'
|
2
4
|
|
3
5
|
module AmazingPrint
|
@@ -93,7 +95,7 @@ module AmazingPrint
|
|
93
95
|
# #<UnboundMethod: Hello#world>
|
94
96
|
# #<UnboundMethod: Hello#world() /home/hs/code/amazing_print/spec/methods_spec.rb:68>
|
95
97
|
#
|
96
|
-
if method.to_s =~
|
98
|
+
if method.to_s =~ %r{(Unbound)*Method: ((#<)?[^/#]*)[#\.]}
|
97
99
|
unbound = Regexp.last_match(1) && '(unbound)'
|
98
100
|
klass = Regexp.last_match(2)
|
99
101
|
if klass && klass =~ /(\(\w+:\s.*?\))/ # Is this ActiveRecord-style class?
|
@@ -1,3 +1,5 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
require_relative 'base_formatter'
|
2
4
|
|
3
5
|
module AmazingPrint
|
@@ -88,7 +90,7 @@ module AmazingPrint
|
|
88
90
|
end
|
89
91
|
|
90
92
|
def pre_ruby19_syntax(key, value, width)
|
91
|
-
align(key, width)
|
93
|
+
align(key, width) + colorize(' => ', :hash) + inspector.awesome(value)
|
92
94
|
end
|
93
95
|
|
94
96
|
def plain_single_line
|
@@ -1,3 +1,5 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
require_relative 'base_formatter'
|
2
4
|
|
3
5
|
module AmazingPrint
|
@@ -33,15 +35,15 @@ module AmazingPrint
|
|
33
35
|
end
|
34
36
|
|
35
37
|
unless options[:plain]
|
36
|
-
if key =~ /(@\w+)/
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
38
|
+
key = if key =~ /(@\w+)/
|
39
|
+
key.sub(Regexp.last_match(1), colorize(Regexp.last_match(1), :variable))
|
40
|
+
else
|
41
|
+
key.sub(/(attr_\w+)\s(\:\w+)/, "#{colorize('\\1', :keyword)} #{colorize('\\2', :method)}")
|
42
|
+
end
|
41
43
|
end
|
42
44
|
|
43
45
|
indented do
|
44
|
-
key
|
46
|
+
key + colorize(' = ', :hash) + inspector.awesome(object.instance_variable_get(var))
|
45
47
|
end
|
46
48
|
end
|
47
49
|
|
@@ -60,14 +62,13 @@ module AmazingPrint
|
|
60
62
|
|
61
63
|
def awesome_instance
|
62
64
|
str = object.send(options[:class_name]).to_s
|
63
|
-
|
64
|
-
|
65
|
+
return str unless options[:object_id]
|
66
|
+
|
67
|
+
# We need to ensure that the original Kernel#format is used here instead of the one
|
68
|
+
# defined above.
|
65
69
|
# rubocop:disable Style/ColonMethodCall
|
66
|
-
|
67
|
-
str << Kernel::format(':0x%08x', (object.__id__ * 2))
|
68
|
-
end
|
70
|
+
str + Kernel::format(':0x%08x', (object.__id__ * 2))
|
69
71
|
# rubocop:enable Style/ColonMethodCall
|
70
|
-
str
|
71
72
|
end
|
72
73
|
|
73
74
|
def left_aligned
|
@@ -1,3 +1,5 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
require_relative 'base_formatter'
|
2
4
|
|
3
5
|
module AmazingPrint
|
@@ -33,15 +35,15 @@ module AmazingPrint
|
|
33
35
|
end
|
34
36
|
|
35
37
|
unless options[:plain]
|
36
|
-
if key =~ /(@\w+)/
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
38
|
+
key = if key =~ /(@\w+)/
|
39
|
+
key.sub(Regexp.last_match(1), colorize(Regexp.last_match(1), :variable))
|
40
|
+
else
|
41
|
+
key.sub(/(attr_\w+)\s(\:\w+)/, "#{colorize('\\1', :keyword)} #{colorize('\\2', :method)}")
|
42
|
+
end
|
41
43
|
end
|
42
44
|
|
43
45
|
indented do
|
44
|
-
key
|
46
|
+
key + colorize(' = ', :hash) + inspector.awesome(struct.send(var))
|
45
47
|
end
|
46
48
|
end
|
47
49
|
|
@@ -1,3 +1,5 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
# Copyright (c) 2010-2016 Michael Dvorkin and contributors
|
2
4
|
#
|
3
5
|
# AmazingPrint is freely distributable under the terms of MIT license.
|
@@ -26,7 +28,7 @@ module AmazingPrint
|
|
26
28
|
class_name: :class, # Method used to get Instance class name.
|
27
29
|
object_id: true, # Show object_id.
|
28
30
|
color: {
|
29
|
-
args: :
|
31
|
+
args: :whiteish,
|
30
32
|
array: :white,
|
31
33
|
bigdecimal: :blue,
|
32
34
|
class: :yellow,
|
@@ -35,13 +37,13 @@ module AmazingPrint
|
|
35
37
|
fixnum: :blue,
|
36
38
|
integer: :blue,
|
37
39
|
float: :blue,
|
38
|
-
hash: :
|
40
|
+
hash: :whiteish,
|
39
41
|
keyword: :cyan,
|
40
42
|
method: :purpleish,
|
41
43
|
nilclass: :red,
|
42
44
|
rational: :blue,
|
43
45
|
string: :yellowish,
|
44
|
-
struct: :
|
46
|
+
struct: :whiteish,
|
45
47
|
symbol: :cyanish,
|
46
48
|
time: :greenish,
|
47
49
|
trueclass: :green,
|
@@ -86,10 +88,10 @@ module AmazingPrint
|
|
86
88
|
def colorize?
|
87
89
|
AmazingPrint.force_colors ||= false
|
88
90
|
AmazingPrint.force_colors || (
|
89
|
-
if defined? @
|
90
|
-
@
|
91
|
+
if defined? @colorize_stdout
|
92
|
+
@colorize_stdout
|
91
93
|
else
|
92
|
-
@
|
94
|
+
@colorize_stdout = STDOUT.tty? && (
|
93
95
|
(
|
94
96
|
ENV['TERM'] &&
|
95
97
|
ENV['TERM'] != 'dumb'
|
@@ -165,9 +167,7 @@ module AmazingPrint
|
|
165
167
|
#---------------------------------------------------------------------------
|
166
168
|
def merge_custom_defaults!
|
167
169
|
load_dotfile
|
168
|
-
if AmazingPrint.defaults.is_a?(Hash)
|
169
|
-
merge_options!(AmazingPrint.defaults)
|
170
|
-
end
|
170
|
+
merge_options!(AmazingPrint.defaults) if AmazingPrint.defaults.is_a?(Hash)
|
171
171
|
rescue StandardError => e
|
172
172
|
warn "Could not load '.aprc' from ENV['HOME']: #{e}"
|
173
173
|
end
|
@@ -1,3 +1,5 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
# Copyright (c) 2010-2016 Michael Dvorkin and contributors
|
2
4
|
#
|
3
5
|
# AmazingPrint is freely distributable under the terms of MIT license.
|
@@ -5,6 +7,6 @@
|
|
5
7
|
#------------------------------------------------------------------------------
|
6
8
|
module AmazingPrint
|
7
9
|
def self.version
|
8
|
-
'1.
|
10
|
+
'1.2.0'
|
9
11
|
end
|
10
12
|
end
|
data/lib/ap.rb
CHANGED
data/spec/colors_spec.rb
CHANGED
@@ -1,3 +1,5 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
require 'spec_helper'
|
2
4
|
|
3
5
|
RSpec.describe 'AmazingPrint' do
|
@@ -18,8 +20,8 @@ RSpec.describe 'AmazingPrint' do
|
|
18
20
|
end
|
19
21
|
|
20
22
|
describe 'colorization' do
|
21
|
-
PLAIN = '[ 1, :two, "three", [ nil, [ true, false ] ] ]'
|
22
|
-
COLORIZED = "[ \e[1;34m1\e[0m, \e[0;36m:two\e[0m, \e[0;33m\"three\"\e[0m, [ \e[1;31mnil\e[0m, [ \e[1;32mtrue\e[0m, \e[1;31mfalse\e[0m ] ] ]"
|
23
|
+
PLAIN = '[ 1, :two, "three", [ nil, [ true, false ] ] ]'
|
24
|
+
COLORIZED = "[ \e[1;34m1\e[0m, \e[0;36m:two\e[0m, \e[0;33m\"three\"\e[0m, [ \e[1;31mnil\e[0m, [ \e[1;32mtrue\e[0m, \e[1;31mfalse\e[0m ] ] ]"
|
23
25
|
|
24
26
|
before do
|
25
27
|
ENV['TERM'] = 'xterm-colors'
|
@@ -110,5 +112,12 @@ RSpec.describe 'AmazingPrint' do
|
|
110
112
|
end
|
111
113
|
end
|
112
114
|
end
|
115
|
+
|
116
|
+
describe 'uncolor' do
|
117
|
+
it 'removes any ANSI color codes' do
|
118
|
+
expect('red'.red + 'blue'.blue).to eq "\e[1;31mred\e[0m\e[1;34mblue\e[0m"
|
119
|
+
expect(('red'.red + 'blue'.blue).uncolor).to eq 'redblue'
|
120
|
+
end
|
121
|
+
end
|
113
122
|
end
|
114
123
|
end
|
@@ -1,3 +1,5 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
require 'spec_helper'
|
2
4
|
|
3
5
|
RSpec.describe 'String extensions' do
|
@@ -10,11 +12,4 @@ RSpec.describe 'String extensions' do
|
|
10
12
|
expect(color.to_s.send(:"#{color}ish")).to eq("\e[0;#{30 + i}m#{color}\e[0m")
|
11
13
|
end
|
12
14
|
end
|
13
|
-
|
14
|
-
it 'should have black and pale colors' do
|
15
|
-
expect('black'.send(:black)).to eq('black'.send(:grayish))
|
16
|
-
expect('pale'.send(:pale)).to eq('pale'.send(:whiteish))
|
17
|
-
expect('pale'.send(:pale)).to eq("\e[0;37mpale\e[0m")
|
18
|
-
expect('whiteish'.send(:whiteish)).to eq("\e[0;37mwhiteish\e[0m")
|
19
|
-
end
|
20
15
|
end
|
@@ -0,0 +1,40 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'spec_helper'
|
4
|
+
|
5
|
+
RSpec.describe 'AmazingPrint::ActionController', skip: -> { !ExtVerifier.has_rails? }.call do
|
6
|
+
let(:inspector) { AmazingPrint::Inspector.new }
|
7
|
+
|
8
|
+
context 'with unpermitted ActionController::Parameters' do
|
9
|
+
let(:parameters) do
|
10
|
+
ActionController::Parameters.new post: { id: 1, content: 'Some' }
|
11
|
+
end
|
12
|
+
|
13
|
+
it 'should format as an object' do
|
14
|
+
expect(inspector.send(:awesome, parameters)).to eq(
|
15
|
+
'<ActionController::Parameters {"post"=>{"id"=>1, "content"=>"Some"}} permitted: false>'
|
16
|
+
)
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
20
|
+
context 'with permitted ActionController::Parameters' do
|
21
|
+
let(:expected_output) do
|
22
|
+
<<~OUTPUT
|
23
|
+
{
|
24
|
+
\"post\"\e[0;37m => \e[0m{
|
25
|
+
\"id\"\e[0;37m => \e[0m\e[1;34m1\e[0m,
|
26
|
+
\"content\"\e[0;37m => \e[0m\e[0;33m\"Some\"\e[0m
|
27
|
+
}
|
28
|
+
}
|
29
|
+
OUTPUT
|
30
|
+
.chomp
|
31
|
+
end
|
32
|
+
let(:parameters) do
|
33
|
+
ActionController::Parameters.new post: { id: 1, content: 'Some' }
|
34
|
+
end
|
35
|
+
|
36
|
+
it 'should format as a hash' do
|
37
|
+
expect(inspector.send(:awesome, parameters.permit!)).to eq expected_output
|
38
|
+
end
|
39
|
+
end
|
40
|
+
end
|
@@ -1,3 +1,5 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
require 'spec_helper'
|
2
4
|
require 'active_record_helper'
|
3
5
|
|
@@ -257,9 +259,9 @@ RSpec.describe 'AmazingPrint/ActiveRecord', skip: -> { !ExtVerifier.has_rails? }
|
|
257
259
|
)
|
258
260
|
elsif RUBY_VERSION >= '2.7.0'
|
259
261
|
expect(out).to match(
|
260
|
-
/\s*first\(\*args,\s+&block\)\s+#<Class:ActiveRecord::Base> \(ActiveRecord::Querying\)/
|
262
|
+
/\s*first\(\*(\*|args),\s+&(&|block)\)\s+#<Class:ActiveRecord::Base> \(ActiveRecord::Querying\)/
|
261
263
|
)
|
262
|
-
elsif RUBY_VERSION
|
264
|
+
elsif RUBY_VERSION =~ /^2\.4\.([4-9]|[1-9][0-9])|^2\.[56]\./
|
263
265
|
expect(out).to match(/\sfirst\(\*arg.*?\)\s+User/)
|
264
266
|
elsif RUBY_VERSION >= '1.9'
|
265
267
|
expect(out).to match(/\sfirst\(\*args,\s&block\)\s+Class \(ActiveRecord::Querying\)/)
|
@@ -280,7 +282,7 @@ RSpec.describe 'AmazingPrint/ActiveRecord', skip: -> { !ExtVerifier.has_rails? }
|
|
280
282
|
expect(out).to match(
|
281
283
|
/\sprimary_key\(.*?\)\s+.+Class.+\(ActiveRecord::AttributeMethods::PrimaryKey::ClassMethods\)/
|
282
284
|
)
|
283
|
-
elsif RUBY_VERSION
|
285
|
+
elsif RUBY_VERSION =~ /^2\.4\.([4-9]|[1-9][0-9])|^2\.[56]\./
|
284
286
|
expect(out).to match(/\sprimary_key\(.*?\)\s+User/)
|
285
287
|
else
|
286
288
|
expect(out).to match(/\sprimary_key\(.*?\)\s+Class \(ActiveRecord::AttributeMethods::PrimaryKey::ClassMethods\)/)
|
@@ -294,11 +296,11 @@ RSpec.describe 'AmazingPrint/ActiveRecord', skip: -> { !ExtVerifier.has_rails? }
|
|
294
296
|
else
|
295
297
|
if RUBY_PLATFORM == 'java'
|
296
298
|
expect(out).to match(/\svalidate\(\*arg.*?\)\s+#<Class:\w+> \(ActiveModel::Validations::ClassMethods\)/)
|
297
|
-
|
299
|
+
elsif RUBY_VERSION >= '2.7.0'
|
298
300
|
expect(out).to match(
|
299
301
|
/\svalidate\(\*args.*?\)\s+#<Class:ActiveRecord::Base> \(ActiveModel::Validations::ClassMethods\)/
|
300
302
|
)
|
301
|
-
|
303
|
+
elsif RUBY_VERSION =~ /^2\.4\.([4-9]|[1-9][0-9])|^2\.[56]\./
|
302
304
|
expect(out).to match(/\svalidate\(\*arg.*?\)\s+User/)
|
303
305
|
else
|
304
306
|
expect(out).to match(/\svalidate\(\*arg.*?\)\s+Class \(ActiveModel::Validations::ClassMethods\)/)
|
@@ -1,3 +1,5 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
require 'spec_helper'
|
2
4
|
|
3
5
|
RSpec.describe 'AmazingPrint/MongoMapper', skip: -> { !ExtVerifier.has_mongo_mapper? }.call do
|
@@ -232,10 +234,10 @@ RSpec.describe 'AmazingPrint/MongoMapper', skip: -> { !ExtVerifier.has_mongo_map
|
|
232
234
|
describe 'with show associations turned on and inline embedded turned on' do
|
233
235
|
before :each do
|
234
236
|
@ap = AmazingPrint::Inspector.new plain: true,
|
235
|
-
|
236
|
-
|
237
|
-
|
238
|
-
|
237
|
+
mongo_mapper: {
|
238
|
+
show_associations: true,
|
239
|
+
inline_embedded: true
|
240
|
+
}
|
239
241
|
end
|
240
242
|
|
241
243
|
it 'should render an instance with associations shown and embeds there' do
|
data/spec/ext/mongoid_spec.rb
CHANGED
data/spec/ext/nobrainer_spec.rb
CHANGED
data/spec/ext/nokogiri_spec.rb
CHANGED
data/spec/ext/ostruct_spec.rb
CHANGED
data/spec/ext/ripple_spec.rb
CHANGED
data/spec/ext/sequel_spec.rb
CHANGED
@@ -1,3 +1,5 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
require 'spec_helper'
|
2
4
|
require 'sequel_helper'
|
3
5
|
|
@@ -8,36 +10,36 @@ RSpec.describe 'AmazingPrint/Sequel', skip: -> { !ExtVerifier.has_sequel? }.call
|
|
8
10
|
@user2 = SequelUser.new first_name: 'Sequel', last_name: 'Five'
|
9
11
|
end
|
10
12
|
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
13
|
+
it 'display single record' do
|
14
|
+
out = @ap.awesome(@user1)
|
15
|
+
str = <<~EOS.strip
|
16
|
+
#<SequelUser:placeholder_id> {
|
17
|
+
:first_name => "Jeremy",
|
18
|
+
:last_name => "Evans"
|
19
|
+
}
|
20
|
+
EOS
|
21
|
+
expect(out).to be_similar_to(str)
|
22
|
+
end
|
21
23
|
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
24
|
+
it 'display multiple records' do
|
25
|
+
out = @ap.awesome([@user1, @user2])
|
26
|
+
str = <<~EOS.strip
|
27
|
+
[
|
28
|
+
[0] #<SequelUser:placeholder_id> {
|
29
|
+
:first_name => "Jeremy",
|
30
|
+
:last_name => "Evans"
|
31
|
+
},
|
32
|
+
[1] #<SequelUser:placeholder_id> {
|
33
|
+
:first_name => "Sequel",
|
34
|
+
:last_name => "Five"
|
35
|
+
}
|
36
|
+
]
|
37
|
+
EOS
|
38
|
+
expect(out).to be_similar_to(str)
|
39
|
+
end
|
38
40
|
|
39
41
|
it 'does not crash if on Sequel::Model' do
|
40
42
|
out = @ap.awesome(::Sequel::Model)
|
41
|
-
expect(out).to be_similar_to(
|
43
|
+
expect(out).to be_similar_to('Sequel::Model < Object')
|
42
44
|
end
|
43
45
|
end
|
data/spec/formats_spec.rb
CHANGED
@@ -1,3 +1,5 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
require 'spec_helper'
|
2
4
|
require 'bigdecimal'
|
3
5
|
require 'set'
|
@@ -489,7 +491,7 @@ RSpec.describe 'AmazingPrint' do
|
|
489
491
|
describe 'File' do
|
490
492
|
it 'should display a file (plain)' do
|
491
493
|
File.open(__FILE__, 'r') do |f|
|
492
|
-
expect(f.ai(plain: true)).to eq("#{f.inspect}\n"
|
494
|
+
expect(f.ai(plain: true)).to eq("#{f.inspect}\n" + `ls -alF #{f.path}`.chop)
|
493
495
|
end
|
494
496
|
end
|
495
497
|
end
|
@@ -498,7 +500,7 @@ RSpec.describe 'AmazingPrint' do
|
|
498
500
|
describe 'Dir' do
|
499
501
|
it 'should display a direcory (plain)' do
|
500
502
|
Dir.open(File.dirname(__FILE__)) do |d|
|
501
|
-
expect(d.ai(plain: true)).to eq("#{d.inspect}\n"
|
503
|
+
expect(d.ai(plain: true)).to eq("#{d.inspect}\n" + `ls -alF #{d.path}`.chop)
|
502
504
|
end
|
503
505
|
end
|
504
506
|
end
|
@@ -566,19 +568,19 @@ RSpec.describe 'AmazingPrint' do
|
|
566
568
|
end
|
567
569
|
else # Prior to Ruby 1.9 the order of set values is unpredicatble.
|
568
570
|
it 'plain multiline' do
|
569
|
-
expect(@set.sort_by
|
571
|
+
expect(@set.sort_by(&:to_s).ai(plain: true)).to eq(@arr.sort_by(&:to_s).ai(plain: true))
|
570
572
|
end
|
571
573
|
|
572
574
|
it 'plain multiline indented' do
|
573
|
-
expect(@set.sort_by
|
575
|
+
expect(@set.sort_by(&:to_s).ai(plain: true, indent: 1)).to eq(@arr.sort_by(&:to_s).ai(plain: true, indent: 1))
|
574
576
|
end
|
575
577
|
|
576
578
|
it 'plain single line' do
|
577
|
-
expect(@set.sort_by
|
579
|
+
expect(@set.sort_by(&:to_s).ai(plain: true, multiline: false)).to eq(@arr.sort_by(&:to_s).ai(plain: true, multiline: false))
|
578
580
|
end
|
579
581
|
|
580
582
|
it 'colored multiline (default)' do
|
581
|
-
expect(@set.sort_by
|
583
|
+
expect(@set.sort_by(&:to_s).ai).to eq(@arr.sort_by(&:to_s).ai)
|
582
584
|
end
|
583
585
|
end
|
584
586
|
end
|
@@ -695,7 +697,7 @@ RSpec.describe 'AmazingPrint' do
|
|
695
697
|
rescue StandardError
|
696
698
|
File.new('nul')
|
697
699
|
end
|
698
|
-
expect(my.ai(plain: true)).to eq("#{my.inspect}\n"
|
700
|
+
expect(my.ai(plain: true)).to eq("#{my.inspect}\n" + `ls -alF #{my.path}`.chop)
|
699
701
|
end
|
700
702
|
|
701
703
|
it 'inherited from Dir should be displayed as Dir' do
|
@@ -703,7 +705,7 @@ RSpec.describe 'AmazingPrint' do
|
|
703
705
|
|
704
706
|
require 'tmpdir'
|
705
707
|
my = My.new(Dir.tmpdir)
|
706
|
-
expect(my.ai(plain: true)).to eq("#{my.inspect}\n"
|
708
|
+
expect(my.ai(plain: true)).to eq("#{my.inspect}\n" + `ls -alF #{my.path}`.chop)
|
707
709
|
end
|
708
710
|
|
709
711
|
it 'should handle a class that defines its own #send method' do
|
data/spec/methods_spec.rb
CHANGED
@@ -1,3 +1,5 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
require 'spec_helper'
|
2
4
|
|
3
5
|
RSpec.describe 'Single method' do
|
@@ -486,16 +488,16 @@ RSpec.describe 'Methods arrays' do
|
|
486
488
|
def him; end
|
487
489
|
|
488
490
|
def his
|
489
|
-
private_methods.grep(/^h
|
491
|
+
private_methods.grep(/^h..$/, &:to_sym)
|
490
492
|
end
|
491
493
|
|
492
494
|
def her
|
493
|
-
private_methods.grep(/^.e
|
495
|
+
private_methods.grep(/^.e.$/, &:to_sym)
|
494
496
|
end
|
495
497
|
end
|
496
498
|
|
497
499
|
hello = Hello.new
|
498
|
-
expect((hello.send(:his) - hello.send(:her)).sort_by
|
500
|
+
expect((hello.send(:his) - hello.send(:her)).sort_by(&:to_s)).to eq(%i[him his])
|
499
501
|
end
|
500
502
|
|
501
503
|
it 'appending garbage to methods array should not raise error' do
|
data/spec/misc_spec.rb
CHANGED
@@ -1,3 +1,5 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
require 'spec_helper'
|
2
4
|
|
3
5
|
RSpec.describe 'AmazingPrint' do
|
@@ -14,7 +16,7 @@ RSpec.describe 'AmazingPrint' do
|
|
14
16
|
it 'handle frozen object.inspect' do
|
15
17
|
weird = Class.new do
|
16
18
|
def inspect
|
17
|
-
'ice'
|
19
|
+
'ice'
|
18
20
|
end
|
19
21
|
end
|
20
22
|
expect(weird.new.ai(plain: false)).to eq('ice')
|
data/spec/objects_spec.rb
CHANGED
data/spec/sequel_helper.rb
CHANGED
data/spec/spec_helper.rb
CHANGED
@@ -1,3 +1,5 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
# Copyright (c) 2010-2016 Michael Dvorkin and contributors
|
2
4
|
#
|
3
5
|
# AmazingPrint is freely distributable under the terms of MIT license.
|
@@ -21,7 +23,7 @@
|
|
21
23
|
$LOAD_PATH.unshift(File.dirname(__FILE__))
|
22
24
|
$LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
|
23
25
|
|
24
|
-
Dir[File.dirname(__FILE__) + '/support/**/*.rb'].each do |file|
|
26
|
+
Dir[File.dirname(__FILE__) + '/support/**/*.rb'].sort.each do |file|
|
25
27
|
require file
|
26
28
|
end
|
27
29
|
|
@@ -29,6 +31,7 @@ ExtVerifier.require_dependencies!(
|
|
29
31
|
%w[
|
30
32
|
rails
|
31
33
|
active_record
|
34
|
+
action_controller
|
32
35
|
action_view
|
33
36
|
active_support/all
|
34
37
|
mongoid
|
metadata
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: amazing_print
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Michael Dvorkin
|
8
8
|
- Kevin McCormackPatrik Wenger
|
9
|
-
autorequire:
|
9
|
+
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2020-
|
12
|
+
date: 2020-06-09 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: appraisal
|
@@ -81,6 +81,20 @@ dependencies:
|
|
81
81
|
- - ">="
|
82
82
|
- !ruby/object:Gem::Version
|
83
83
|
version: 3.0.0
|
84
|
+
- !ruby/object:Gem::Dependency
|
85
|
+
name: rubocop
|
86
|
+
requirement: !ruby/object:Gem::Requirement
|
87
|
+
requirements:
|
88
|
+
- - "~>"
|
89
|
+
- !ruby/object:Gem::Version
|
90
|
+
version: 0.81.0
|
91
|
+
type: :development
|
92
|
+
prerelease: false
|
93
|
+
version_requirements: !ruby/object:Gem::Requirement
|
94
|
+
requirements:
|
95
|
+
- - "~>"
|
96
|
+
- !ruby/object:Gem::Version
|
97
|
+
version: 0.81.0
|
84
98
|
description: 'Great Ruby debugging companion: pretty print Ruby objects to visualize
|
85
99
|
their structure. Supports custom object formatting via plugins'
|
86
100
|
email: harlemsquirrel@gmail.com
|
@@ -103,7 +117,6 @@ files:
|
|
103
117
|
- lib/amazing_print/core_ext/class.rb
|
104
118
|
- lib/amazing_print/core_ext/kernel.rb
|
105
119
|
- lib/amazing_print/core_ext/logger.rb
|
106
|
-
- lib/amazing_print/core_ext/method.rb
|
107
120
|
- lib/amazing_print/core_ext/object.rb
|
108
121
|
- lib/amazing_print/core_ext/string.rb
|
109
122
|
- lib/amazing_print/custom_defaults.rb
|
@@ -137,6 +150,7 @@ files:
|
|
137
150
|
- spec/colors_spec.rb
|
138
151
|
- spec/core_ext/logger_spec.rb
|
139
152
|
- spec/core_ext/string_spec.rb
|
153
|
+
- spec/ext/action_controller_spec.rb
|
140
154
|
- spec/ext/action_view_spec.rb
|
141
155
|
- spec/ext/active_record_spec.rb
|
142
156
|
- spec/ext/active_support_spec.rb
|
@@ -181,7 +195,7 @@ homepage: https://github.com/amazing-print/amazing_print
|
|
181
195
|
licenses:
|
182
196
|
- MIT
|
183
197
|
metadata: {}
|
184
|
-
post_install_message:
|
198
|
+
post_install_message:
|
185
199
|
rdoc_options: []
|
186
200
|
require_paths:
|
187
201
|
- lib
|
@@ -189,7 +203,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
189
203
|
requirements:
|
190
204
|
- - ">="
|
191
205
|
- !ruby/object:Gem::Version
|
192
|
-
version:
|
206
|
+
version: 2.3.0
|
193
207
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
194
208
|
requirements:
|
195
209
|
- - ">="
|
@@ -197,51 +211,52 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
197
211
|
version: '0'
|
198
212
|
requirements: []
|
199
213
|
rubygems_version: 3.1.2
|
200
|
-
signing_key:
|
214
|
+
signing_key:
|
201
215
|
specification_version: 4
|
202
216
|
summary: Pretty print Ruby objects with proper indentation and colors
|
203
217
|
test_files:
|
204
|
-
- spec/
|
205
|
-
- spec/spec_helper.rb
|
206
|
-
- spec/colors_spec.rb
|
207
|
-
- spec/formats_spec.rb
|
208
|
-
- spec/active_record_helper.rb
|
209
|
-
- spec/objects_spec.rb
|
210
|
-
- spec/ext/active_record_spec.rb
|
211
|
-
- spec/ext/action_view_spec.rb
|
212
|
-
- spec/ext/ostruct_spec.rb
|
213
|
-
- spec/ext/mongoid_spec.rb
|
214
|
-
- spec/ext/ripple_spec.rb
|
215
|
-
- spec/ext/sequel_spec.rb
|
216
|
-
- spec/ext/active_support_spec.rb
|
217
|
-
- spec/ext/nokogiri_spec.rb
|
218
|
-
- spec/ext/mongo_mapper_spec.rb
|
219
|
-
- spec/ext/nobrainer_spec.rb
|
220
|
-
- spec/core_ext/string_spec.rb
|
221
|
-
- spec/core_ext/logger_spec.rb
|
218
|
+
- spec/support/rails_versions.rb
|
222
219
|
- spec/support/mongoid_versions.rb
|
223
|
-
- spec/support/
|
224
|
-
- spec/support/active_record_data/4_2_diana.txt
|
225
|
-
- spec/support/active_record_data/4_2_multi_legacy.txt
|
226
|
-
- spec/support/active_record_data/3_2_diana.txt
|
227
|
-
- spec/support/active_record_data/4_0_diana.txt
|
220
|
+
- spec/support/ext_verifier.rb
|
228
221
|
- spec/support/active_record_data/4_2_diana_legacy.txt
|
222
|
+
- spec/support/active_record_data/4_2_multi_legacy.txt
|
229
223
|
- spec/support/active_record_data/5_1_diana.txt
|
224
|
+
- spec/support/active_record_data/4_2_diana.txt
|
225
|
+
- spec/support/active_record_data/5_2_diana.txt
|
226
|
+
- spec/support/active_record_data/4_1_diana.txt
|
227
|
+
- spec/support/active_record_data/6_0_diana.txt
|
228
|
+
- spec/support/active_record_data/5_0_diana.txt
|
229
|
+
- spec/support/active_record_data/5_2_multi.txt
|
230
|
+
- spec/support/active_record_data/4_1_multi.txt
|
231
|
+
- spec/support/active_record_data/3_2_diana_legacy.txt
|
230
232
|
- spec/support/active_record_data/6_0_multi.txt
|
231
|
-
- spec/support/active_record_data/3_2_multi_legacy.txt
|
232
233
|
- spec/support/active_record_data/5_0_multi.txt
|
233
|
-
- spec/support/active_record_data/
|
234
|
+
- spec/support/active_record_data/3_2_diana.txt
|
235
|
+
- spec/support/active_record_data/3_2_multi_legacy.txt
|
234
236
|
- spec/support/active_record_data/4_2_multi.txt
|
235
237
|
- spec/support/active_record_data/5_1_multi.txt
|
236
|
-
- spec/support/active_record_data/4_0_multi.txt
|
237
|
-
- spec/support/active_record_data/3_2_diana_legacy.txt
|
238
|
-
- spec/support/active_record_data/4_1_multi.txt
|
239
|
-
- spec/support/active_record_data/5_2_diana.txt
|
240
|
-
- spec/support/active_record_data/4_1_diana.txt
|
241
238
|
- spec/support/active_record_data/3_2_multi.txt
|
242
|
-
- spec/support/active_record_data/
|
243
|
-
- spec/support/
|
239
|
+
- spec/support/active_record_data/4_0_diana.txt
|
240
|
+
- spec/support/active_record_data/4_0_multi.txt
|
244
241
|
- spec/support/active_record_data.rb
|
245
|
-
- spec/
|
246
|
-
- spec/
|
242
|
+
- spec/formats_spec.rb
|
243
|
+
- spec/objects_spec.rb
|
247
244
|
- spec/misc_spec.rb
|
245
|
+
- spec/colors_spec.rb
|
246
|
+
- spec/active_record_helper.rb
|
247
|
+
- spec/core_ext/logger_spec.rb
|
248
|
+
- spec/core_ext/string_spec.rb
|
249
|
+
- spec/sequel_helper.rb
|
250
|
+
- spec/methods_spec.rb
|
251
|
+
- spec/ext/nobrainer_spec.rb
|
252
|
+
- spec/ext/ostruct_spec.rb
|
253
|
+
- spec/ext/nokogiri_spec.rb
|
254
|
+
- spec/ext/active_support_spec.rb
|
255
|
+
- spec/ext/active_record_spec.rb
|
256
|
+
- spec/ext/action_view_spec.rb
|
257
|
+
- spec/ext/sequel_spec.rb
|
258
|
+
- spec/ext/ripple_spec.rb
|
259
|
+
- spec/ext/mongo_mapper_spec.rb
|
260
|
+
- spec/ext/mongoid_spec.rb
|
261
|
+
- spec/ext/action_controller_spec.rb
|
262
|
+
- spec/spec_helper.rb
|
@@ -1,21 +0,0 @@
|
|
1
|
-
# Copyright (c) 2010-2016 Michael Dvorkin and contributors
|
2
|
-
#
|
3
|
-
# AmazingPrint is freely distributable under the terms of MIT license.
|
4
|
-
# See LICENSE file or http://www.opensource.org/licenses/mit-license.php
|
5
|
-
#------------------------------------------------------------------------------
|
6
|
-
#
|
7
|
-
# Method#name was intorduced in Ruby 1.8.7 so we define it here as necessary.
|
8
|
-
#
|
9
|
-
unless nil.method(:class).respond_to?(:name)
|
10
|
-
class Method
|
11
|
-
def name
|
12
|
-
inspect.split(/[#.>]/)[-1]
|
13
|
-
end
|
14
|
-
end
|
15
|
-
|
16
|
-
class UnboundMethod
|
17
|
-
def name
|
18
|
-
inspect.split(/[#.>]/)[-1]
|
19
|
-
end
|
20
|
-
end
|
21
|
-
end
|