awesome_print 1.7.0 → 1.9.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (89) hide show
  1. checksums.yaml +5 -5
  2. data/.gitignore +4 -0
  3. data/Appraisals +44 -34
  4. data/CHANGELOG.md +28 -0
  5. data/CONTRIBUTING.md +2 -1
  6. data/Gemfile.lock +25 -33
  7. data/LICENSE +16 -19
  8. data/README.md +88 -44
  9. data/Rakefile +5 -5
  10. data/awesome_print.gemspec +33 -0
  11. data/init.rb +1 -0
  12. data/lib/ap.rb +2 -2
  13. data/lib/awesome_print/colorize.rb +1 -1
  14. data/lib/awesome_print/core_ext/{array.rb → awesome_method_array.rb} +16 -18
  15. data/lib/awesome_print/core_ext/class.rb +3 -2
  16. data/lib/awesome_print/core_ext/kernel.rb +1 -1
  17. data/lib/awesome_print/core_ext/logger.rb +1 -1
  18. data/lib/awesome_print/core_ext/method.rb +2 -2
  19. data/lib/awesome_print/core_ext/object.rb +3 -2
  20. data/lib/awesome_print/core_ext/string.rb +3 -3
  21. data/lib/awesome_print/custom_defaults.rb +57 -0
  22. data/lib/awesome_print/ext/action_view.rb +8 -4
  23. data/lib/awesome_print/ext/active_record.rb +45 -12
  24. data/lib/awesome_print/ext/active_support.rb +1 -1
  25. data/lib/awesome_print/ext/mongo_mapper.rb +16 -13
  26. data/lib/awesome_print/ext/mongoid.rb +8 -6
  27. data/lib/awesome_print/ext/nobrainer.rb +8 -5
  28. data/lib/awesome_print/ext/nokogiri.rb +4 -4
  29. data/lib/awesome_print/ext/ostruct.rb +1 -1
  30. data/lib/awesome_print/ext/ripple.rb +5 -6
  31. data/lib/awesome_print/ext/sequel.rb +7 -6
  32. data/lib/awesome_print/formatter.rb +28 -28
  33. data/lib/awesome_print/formatters/array_formatter.rb +108 -42
  34. data/lib/awesome_print/formatters/base_formatter.rb +16 -14
  35. data/lib/awesome_print/formatters/class_formatter.rb +2 -1
  36. data/lib/awesome_print/formatters/dir_formatter.rb +1 -1
  37. data/lib/awesome_print/formatters/file_formatter.rb +1 -1
  38. data/lib/awesome_print/formatters/hash_formatter.rb +74 -22
  39. data/lib/awesome_print/formatters/object_formatter.rb +13 -15
  40. data/lib/awesome_print/formatters/struct_formatter.rb +71 -0
  41. data/lib/awesome_print/formatters.rb +15 -0
  42. data/lib/awesome_print/inspector.rb +83 -96
  43. data/lib/awesome_print/version.rb +2 -2
  44. data/lib/awesome_print.rb +18 -17
  45. data/spec/active_record_helper.rb +8 -2
  46. data/spec/colors_spec.rb +30 -30
  47. data/spec/core_ext/logger_spec.rb +43 -0
  48. data/spec/core_ext/string_spec.rb +20 -0
  49. data/spec/ext/action_view_spec.rb +21 -0
  50. data/spec/ext/active_record_spec.rb +260 -0
  51. data/spec/ext/active_support_spec.rb +30 -0
  52. data/spec/ext/mongo_mapper_spec.rb +261 -0
  53. data/spec/ext/mongoid_spec.rb +67 -0
  54. data/spec/ext/nobrainer_spec.rb +59 -0
  55. data/spec/ext/nokogiri_spec.rb +46 -0
  56. data/spec/ext/ostruct_spec.rb +22 -0
  57. data/spec/ext/ripple_spec.rb +48 -0
  58. data/spec/formats_spec.rb +193 -165
  59. data/spec/methods_spec.rb +125 -129
  60. data/spec/misc_spec.rb +95 -92
  61. data/spec/objects_spec.rb +119 -28
  62. data/spec/spec_helper.rb +29 -10
  63. data/spec/support/active_record_data/3_2_diana.txt +24 -0
  64. data/spec/support/active_record_data/3_2_diana_legacy.txt +24 -0
  65. data/spec/support/active_record_data/3_2_multi.txt +50 -0
  66. data/spec/support/active_record_data/3_2_multi_legacy.txt +50 -0
  67. data/spec/support/active_record_data/4_0_diana.txt +98 -0
  68. data/spec/support/active_record_data/4_0_multi.txt +198 -0
  69. data/spec/support/active_record_data/4_1_diana.txt +97 -0
  70. data/spec/support/active_record_data/4_1_multi.txt +196 -0
  71. data/spec/support/active_record_data/4_2_diana.txt +109 -0
  72. data/spec/support/active_record_data/4_2_diana_legacy.txt +109 -0
  73. data/spec/support/active_record_data/4_2_multi.txt +220 -0
  74. data/spec/support/active_record_data/4_2_multi_legacy.txt +220 -0
  75. data/spec/support/active_record_data/5_0_diana.txt +105 -0
  76. data/spec/support/active_record_data/5_0_multi.txt +212 -0
  77. data/spec/support/active_record_data/5_1_diana.txt +104 -0
  78. data/spec/support/active_record_data/5_1_multi.txt +210 -0
  79. data/spec/support/active_record_data/5_2_diana.txt +104 -0
  80. data/spec/support/active_record_data/5_2_multi.txt +210 -0
  81. data/spec/support/active_record_data/6_0_diana.txt +104 -0
  82. data/spec/support/active_record_data/6_0_multi.txt +210 -0
  83. data/spec/support/active_record_data/6_1_diana.txt +109 -0
  84. data/spec/support/active_record_data/6_1_multi.txt +220 -0
  85. data/spec/support/active_record_data.rb +20 -0
  86. data/spec/support/ext_verifier.rb +42 -0
  87. data/spec/support/mongoid_versions.rb +26 -0
  88. data/spec/support/rails_versions.rb +55 -0
  89. metadata +90 -26
