amazing_print 1.5.0 → 1.7.2
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 +68 -38
- data/README.md +2 -2
- data/lib/amazing_print/core_ext/awesome_method_array.rb +1 -1
- data/lib/amazing_print/custom_defaults.rb +7 -1
- data/lib/amazing_print/ext/active_record.rb +32 -2
- data/lib/amazing_print/ext/mongoid.rb +14 -2
- data/lib/amazing_print/ext/nobrainer.rb +2 -2
- data/lib/amazing_print/ext_loader.rb +27 -0
- data/lib/amazing_print/formatters/base_formatter.rb +12 -3
- data/lib/amazing_print/formatters/hash_formatter.rb +28 -11
- data/lib/amazing_print/formatters/mswin_helper.rb +4 -4
- data/lib/amazing_print/formatters/object_formatter.rb +1 -1
- data/lib/amazing_print/formatters/struct_formatter.rb +1 -1
- data/lib/amazing_print/inspector.rb +6 -3
- data/lib/amazing_print/version.rb +1 -1
- data/lib/amazing_print.rb +2 -8
- metadata +7 -61
- data/.gitignore +0 -35
- data/Appraisals +0 -50
- data/Gemfile +0 -15
- data/Gemfile.lock +0 -83
- data/LICENSE +0 -22
- data/Rakefile +0 -25
- data/spec/active_record_helper.rb +0 -43
- data/spec/colors_spec.rb +0 -120
- data/spec/core_ext/logger_spec.rb +0 -70
- data/spec/ext/action_controller_spec.rb +0 -40
- data/spec/ext/action_view_spec.rb +0 -24
- data/spec/ext/active_model_spec.rb +0 -37
- data/spec/ext/active_record_spec.rb +0 -298
- data/spec/ext/active_support_spec.rb +0 -37
- data/spec/ext/mongo_mapper_spec.rb +0 -265
- data/spec/ext/mongoid_spec.rb +0 -72
- data/spec/ext/nobrainer_spec.rb +0 -64
- data/spec/ext/nokogiri_spec.rb +0 -52
- data/spec/ext/ostruct_spec.rb +0 -24
- data/spec/ext/ripple_spec.rb +0 -53
- data/spec/ext/sequel_spec.rb +0 -45
- data/spec/formats_spec.rb +0 -792
- data/spec/methods_spec.rb +0 -520
- data/spec/misc_spec.rb +0 -206
- data/spec/objects_spec.rb +0 -225
- data/spec/sequel_helper.rb +0 -18
- data/spec/spec_helper.rb +0 -112
- data/spec/support/active_record_data/3_2_diana.txt +0 -24
- data/spec/support/active_record_data/3_2_diana_legacy.txt +0 -24
- data/spec/support/active_record_data/3_2_multi.txt +0 -50
- data/spec/support/active_record_data/3_2_multi_legacy.txt +0 -50
- data/spec/support/active_record_data/4_0_diana.txt +0 -98
- data/spec/support/active_record_data/4_0_multi.txt +0 -198
- data/spec/support/active_record_data/4_1_diana.txt +0 -97
- data/spec/support/active_record_data/4_1_multi.txt +0 -196
- data/spec/support/active_record_data/4_2_diana.txt +0 -109
- data/spec/support/active_record_data/4_2_diana_legacy.txt +0 -109
- data/spec/support/active_record_data/4_2_multi.txt +0 -220
- data/spec/support/active_record_data/4_2_multi_legacy.txt +0 -220
- data/spec/support/active_record_data/5_0_diana.txt +0 -105
- data/spec/support/active_record_data/5_0_multi.txt +0 -212
- data/spec/support/active_record_data/5_1_diana.txt +0 -104
- data/spec/support/active_record_data/5_1_multi.txt +0 -210
- data/spec/support/active_record_data/5_2_diana.txt +0 -104
- data/spec/support/active_record_data/5_2_multi.txt +0 -210
- data/spec/support/active_record_data/6_0_diana.txt +0 -104
- data/spec/support/active_record_data/6_0_multi.txt +0 -210
- data/spec/support/active_record_data/6_1_diana.txt +0 -109
- data/spec/support/active_record_data/6_1_multi.txt +0 -220
- data/spec/support/active_record_data.rb +0 -22
- data/spec/support/ext_verifier.rb +0 -46
- data/spec/support/mongoid_versions.rb +0 -24
- data/spec/support/rails_versions.rb +0 -57
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 1936b7b4ca5adfa821918412efe3e0dee3ac1bfc82f27c07374169b212fe6014
|
4
|
+
data.tar.gz: 40c690d728938fbc4e2e46bde9189007acedecea5b43736ca5d1a5dbc59c5deb
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 2e406d97f347bab6f9cd2ece415bc15a1edc0d0f655d08c4f09e21802f293b5f94199f81a0fa3b80857307b0988688eb5a940da6ec1cb79e6583334db5d6b704
|
7
|
+
data.tar.gz: d6f5ec436363f8ea1c48e5db11ff6ca62b3198d82be5b33dd949e98d0e700c7735c4b624a36f176cd1c5a08a2785047bfcaad0ea12f674d7138a4a32fb699861
|
data/CHANGELOG.md
CHANGED
@@ -1,58 +1,88 @@
|
|
1
|
-
|
1
|
+
# CHANGELOG
|
2
|
+
|
3
|
+
## v1.7.2
|
4
|
+
|
5
|
+
- update the version string in `AmazingPrint.version`
|
6
|
+
|
7
|
+
## v1.7.1
|
8
|
+
|
9
|
+
- no changes, only linting
|
10
|
+
|
11
|
+
## v1.7.0
|
12
|
+
|
13
|
+
- Require Ruby >= 3.0
|
14
|
+
- Add support for `::ActiveModel::Attributes`
|
15
|
+
- Preserve user defined color defaults
|
16
|
+
- Micro-optimization to `AmazingPrint::ActiveRecord#cast` (avoid calls to `#ancestors`)
|
17
|
+
|
18
|
+
## v1.6.0
|
19
|
+
|
20
|
+
- Use pager with Pry #96
|
21
|
+
- Add Rails 7 appraisal #98
|
22
|
+
- Allow Hash keys to be colorized #99
|
23
|
+
- Use CI merge queue #104
|
24
|
+
- Add support for Ruby 3.3 #105
|
25
|
+
- Add Mongoid field aliases #106
|
26
|
+
- Add bigdecimal gem #109
|
27
|
+
- Add ExtLoader to help with require order issues #110
|
2
28
|
|
3
29
|
## v1.5.0
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
30
|
+
|
31
|
+
- Drop support for Ruby 2.3 and 2.4 as well as JRuby 9.1
|
32
|
+
- Add File/Dir formatters for mswin platform #48
|
33
|
+
- Don't monkey patch String class #91
|
34
|
+
- Fix ruby19 hash syntax so it can be copy-pasted #94
|
8
35
|
|
9
36
|
## v1.4.0
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
37
|
+
|
38
|
+
- Support loading config from `$XDG_CONFIG_HOME/aprc` - #63
|
39
|
+
- Remove support for Rails 5.1 #75
|
40
|
+
- Update AR specs for Ruby 2.6.7 #76
|
41
|
+
- Load .aprc configs only once. #74
|
42
|
+
- Add XDG config support #77
|
43
|
+
- Rubocop updates #79
|
44
|
+
- Update Irb integration for v1.2.6+ #81
|
17
45
|
|
18
46
|
## v1.3.0
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
47
|
+
|
48
|
+
- Fix HTML escaping problems #53
|
49
|
+
- Update test suite for Ruby 2.7.2 and JRuby #61
|
50
|
+
- Add ActionView spec for html_safe #65
|
51
|
+
- Add support for Rails 6.1 #68
|
52
|
+
- Update specs for Ruby 3.0 #69
|
24
53
|
|
25
54
|
## v1.2.2
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
55
|
+
|
56
|
+
- Support Ruby 3.0 / IRB 1.2.6 - #57
|
57
|
+
- Fix FrozenError - #51
|
58
|
+
- Drop support for Ruby 2.3 and 2.4 as well as JRuby 9.1 - #46
|
59
|
+
- Add passing of `options` to `Logger#ap` - #55
|
30
60
|
|
31
61
|
## v1.2.1
|
32
|
-
- Correctly print active_model_errors for models that don't have tables - #42 by sahglie
|
33
|
-
- Update AmazingPrint::MongoMapper for frozen strings - #44
|
34
62
|
|
35
|
-
|
63
|
+
- Correctly print active_model_errors for models that don't have tables - #42 by sahglie
|
64
|
+
- Update AmazingPrint::MongoMapper for frozen strings - #44
|
36
65
|
|
37
|
-
|
38
|
-
- Add uncolor String method to remove ANSI color codes - #30 by duffyjp
|
39
|
-
- Restore original copyright - #33 by amarshall
|
40
|
-
- Remove method core extension since it is not needed since ruby 1.9 - #37 by grosser
|
41
|
-
- Remove pale and black string color aliases - #38
|
42
|
-
- Fix formatting ActionController::Parameters - #29
|
66
|
+
## v1.2.0
|
43
67
|
|
68
|
+
- Fix frozen string literal issue with ActiveRecord
|
69
|
+
- Add uncolor String method to remove ANSI color codes - #30 by duffyjp
|
70
|
+
- Restore original copyright - #33 by amarshall
|
71
|
+
- Remove method core extension since it is not needed since ruby 1.9 - #37 by grosser
|
72
|
+
- Remove pale and black string color aliases - #38
|
73
|
+
- Fix formatting ActionController::Parameters - #29
|
44
74
|
|
45
75
|
## v1.1.0
|
46
|
-
- Print out method keyword arguments
|
47
|
-
- Fix NoMethodError with Sequel
|
48
|
-
- Code cleanups
|
49
76
|
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
- beanieboi
|
77
|
+
- Print out method keyword arguments
|
78
|
+
- Fix NoMethodError with Sequel
|
79
|
+
- Code cleanups
|
54
80
|
|
81
|
+
Thanks for the great contributions from:
|
55
82
|
|
83
|
+
- andydna
|
84
|
+
- beanieboi
|
56
85
|
|
57
86
|
## v1.0.0
|
58
|
-
|
87
|
+
|
88
|
+
- Initial Release.
|
data/README.md
CHANGED
@@ -315,11 +315,11 @@ formatting:
|
|
315
315
|
|
316
316
|
<%= ap @accounts.first, :html => true %>
|
317
317
|
|
318
|
-
###
|
318
|
+
### Colorizing Strings ###
|
319
319
|
Use methods such as `.red` to set string color:
|
320
320
|
|
321
321
|
```ruby
|
322
|
-
irb> puts "red text"
|
322
|
+
irb> puts AmazingPrint::Colors.red("red text")
|
323
323
|
red text # (it's red)
|
324
324
|
```
|
325
325
|
|
@@ -78,7 +78,7 @@ module AwesomeMethodArray # :nodoc:
|
|
78
78
|
super(pattern)
|
79
79
|
end
|
80
80
|
arr.instance_variable_set(:@__awesome_methods__, instance_variable_get(:@__awesome_methods__))
|
81
|
-
arr.select! { |item|
|
81
|
+
arr.select! { |item| item.is_a?(Symbol) || item.is_a?(String) } # grep block might return crap.
|
82
82
|
arr
|
83
83
|
end
|
84
84
|
end
|
@@ -44,7 +44,13 @@ module AmazingPrint
|
|
44
44
|
end
|
45
45
|
|
46
46
|
def pry!
|
47
|
-
|
47
|
+
return unless defined?(Pry)
|
48
|
+
|
49
|
+
Pry.print = proc do |_output, value, pry_instance|
|
50
|
+
pry_instance.pager.open do |pager|
|
51
|
+
pager.print "#{value.ai}\n"
|
52
|
+
end
|
53
|
+
end
|
48
54
|
end
|
49
55
|
|
50
56
|
##
|
@@ -20,11 +20,15 @@ module AmazingPrint
|
|
20
20
|
|
21
21
|
if object.is_a?(::ActiveRecord::Base)
|
22
22
|
cast = :active_record_instance
|
23
|
+
elsif object.is_a?(Class) && object.include?(::ActiveModel::Attributes)
|
24
|
+
cast = :active_model_class
|
25
|
+
elsif object.is_a?(::ActiveModel::Attributes)
|
26
|
+
cast = :active_model_instance
|
23
27
|
elsif object.is_a?(::ActiveModel::Errors)
|
24
28
|
cast = :active_model_error
|
25
|
-
elsif object.is_a?(Class) && object
|
29
|
+
elsif object.is_a?(Class) && object <= ::ActiveRecord::Base
|
26
30
|
cast = :active_record_class
|
27
|
-
elsif type == :activerecord_relation || object.
|
31
|
+
elsif type == :activerecord_relation || object.is_a?(::ActiveRecord::Relation)
|
28
32
|
cast = :array
|
29
33
|
end
|
30
34
|
cast
|
@@ -71,6 +75,32 @@ module AmazingPrint
|
|
71
75
|
[awesome_simple("class #{object} < #{object.superclass}", :class), awesome_hash(data)].join(' ')
|
72
76
|
end
|
73
77
|
|
78
|
+
# Format ActiveModel instance object.
|
79
|
+
#------------------------------------------------------------------------------
|
80
|
+
def awesome_active_model_instance(object)
|
81
|
+
return object.inspect unless defined?(::ActiveSupport::OrderedHash)
|
82
|
+
return awesome_object(object) if @options[:raw]
|
83
|
+
|
84
|
+
data = object.attributes.each_with_object(::ActiveSupport::OrderedHash.new) do |c, hash|
|
85
|
+
hash[c.first.to_sym] = c.last
|
86
|
+
end
|
87
|
+
|
88
|
+
[awesome_simple(object.to_s, :active_model_instance), awesome_hash(data)].join(' ')
|
89
|
+
end
|
90
|
+
|
91
|
+
# Format ActiveModel class object.
|
92
|
+
#------------------------------------------------------------------------------
|
93
|
+
def awesome_active_model_class(object)
|
94
|
+
return object.inspect unless defined?(::ActiveSupport::OrderedHash)
|
95
|
+
return awesome_class(object) if @options[:raw]
|
96
|
+
|
97
|
+
data = object.attribute_types.each_with_object(::ActiveSupport::OrderedHash.new) do |c, hash|
|
98
|
+
hash[c.first.to_sym] = c.last.type
|
99
|
+
end
|
100
|
+
|
101
|
+
[awesome_simple("class #{object} < #{object.superclass}", :class), awesome_hash(data)].join(' ')
|
102
|
+
end
|
103
|
+
|
74
104
|
# Format ActiveModel error object.
|
75
105
|
#------------------------------------------------------------------------------
|
76
106
|
def awesome_active_model_error(object)
|
@@ -33,8 +33,14 @@ module AmazingPrint
|
|
33
33
|
def awesome_mongoid_class(object)
|
34
34
|
return object.inspect if !defined?(::ActiveSupport::OrderedHash) || !object.respond_to?(:fields)
|
35
35
|
|
36
|
+
aliases = object.aliased_fields.invert
|
36
37
|
data = object.fields.sort.each_with_object(::ActiveSupport::OrderedHash.new) do |c, hash|
|
37
|
-
|
38
|
+
name = c[1].name
|
39
|
+
alias_name = aliases[name] unless name == '_id'
|
40
|
+
printed_name = alias_name ? "#{alias_name}(#{name})" : name
|
41
|
+
|
42
|
+
hash[printed_name.to_sym] = (c[1].type || 'undefined').to_s.underscore.intern
|
43
|
+
hash
|
38
44
|
end
|
39
45
|
|
40
46
|
name = "class #{awesome_simple(object.to_s, :class)}"
|
@@ -48,8 +54,14 @@ module AmazingPrint
|
|
48
54
|
def awesome_mongoid_document(object)
|
49
55
|
return object.inspect unless defined?(::ActiveSupport::OrderedHash)
|
50
56
|
|
57
|
+
aliases = object.aliased_fields.invert
|
51
58
|
data = (object.attributes || {}).sort.each_with_object(::ActiveSupport::OrderedHash.new) do |c, hash|
|
52
|
-
|
59
|
+
name = c[0]
|
60
|
+
alias_name = aliases[name] unless name == '_id'
|
61
|
+
printed_name = alias_name ? "#{alias_name}(#{name})" : name
|
62
|
+
|
63
|
+
hash[printed_name.to_sym] = c[1]
|
64
|
+
hash
|
53
65
|
end
|
54
66
|
data = { errors: object.errors, attributes: data } unless object.errors.empty?
|
55
67
|
"#{object} #{awesome_hash(data)}"
|
@@ -32,9 +32,9 @@ module AmazingPrint
|
|
32
32
|
#------------------------------------------------------------------------------
|
33
33
|
def awesome_nobrainer_class(object)
|
34
34
|
name = "#{awesome_simple(object, :class)} < #{awesome_simple(object.superclass, :class)}"
|
35
|
-
data = object.fields.
|
35
|
+
data = object.fields.to_h do |field, options|
|
36
36
|
[field, (options[:type] || Object).to_s.underscore.to_sym]
|
37
|
-
end
|
37
|
+
end
|
38
38
|
|
39
39
|
name = "class #{awesome_simple(object.to_s, :class)}"
|
40
40
|
base = "< #{awesome_simple(object.superclass.to_s, :class)}"
|
@@ -0,0 +1,27 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module AmazingPrint
|
4
|
+
##
|
5
|
+
# Attempt to load extensions up to 3 times since this library may be required
|
6
|
+
# before dependencies that we have extensions for.
|
7
|
+
#
|
8
|
+
class ExtLoader
|
9
|
+
EXT_LOAD_ATTEMPT_LIMIT = 3
|
10
|
+
|
11
|
+
@load_attemps = 0
|
12
|
+
|
13
|
+
def self.call
|
14
|
+
return if @load_attemps >= EXT_LOAD_ATTEMPT_LIMIT
|
15
|
+
|
16
|
+
require_relative 'ext/mongo_mapper' if defined?(MongoMapper)
|
17
|
+
require_relative 'ext/mongoid' if defined?(Mongoid)
|
18
|
+
require_relative 'ext/nobrainer' if defined?(NoBrainer)
|
19
|
+
require_relative 'ext/nokogiri' if defined?(Nokogiri)
|
20
|
+
require_relative 'ext/ostruct' if defined?(OpenStruct) # rubocop:disable Style/OpenStructUse
|
21
|
+
require_relative 'ext/ripple' if defined?(Ripple)
|
22
|
+
require_relative 'ext/sequel' if defined?(Sequel)
|
23
|
+
|
24
|
+
@load_attemps += 1
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
@@ -130,17 +130,26 @@ module AmazingPrint
|
|
130
130
|
def align(value, width)
|
131
131
|
if options[:multiline]
|
132
132
|
indent_option = options[:indent]
|
133
|
+
effective_width = width + value.size - colorless_size(value)
|
133
134
|
if indent_option.positive?
|
134
|
-
value.rjust(
|
135
|
+
value.rjust(effective_width)
|
135
136
|
elsif indent_option.zero?
|
136
|
-
"#{indent}#{value.ljust(
|
137
|
+
"#{indent}#{value.ljust(effective_width)}"
|
137
138
|
else
|
138
|
-
"#{indent(indentation + indent_option)}#{value.ljust(
|
139
|
+
"#{indent(indentation + indent_option)}#{value.ljust(effective_width)}"
|
139
140
|
end
|
140
141
|
else
|
141
142
|
value
|
142
143
|
end
|
143
144
|
end
|
145
|
+
|
146
|
+
def colorless(string)
|
147
|
+
string.gsub(/\e\[[\d;]+m/, '')
|
148
|
+
end
|
149
|
+
|
150
|
+
def colorless_size(string)
|
151
|
+
colorless(string).size
|
152
|
+
end
|
144
153
|
end
|
145
154
|
end
|
146
155
|
end
|
@@ -65,8 +65,18 @@ module AmazingPrint
|
|
65
65
|
result
|
66
66
|
end
|
67
67
|
|
68
|
+
def key_size(key)
|
69
|
+
return key.inspect.size if symbol?(key)
|
70
|
+
|
71
|
+
if options[:html]
|
72
|
+
single_line { inspector.awesome(key) }.size
|
73
|
+
else
|
74
|
+
plain_single_line { inspector.awesome(key) }.size
|
75
|
+
end
|
76
|
+
end
|
77
|
+
|
68
78
|
def max_key_width(keys)
|
69
|
-
keys.map { |key, _value| key
|
79
|
+
keys.map { |key, _value| key_size(key) }.max || 0
|
70
80
|
end
|
71
81
|
|
72
82
|
def printable_keys
|
@@ -75,34 +85,41 @@ module AmazingPrint
|
|
75
85
|
keys.sort! { |a, b| a.to_s <=> b.to_s } if options[:sort_keys]
|
76
86
|
|
77
87
|
keys.map! do |key|
|
78
|
-
|
79
|
-
[
|
88
|
+
single_line do
|
89
|
+
[key, hash[key]]
|
80
90
|
end
|
81
91
|
end
|
82
92
|
end
|
83
93
|
|
84
94
|
def symbol?(key)
|
85
|
-
key
|
95
|
+
key.is_a?(Symbol)
|
86
96
|
end
|
87
97
|
|
88
98
|
def ruby19_syntax(key, value, width)
|
89
|
-
|
90
|
-
key
|
91
|
-
|
99
|
+
# Move the colon to the right side of the symbol
|
100
|
+
awesome_key = inspector.awesome(key).sub(/#{key.inspect}/, "#{key}:")
|
101
|
+
|
102
|
+
"#{align(awesome_key, width)} #{inspector.awesome(value)}"
|
92
103
|
end
|
93
104
|
|
94
105
|
def pre_ruby19_syntax(key, value, width)
|
95
|
-
|
106
|
+
awesome_key = single_line { inspector.awesome(key) }
|
107
|
+
"#{align(awesome_key, width)}#{colorize(' => ', :hash)}#{inspector.awesome(value)}"
|
96
108
|
end
|
97
109
|
|
98
|
-
def plain_single_line
|
110
|
+
def plain_single_line(&block)
|
99
111
|
plain = options[:plain]
|
100
|
-
multiline = options[:multiline]
|
101
112
|
options[:plain] = true
|
113
|
+
single_line(&block)
|
114
|
+
ensure
|
115
|
+
options[:plain] = plain
|
116
|
+
end
|
117
|
+
|
118
|
+
def single_line
|
119
|
+
multiline = options[:multiline]
|
102
120
|
options[:multiline] = false
|
103
121
|
yield
|
104
122
|
ensure
|
105
|
-
options[:plain] = plain
|
106
123
|
options[:multiline] = multiline
|
107
124
|
end
|
108
125
|
end
|
@@ -27,10 +27,10 @@ module AmazingPrint
|
|
27
27
|
def mode
|
28
28
|
r = ['-'] * 6
|
29
29
|
r[0] = 'd' if @stat.directory?
|
30
|
-
r[1] = 'a' unless
|
31
|
-
r[2] = 'r' unless
|
32
|
-
r[3] = 'h' unless
|
33
|
-
r[4] = 's' unless
|
30
|
+
r[1] = 'a' unless @attrs.nobits?(FILE_ATTRIBUTE_ARCHIVE)
|
31
|
+
r[2] = 'r' unless @attrs.nobits?(FILE_ATTRIBUTE_READONLY)
|
32
|
+
r[3] = 'h' unless @attrs.nobits?(FILE_ATTRIBUTE_HIDDEN)
|
33
|
+
r[4] = 's' unless @attrs.nobits?(FILE_ATTRIBUTE_SYSTEM)
|
34
34
|
r[5] = 'l' if File.symlink? @fname
|
35
35
|
r.join
|
36
36
|
end
|
@@ -17,7 +17,7 @@ module AmazingPrint
|
|
17
17
|
|
18
18
|
def format
|
19
19
|
vars = variables.map do |var|
|
20
|
-
property = var.to_s[1
|
20
|
+
property = var.to_s[1..].to_sym # to_s because of some monkey patching done by Puppet.
|
21
21
|
accessor = if object.respond_to?(:"#{property}=")
|
22
22
|
object.respond_to?(property) ? :accessor : :writer
|
23
23
|
else
|
@@ -17,7 +17,7 @@ module AmazingPrint
|
|
17
17
|
|
18
18
|
def format
|
19
19
|
vars = variables.map do |var|
|
20
|
-
property = var.to_s[1
|
20
|
+
property = var.to_s[1..].to_sym # to_s because of some monkey patching done by Puppet.
|
21
21
|
accessor = if struct.respond_to?(:"#{property}=")
|
22
22
|
struct.respond_to?(property) ? :accessor : :writer
|
23
23
|
else
|
@@ -6,9 +6,10 @@
|
|
6
6
|
# See LICENSE file or http://www.opensource.org/licenses/mit-license.php
|
7
7
|
#------------------------------------------------------------------------------
|
8
8
|
|
9
|
-
# rubocop:disable Metrics/ClassLength
|
9
|
+
# rubocop:disable Metrics/ClassLength, Metrics/MethodLength
|
10
10
|
|
11
11
|
require_relative 'indentator'
|
12
|
+
require_relative 'ext_loader'
|
12
13
|
|
13
14
|
module AmazingPrint
|
14
15
|
class Inspector
|
@@ -70,6 +71,8 @@ module AmazingPrint
|
|
70
71
|
@formatter = AmazingPrint::Formatter.new(self)
|
71
72
|
@indentator = AmazingPrint::Indentator.new(@options[:indent].abs)
|
72
73
|
Thread.current[AP] ||= []
|
74
|
+
|
75
|
+
ExtLoader.call
|
73
76
|
end
|
74
77
|
|
75
78
|
def current_indentation
|
@@ -189,11 +192,11 @@ module AmazingPrint
|
|
189
192
|
#---------------------------------------------------------------------------
|
190
193
|
def merge_custom_defaults!
|
191
194
|
load_dotfile
|
192
|
-
merge_options!(AmazingPrint.defaults) if AmazingPrint.defaults.is_a?(Hash)
|
195
|
+
merge_options!(AmazingPrint.defaults.dup) if AmazingPrint.defaults.is_a?(Hash)
|
193
196
|
rescue StandardError => e
|
194
197
|
warn "Could not load '.aprc' from ENV['HOME']: #{e}"
|
195
198
|
end
|
196
199
|
end
|
197
200
|
end
|
198
201
|
|
199
|
-
# rubocop:enable Metrics/ClassLength
|
202
|
+
# rubocop:enable Metrics/ClassLength, Metrics/MethodLength
|
data/lib/amazing_print.rb
CHANGED
@@ -33,12 +33,6 @@ unless defined?(AmazingPrint::Inspector)
|
|
33
33
|
require_relative 'amazing_print/ext/action_view'
|
34
34
|
end
|
35
35
|
end
|
36
|
-
|
37
|
-
|
38
|
-
require_relative 'amazing_print/ext/nokogiri' if defined?(Nokogiri)
|
39
|
-
require_relative 'amazing_print/ext/nobrainer' if defined?(NoBrainer)
|
40
|
-
require_relative 'amazing_print/ext/ripple' if defined?(Ripple)
|
41
|
-
require_relative 'amazing_print/ext/sequel' if defined?(Sequel)
|
42
|
-
require_relative 'amazing_print/ext/ostruct' if defined?(OpenStruct)
|
36
|
+
|
37
|
+
AmazingPrint::ExtLoader.call
|
43
38
|
end
|
44
|
-
# test
|
metadata
CHANGED
@@ -1,15 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: amazing_print
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.7.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Michael Dvorkin
|
8
8
|
- Kevin McCormackPatrik Wenger
|
9
|
-
autorequire:
|
10
9
|
bindir: bin
|
11
10
|
cert_chain: []
|
12
|
-
date:
|
11
|
+
date: 2025-01-07 00:00:00.000000000 Z
|
13
12
|
dependencies: []
|
14
13
|
description: 'Great Ruby debugging companion: pretty print Ruby objects to visualize
|
15
14
|
their structure. Supports custom object formatting via plugins'
|
@@ -18,15 +17,9 @@ executables: []
|
|
18
17
|
extensions: []
|
19
18
|
extra_rdoc_files: []
|
20
19
|
files:
|
21
|
-
- ".gitignore"
|
22
|
-
- Appraisals
|
23
20
|
- CHANGELOG.md
|
24
21
|
- CONTRIBUTING.md
|
25
|
-
- Gemfile
|
26
|
-
- Gemfile.lock
|
27
|
-
- LICENSE
|
28
22
|
- README.md
|
29
|
-
- Rakefile
|
30
23
|
- lib/amazing_print.rb
|
31
24
|
- lib/amazing_print/colorize.rb
|
32
25
|
- lib/amazing_print/colors.rb
|
@@ -46,6 +39,7 @@ files:
|
|
46
39
|
- lib/amazing_print/ext/ostruct.rb
|
47
40
|
- lib/amazing_print/ext/ripple.rb
|
48
41
|
- lib/amazing_print/ext/sequel.rb
|
42
|
+
- lib/amazing_print/ext_loader.rb
|
49
43
|
- lib/amazing_print/formatter.rb
|
50
44
|
- lib/amazing_print/formatters.rb
|
51
45
|
- lib/amazing_print/formatters/array_formatter.rb
|
@@ -63,58 +57,11 @@ files:
|
|
63
57
|
- lib/amazing_print/inspector.rb
|
64
58
|
- lib/amazing_print/version.rb
|
65
59
|
- lib/ap.rb
|
66
|
-
- spec/active_record_helper.rb
|
67
|
-
- spec/colors_spec.rb
|
68
|
-
- spec/core_ext/logger_spec.rb
|
69
|
-
- spec/ext/action_controller_spec.rb
|
70
|
-
- spec/ext/action_view_spec.rb
|
71
|
-
- spec/ext/active_model_spec.rb
|
72
|
-
- spec/ext/active_record_spec.rb
|
73
|
-
- spec/ext/active_support_spec.rb
|
74
|
-
- spec/ext/mongo_mapper_spec.rb
|
75
|
-
- spec/ext/mongoid_spec.rb
|
76
|
-
- spec/ext/nobrainer_spec.rb
|
77
|
-
- spec/ext/nokogiri_spec.rb
|
78
|
-
- spec/ext/ostruct_spec.rb
|
79
|
-
- spec/ext/ripple_spec.rb
|
80
|
-
- spec/ext/sequel_spec.rb
|
81
|
-
- spec/formats_spec.rb
|
82
|
-
- spec/methods_spec.rb
|
83
|
-
- spec/misc_spec.rb
|
84
|
-
- spec/objects_spec.rb
|
85
|
-
- spec/sequel_helper.rb
|
86
|
-
- spec/spec_helper.rb
|
87
|
-
- spec/support/active_record_data.rb
|
88
|
-
- spec/support/active_record_data/3_2_diana.txt
|
89
|
-
- spec/support/active_record_data/3_2_diana_legacy.txt
|
90
|
-
- spec/support/active_record_data/3_2_multi.txt
|
91
|
-
- spec/support/active_record_data/3_2_multi_legacy.txt
|
92
|
-
- spec/support/active_record_data/4_0_diana.txt
|
93
|
-
- spec/support/active_record_data/4_0_multi.txt
|
94
|
-
- spec/support/active_record_data/4_1_diana.txt
|
95
|
-
- spec/support/active_record_data/4_1_multi.txt
|
96
|
-
- spec/support/active_record_data/4_2_diana.txt
|
97
|
-
- spec/support/active_record_data/4_2_diana_legacy.txt
|
98
|
-
- spec/support/active_record_data/4_2_multi.txt
|
99
|
-
- spec/support/active_record_data/4_2_multi_legacy.txt
|
100
|
-
- spec/support/active_record_data/5_0_diana.txt
|
101
|
-
- spec/support/active_record_data/5_0_multi.txt
|
102
|
-
- spec/support/active_record_data/5_1_diana.txt
|
103
|
-
- spec/support/active_record_data/5_1_multi.txt
|
104
|
-
- spec/support/active_record_data/5_2_diana.txt
|
105
|
-
- spec/support/active_record_data/5_2_multi.txt
|
106
|
-
- spec/support/active_record_data/6_0_diana.txt
|
107
|
-
- spec/support/active_record_data/6_0_multi.txt
|
108
|
-
- spec/support/active_record_data/6_1_diana.txt
|
109
|
-
- spec/support/active_record_data/6_1_multi.txt
|
110
|
-
- spec/support/ext_verifier.rb
|
111
|
-
- spec/support/mongoid_versions.rb
|
112
|
-
- spec/support/rails_versions.rb
|
113
60
|
homepage: https://github.com/amazing-print/amazing_print
|
114
61
|
licenses:
|
115
62
|
- MIT
|
116
|
-
metadata:
|
117
|
-
|
63
|
+
metadata:
|
64
|
+
changelog_uri: https://github.com/amazing-print/amazing_print/blob/master/CHANGELOG.md
|
118
65
|
rdoc_options: []
|
119
66
|
require_paths:
|
120
67
|
- lib
|
@@ -122,15 +69,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
122
69
|
requirements:
|
123
70
|
- - ">="
|
124
71
|
- !ruby/object:Gem::Version
|
125
|
-
version:
|
72
|
+
version: 3.0.0
|
126
73
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
127
74
|
requirements:
|
128
75
|
- - ">="
|
129
76
|
- !ruby/object:Gem::Version
|
130
77
|
version: '0'
|
131
78
|
requirements: []
|
132
|
-
rubygems_version: 3.
|
133
|
-
signing_key:
|
79
|
+
rubygems_version: 3.6.2
|
134
80
|
specification_version: 4
|
135
81
|
summary: Pretty print Ruby objects with proper indentation and colors
|
136
82
|
test_files: []
|
data/.gitignore
DELETED
@@ -1,35 +0,0 @@
|
|
1
|
-
## MAC OS
|
2
|
-
.DS_Store
|
3
|
-
|
4
|
-
## TEXTMATE
|
5
|
-
*.tmproj
|
6
|
-
tmtags
|
7
|
-
|
8
|
-
## EMACS
|
9
|
-
*~
|
10
|
-
\#*
|
11
|
-
.\#*
|
12
|
-
|
13
|
-
## VIM
|
14
|
-
*.swp
|
15
|
-
|
16
|
-
## RUBYMINE
|
17
|
-
.idea
|
18
|
-
|
19
|
-
## PROJECT::GENERAL
|
20
|
-
coverage
|
21
|
-
rdoc
|
22
|
-
pkg
|
23
|
-
.ruby-version
|
24
|
-
gemfiles/*.gemfile.lock
|
25
|
-
Gemfile.lock
|
26
|
-
/tmp
|
27
|
-
/.bundle
|
28
|
-
/gemfiles/.bundle
|
29
|
-
|
30
|
-
## PROJECT::RVM
|
31
|
-
.rvmrc
|
32
|
-
|
33
|
-
# PROJECT::RBENV
|
34
|
-
.ruby-gemset
|
35
|
-
*.gem
|