[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-7785":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":10,"language":11,"languages":10,"totalLinesOfCode":10,"stars":12,"forks":13,"watchers":14,"openIssues":15,"contributorsCount":16,"subscribersCount":16,"size":16,"stars1d":16,"stars7d":16,"stars30d":16,"stars90d":16,"forks30d":16,"starsTrendScore":16,"compositeScore":17,"rankGlobal":10,"rankLanguage":10,"license":18,"archived":19,"fork":19,"defaultBranch":20,"hasWiki":21,"hasPages":19,"topics":22,"createdAt":10,"pushedAt":10,"updatedAt":23,"readmeContent":24,"aiSummary":25,"trendingCount":16,"starSnapshotCount":16,"syncStatus":26,"lastSyncTime":27,"discoverSource":28},7785,"awesome_print","awesome-print\u002Fawesome_print","awesome-print","Pretty print your Ruby objects with style -- in full color and with proper indentation","http:\u002F\u002Fgithub.com\u002Fmichaeldv\u002Fawesome_print",null,"Ruby",4083,449,40,83,0,29.96,"MIT License",false,"master",true,[],"2026-06-12 02:01:44","## Awesome Print ##\n\n[![RubyGems][gem_version_badge]][ruby_gems]\n[![Travis CI][travis_ci_badge]][travis_ci]\n[![Code Climate][code_climate_badge]][code_climate]\n[![Code Climate Coverage][code_climate_coverage_badge]][code_climate]\n[![RubyGems][gem_downloads_badge]][ruby_gems]\n[![Gitter](https:\u002F\u002Fbadges.gitter.im\u002FJoin%20Chat.svg)](https:\u002F\u002Fgitter.im\u002Fawesome-print\u002Fawesome_print?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n\n\nAwesome Print is a Ruby library that pretty prints Ruby objects in full color\nexposing their internal structure with proper indentation. Rails ActiveRecord\nobjects and usage within Rails templates are supported via included mixins.\n\n__NOTE__: awesome_print v1.9.0 may not work on Ruby versions 2.4 or older or Rails versions 4.2 or older.\nThe upcoming awesome_print v2.0 will *require* Ruby v1.9.3 or later and Rails v3.0 or later.\n\n### Installation ###\n    # Installing as Ruby gem\n    $ gem install awesome_print\n\n    # Cloning the repository\n    $ git clone git:\u002F\u002Fgithub.com\u002Fawesome-print\u002Fawesome_print.git\n\n### Usage ###\n\n```ruby\nrequire \"awesome_print\"\nap object, options = {}\n```\n\nDefault options:\n\n```ruby\nindent:        4,      # Number of spaces for indenting.\nindex:         true,   # Display array indices.\nhtml:          false,  # Use ANSI color codes rather than HTML.\nmultiline:     true,   # Display in multiple lines.\nplain:         false,  # Use colors.\nraw:           false,  # Do not recursively format instance variables.\nsort_keys:     false,  # Do not sort hash keys.\nsort_vars:     true,   # Sort instance variables.\nlimit:         false,  # Limit arrays & hashes. Accepts bool or int.\nruby19_syntax: false,  # Use Ruby 1.9 hash syntax in output.\nclass_name:    :class, # Method called to report the instance class name. (e.g. :to_s)\nobject_id:     true,   # Show object id.\ncolor: {\n  args:       :pale,\n  array:      :white,\n  bigdecimal: :blue,\n  class:      :yellow,\n  date:       :greenish,\n  falseclass: :red,\n  integer:    :blue,\n  float:      :blue,\n  hash:       :pale,\n  keyword:    :cyan,\n  method:     :purpleish,\n  nilclass:   :red,\n  rational:   :blue,\n  string:     :yellowish,\n  struct:     :pale,\n  symbol:     :cyanish,\n  time:       :greenish,\n  trueclass:  :green,\n  variable:   :cyanish\n}\n```\n\nSupported color names:\n\n```ruby\n:gray, :red, :green, :yellow, :blue, :purple, :cyan, :white\n:black, :redish, :greenish, :yellowish, :blueish, :purpleish, :cyanish, :pale\n```\n\nUse `Object#ai` to return an ASCII encoded string:\n\n```ruby\nirb> \"awesome print\".ai\n=> \"\\e[0;33m\\\"awesome print\\\"\\e[0m\"\n```\n\n### Examples ###\n\n#### Array\n\n```ruby\n$ cat > 1.rb\nrequire \"awesome_print\"\ndata = [ false, 42, %w(forty two), { :now => Time.now, :class => Time.now.class, :distance => 42e42 } ]\nap data\n^D\n$ ruby 1.rb\n[\n    [0] false,\n    [1] 42,\n    [2] [\n        [0] \"forty\",\n        [1] \"two\"\n    ],\n    [3] {\n           :class => Time \u003C Object,\n             :now => Fri Apr 02 19:55:53 -0700 2010,\n        :distance => 4.2e+43\n    }\n]\n```\n#### Hash\n\n```ruby\n$ cat > 2.rb\nrequire \"awesome_print\"\ndata = { :now => Time.now, :class => Time.now.class, :distance => 42e42 }\nap data, :indent => -2  # \u003C-- Left align hash keys.\n^D\n$ ruby 2.rb\n{\n  :class    => Time \u003C Object,\n  :now      => Fri Apr 02 19:55:53 -0700 2010,\n  :distance => 4.2e+43\n}\n```\n\n#### Nested array\n\n```ruby\n$ cat > 3.rb\nrequire \"awesome_print\"\ndata = [ false, 42, %w(forty two) ]\ndata \u003C\u003C data  # \u003C-- Nested array.\nap data, :multiline => false\n^D\n$ ruby 3.rb\n[ false, 42, [ \"forty\", \"two\" ], [...] ]\n\n```\n\n#### Class methods\n\n```ruby\n$ cat > 4.rb\nrequire \"awesome_print\"\nclass Hello\n  def self.world(x, y, z = nil, &blk)\n  end\nend\nap Hello.methods - Class.methods\n^D\n$ ruby 4.rb\n[\n    [0] world(x, y, *z, &blk) Hello\n]\n\n```\n\n#### Object methods\n\n```ruby\n$ cat > 5.rb\nrequire \"awesome_print\"\nap (''.methods - Object.methods).grep(\u002F!\u002F)\n^D\n$ ruby 5.rb\n[\n    [ 0] capitalize!()           String\n    [ 1]      chomp!(*arg1)      String\n    [ 2]       chop!()           String\n    [ 3]     delete!(*arg1)      String\n    [ 4]   downcase!()           String\n    [ 5]     encode!(*arg1)      String\n    [ 6]       gsub!(*arg1)      String\n    [ 7]     lstrip!()           String\n    [ 8]       next!()           String\n    [ 9]    reverse!()           String\n    [10]     rstrip!()           String\n    [11]      slice!(*arg1)      String\n    [12]    squeeze!(*arg1)      String\n    [13]      strip!()           String\n    [14]        sub!(*arg1)      String\n    [15]       succ!()           String\n    [16]   swapcase!()           String\n    [17]         tr!(arg1, arg2) String\n    [18]       tr_s!(arg1, arg2) String\n    [19]     upcase!()           String\n]\n\n```\n\n#### Compare output to value\n\n```ruby\n$ cat > 6.rb\nrequire \"awesome_print\"\nap 42 == ap(42)\n^D\n$ ruby 6.rb\n42\ntrue\n\n```\n\n#### Array with default output limit\n\n```ruby\n$ cat > 7.rb\nrequire \"awesome_print\"\nsome_array = (1..1000).to_a\nap some_array, :limit => true\n^D\n$ ruby 7.rb\n[\n    [  0] 1,\n    [  1] 2,\n    [  2] 3,\n    [  3] .. [996],\n    [997] 998,\n    [998] 999,\n    [999] 1000\n]\n```\n\n#### Array with specific output limit\n\n```ruby\n$ cat > 8.rb\nrequire \"awesome_print\"\nsome_array = (1..1000).to_a\nap some_array, :limit => 5\n^D\n$ ruby 8.rb\n[\n    [  0] 1,\n    [  1] 2,\n    [  2] .. [997],\n    [998] 999,\n    [999] 1000\n]\n```\n\n#### Rails console\n```ruby\n$ rails console\nrails> require \"awesome_print\"\nrails> ap Account.limit(2).all\n[\n    [0] #\u003CAccount:0x1033220b8> {\n                     :id => 1,\n                :user_id => 5,\n            :assigned_to => 7,\n                   :name => \"Hayes-DuBuque\",\n                 :access => \"Public\",\n                :website => \"http:\u002F\u002Fwww.hayesdubuque.com\",\n        :toll_free_phone => \"1-800-932-6571\",\n                  :phone => \"(111)549-5002\",\n                    :fax => \"(349)415-2266\",\n             :deleted_at => nil,\n             :created_at => Sat, 06 Mar 2010 09:46:10 UTC +00:00,\n             :updated_at => Sat, 06 Mar 2010 16:33:10 UTC +00:00,\n                  :email => \"info@hayesdubuque.com\",\n        :background_info => nil\n    },\n    [1] #\u003CAccount:0x103321ff0> {\n                     :id => 2,\n                :user_id => 4,\n            :assigned_to => 4,\n                   :name => \"Ziemann-Streich\",\n                 :access => \"Public\",\n                :website => \"http:\u002F\u002Fwww.ziemannstreich.com\",\n        :toll_free_phone => \"1-800-871-0619\",\n                  :phone => \"(042)056-1534\",\n                    :fax => \"(106)017-8792\",\n             :deleted_at => nil,\n             :created_at => Tue, 09 Feb 2010 13:32:10 UTC +00:00,\n             :updated_at => Tue, 09 Feb 2010 20:05:01 UTC +00:00,\n                  :email => \"info@ziemannstreich.com\",\n        :background_info => nil\n    }\n]\nrails> ap Account\nclass Account \u003C ActiveRecord::Base {\n                 :id => :integer,\n            :user_id => :integer,\n        :assigned_to => :integer,\n               :name => :string,\n             :access => :string,\n            :website => :string,\n    :toll_free_phone => :string,\n              :phone => :string,\n                :fax => :string,\n         :deleted_at => :datetime,\n         :created_at => :datetime,\n         :updated_at => :datetime,\n              :email => :string,\n    :background_info => :string\n}\nrails>\n```\n\n### IRB integration ###\nTo use awesome_print as default formatter in irb and Rails console add the following\ncode to your ~\u002F.irbrc file:\n\n```ruby\nrequire \"awesome_print\"\nAwesomePrint.irb!\n```\n\n### PRY integration ###\nIf you miss awesome_print's way of formatting output, here's how you can use it in place\nof the formatting which comes with pry. Add the following code to your `~\u002F.pryrc` \nor your project's `.\u002F.pryrc`:\n\n```ruby\nrequire \"awesome_print\"\nAwesomePrint.pry!\n```\n\n### Logger Convenience Method ###\nawesome_print adds the 'ap' method to the Logger and ActiveSupport::BufferedLogger classes\nletting you call:\n\n    logger.ap object\n\nBy default, this logs at the :debug level. You can override that globally with:\n\n    :log_level => :info\n\nin the custom defaults (see below). You can also override on a per call basis with:\n\n    logger.ap object, :warn\n\n### ActionView Convenience Method ###\nawesome_print adds the 'ap' method to the ActionView::Base class making it available\nwithin Rails templates. For example:\n\n    \u003C%= ap @accounts.first %>   # ERB\n    != ap @accounts.first       # HAML\n\nWith other web frameworks (ex: in Sinatra templates) you can explicitly request HTML\nformatting:\n\n    \u003C%= ap @accounts.first, :html => true %>\n\n### String Convenience Methods ###\nUse methods such as `.red` to set string color:\n\n```ruby\nirb> puts \"red text\".red\nred text # (it's red)\n```\n\n### Setting Custom Defaults ###\nYou can set your own default options by creating ``.aprc`` file in your home\ndirectory. Within that file assign your  defaults to ``AwesomePrint.defaults``.\nFor example:\n\n```ruby\n# ~\u002F.aprc file.\nAwesomePrint.defaults = {\n  :indent => -2,\n  :color => {\n    :hash  => :pale,\n    :class => :white\n  }\n}\n```\n\n## Versioning\n\nAwesomePrint follows the [Semantic Versioning](http:\u002F\u002Fsemver.org\u002F) standard.\n\n### Contributing ###\nSee [CONTRIBUTING.md](CONTRIBUTING.md) for information.\n\n### License ###\nCopyright (c) 2010-2016 Michael Dvorkin and contributors\n\nhttp:\u002F\u002Fwww.dvorkin.net\n\n%w(mike dvorkin.net) * \"@\" || \"twitter.com\u002Fmid\"\n\nReleased under the MIT license. See LICENSE file for details.\n\n[gem_version_badge]: https:\u002F\u002Fimg.shields.io\u002Fgem\u002Fv\u002Fawesome_print.svg?style=flat\n[gem_downloads_badge]: http:\u002F\u002Fimg.shields.io\u002Fgem\u002Fdt\u002Fawesome_print.svg?style=flat\n[ruby_gems]: http:\u002F\u002Frubygems.org\u002Fgems\u002Fawesome_print\n[travis_ci]: http:\u002F\u002Ftravis-ci.org\u002Fawesome-print\u002Fawesome_print\n[travis_ci_badge]: https:\u002F\u002Fimg.shields.io\u002Ftravis\u002Fawesome-print\u002Fawesome_print\u002Fmaster.svg?style=flat\n[code_climate]: https:\u002F\u002Fcodeclimate.com\u002Fgithub\u002Fawesome-print\u002Fawesome_print\n[code_climate_badge]: http:\u002F\u002Fimg.shields.io\u002Fcodeclimate\u002Fgithub\u002Fawesome-print\u002Fawesome_print.svg?style=flat\n[code_climate_coverage_badge]: https:\u002F\u002Fcodeclimate.com\u002Fgithub\u002Fawesome-print\u002Fawesome_print\u002Fbadges\u002Fcoverage.svg\n","Awesome Print 是一个 Ruby 库，用于以全彩色和适当缩进的方式美观地打印 Ruby 对象。其核心功能包括支持 Rails ActiveRecord 对象及其在 Rails 模板中的使用，并通过包含的混入（mixins）来展示对象内部结构。技术特点在于它能够根据用户自定义的颜色方案对不同类型的 Ruby 对象进行着色区分，同时提供了丰富的配置选项如缩进空格数、数组索引显示等，使得输出更加易于阅读与理解。适用于需要调试或展示复杂数据结构的所有 Ruby 开发场景中，特别是当开发者希望以更直观的形式查看对象信息时。",2,"2026-06-11 03:14:21","top_language"]