@@ -0,0 +1,46 @@
1
+ require 'spec_helper'
2
+
3
+ RSpec.describe 'AwesomePrint/Nokogiri' do
4
+ it 'should colorize tags' do
5
+ xml = Nokogiri::XML('<html><body><h1></h1></body></html>')
6
+ expect(xml.ai).to eq <<-EOS
7
+ <?xml version=\"1.0\"?>\e[1;32m
8
+ \e[0m<\e[1;36mhtml\e[0m>\e[1;32m
9
+ \e[0m<\e[1;36mbody\e[0m>\e[1;32m
10
+ \e[0m<\e[1;36mh1\e[0m/>\e[1;32m
11
+ \e[0m<\e[1;36m/body\e[0m>\e[1;32m
12
+ \e[0m<\e[1;36m/html\e[0m>
13
+ EOS
14
+ end
15
+
16
+ it 'should colorize contents' do
17
+ xml = Nokogiri::XML('<html><body><h1>Hello</h1></body></html>')
18
+ expect(xml.ai).to eq <<-EOS
19
+ <?xml version=\"1.0\"?>\e[1;32m
20
+ \e[0m<\e[1;36mhtml\e[0m>\e[1;32m
21
+ \e[0m<\e[1;36mbody\e[0m>\e[1;32m
22
+ \e[0m<\e[1;36mh1\e[0m>\e[1;32mHello\e[0m<\e[1;36m/h1\e[0m>\e[1;32m
23
+ \e[0m<\e[1;36m/body\e[0m>\e[1;32m
24
+ \e[0m<\e[1;36m/html\e[0m>
25
+ EOS
26
+ end
27
+
28
+ it 'should colorize class and id' do
29
+ xml = Nokogiri::XML('<html><body><h1><span id="hello" class="world"></span></h1></body></html>')
30
+ expect(xml.ai).to eq <<-EOS
31
+ <?xml version=\"1.0\"?>\e[1;32m
32
+ \e[0m<\e[1;36mhtml\e[0m>\e[1;32m
33
+ \e[0m<\e[1;36mbody\e[0m>\e[1;32m
34
+ \e[0m<\e[1;36mh1\e[0m>\e[1;32m
35
+ \e[0m<\e[1;36mspan\e[0m \e[1;33mid=\"hello\"\e[0m \e[1;33mclass=\"world\"\e[0m/>\e[1;32m
36
+ \e[0m<\e[1;36m/h1\e[0m>\e[1;32m
37
+ \e[0m<\e[1;36m/body\e[0m>\e[1;32m
38
+ \e[0m<\e[1;36m/html\e[0m>
39
+ EOS
40
+ end
41
+
42
+ it 'handle empty NodeSet' do
43
+ xml = Nokogiri::XML::NodeSet.new(Nokogiri::XML(''))
44
+ expect(xml.ai).to eq('[]')
45
+ end
46
+ end
@@ -0,0 +1,22 @@
1
+ require 'spec_helper'
2
+
3
+ RSpec.describe 'AwesomePrint Ostruct extension' do
4
+ before do
5
+ @ap = AwesomePrint::Inspector.new(plain: true, sort_keys: true)
6
+ end
7
+
8
+ it 'empty hash' do
9
+ struct = OpenStruct.new
10
+ expect(@ap.send(:awesome, struct)).to eq('OpenStruct {}')
11
+ end
12
+
13
+ it 'plain multiline' do
14
+ struct = OpenStruct.new name: 'Foo', address: 'Bar'
15
+ expect(@ap.send(:awesome, struct)).to eq <<-EOS.strip
16
+ OpenStruct {
17
+ :address => "Bar",
18
+ :name => "Foo"
19
+ }
20
+ EOS
21
+ end
22
+ end
@@ -0,0 +1,48 @@
1
+ require 'spec_helper'
2
+
3
+ RSpec.describe 'AwesomePrint/Ripple', skip: -> { !ExtVerifier.has_ripple? }.call do
4
+
5
+ if ExtVerifier.has_ripple?
6
+ before :all do
7
+ class RippleUser
8
+ include Ripple::Document
9
+
10
+ key_on :_id
11
+ property :_id, String
12
+ property :first_name, String
13
+ property :last_name, String
14
+ end
15
+ end
16
+
17
+ after :all do
18
+ Object.instance_eval { remove_const :RippleUser }
19
+ end
20
+ end
21
+
22
+ before do
23
+ @ap = AwesomePrint::Inspector.new plain: true, sort_keys: true
24
+ end
25
+
26
+ it 'should print class instance' do
27
+ user = RippleUser.new _id: '12345', first_name: 'Al', last_name: 'Capone'
28
+ out = @ap.send :awesome, user
29
+
30
+ expect(out).to be_similar_to <<-EOS.strip
31
+ #<RippleUser:placeholder_id> {
32
+ :_id => "12345",
33
+ :first_name => "Al",
34
+ :last_name => "Capone"
35
+ }
36
+ EOS
37
+ end
38
+
39
+ it 'should print the class' do
40
+ expect(@ap.send(:awesome, RippleUser)).to eq <<-EOS.strip
41
+ class RippleUser < Object {
42
+ :_id => :string,
43
+ :first_name => :string,
44
+ :last_name => :string
45
+ }
46
+ EOS
47
+ end
48
+ end