summaryrefslogtreecommitdiff
path: root/hash.c
AgeCommit message (Collapse)Author
2020-12-25Optimize calls to `Kernel#hash` (#3987)Marc-André Lafortune
This avoids recursive checks when the `hash` method of an object isn't specialized. Notes: Merged-By: nurse <naruse@airemix.jp>
2020-12-19Make `Hash#except` always return a HashMarc-Andre Lafortune
[Feature #15822] Notes: Merged: https://github.com/ruby/ruby/pull/3929
2020-12-15Document Hash#transform_keys with hash. Amend NEWS [DOC] [ci skip]Marc-Andre Lafortune
2020-12-08Windows: Read ENV names and values as UTF-8 encoded Strings (#3818)Lars Kanis
* Windows: Read ENV names and values as UTF-8 encoded Strings Implements issue #12650: fix https://bugs.ruby-lang.org/issues/12650 This also removes the special encoding for ENV['PATH'] and some complexity in the code that is unnecessary now. * Windows: Improve readablity of getenv() encoding getenv() did use the expected codepage as an implicit parameter of the macro. This is mis-leading since include/ruby/win32.h has a different definition. Using the "cp" variable explicit (like the other function calls) makes it more readable and consistent. * Windows: Change external C-API macros getenv() and execv() to use UTF-8 They used to process and return strings with locale encoding, but since all ruby-internal spawn and environment functions use UTF-8, it makes sense to change the C-API equally. Notes: Merged-By: nurse <naruse@airemix.jp>
2020-12-07Hash#index: delete卜部昌平
Has been deprecated since 0c97c8e33584e6203bb09c08f92b63bd2cca8ae7.
2020-12-02ENV.index: delete卜部昌平
Has been deprecated since 373282f6656d3d3d989d261e7a95f8e81b5c9712.
2020-11-19Fix USE_TRANSIENT_HEAP macro usage in hash.cCristian Greco
Additionally fix some typos in transient heap. Notes: Merged: https://github.com/ruby/ruby/pull/3787
2020-10-29Make ENV.replace handle multiple environ entries with the same keyJeremy Evans
While it is expected that all environment keys are unique, that is not enforced. It is possible by manipulating environ directly you can call a process with an environment with duplicate keys. If ENV.replace was passed a hash with a key where environ had a duplicate for that key, ENV.replace would end up deleting the key from environ. The fix in this case is to not assume that the environment key list has unique keys, and continue processing the entire key list in keylist_delete. Fixes [Bug #17254] Notes: Merged: https://github.com/ruby/ruby/pull/3716
2020-10-21Don't redefine #rb_intern over and over againStefan Stüben
Notes: Merged: https://github.com/ruby/ruby/pull/3589
2020-10-12[ci skip] Minor documentation fix.Cristian Greco
Add missing period. Notes: Merged: https://github.com/ruby/ruby/pull/3650
2020-09-29Add call-seq of [Feature #16274]Kazuhiro NISHIYAMA
2020-09-26Fix `ENV.except`'s docsbogdanvlviv
Notes: Merged: https://github.com/ruby/ruby/pull/3595
2020-09-21Make hash returned by Hash#transform_values not have a defaultJeremy Evans
This sets an explicit default of nil. There is probably a better approach of removing the default. Fixes [Bug #17181] Notes: Merged: https://github.com/ruby/ruby/pull/3563
2020-08-27Comply with guide for method doc: hash.c (#3466)Burdette Lamar
Instance methods considered (most unchanged): - any - dig - \<= - \< - \>= - \> - to_proc Notes: Merged-By: BurdetteLamar <BurdetteLamar@Yahoo.com>
2020-08-27Comply with guide for method doc: hash.c (#3465)Burdette Lamar
Instance methods considered (maybe not all changed): invert merge! merge assoc rassoc flatten compact compact! compare_by_identity compare_by_identity? Notes: Merged-By: BurdetteLamar <BurdetteLamar@Yahoo.com>
2020-08-27Comply with guide for method doc: hash.c (#3464)Burdette Lamar
Instance methods considered (maybe not all changed): to_a inspect to_hash to_h keys values include? has_value? == eql? hash Notes: Merged-By: BurdetteLamar <BurdetteLamar@Yahoo.com>
2020-08-27Comply with guide for method doc: hash.c (#3459)Burdette Lamar
Instance methods considered (some maybe not changed): clear []= replace length empty? each_value each_key each_pair transform_keys transform_keys! transform_values transform_values! Notes: Merged-By: BurdetteLamar <BurdetteLamar@Yahoo.com>
2020-08-25Comply with guide for method doc: hash.c (#3454)Burdette Lamar
Methods reviewed (a few not modified): key delete shift delete_if reject! reject slice except values_at fetch_values select select! keep_if Notes: Merged-By: BurdetteLamar <BurdetteLamar@Yahoo.com>
2020-08-25Comply with guide for method doc: hash.c (#3451)Burdette Lamar
Methods: ::new ::[] ::try_convert #rehash #[] #fetch #default #default= #default_proc #default_proc= Notes: Merged-By: BurdetteLamar <BurdetteLamar@Yahoo.com>
2020-08-23Remove checks for self returned in array.c and hash.c examples (#3446)Burdette Lamar
Further compliance with https://github.com/ruby/ruby/blob/master/doc/method_documentation.rdoc#details-and-examples- Notes: Merged-By: BurdetteLamar <BurdetteLamar@Yahoo.com>
2020-08-21Remove nil-return examples from hash.c (#3438)Burdette Lamar
* Remove nil-return examples from hash.c Notes: Merged-By: BurdetteLamar <BurdetteLamar@Yahoo.com>
2020-08-20Partial compliance with doc/method_documentation.rdoc in hash.c (#3432)Burdette Lamar
Removes references to *-convertible thingies. Notes: Merged-By: BurdetteLamar <BurdetteLamar@Yahoo.com>
2020-08-19[DOC] Improve Hash's doc for missing keysMarc-Andre Lafortune
Notes: Merged: https://github.com/ruby/ruby/pull/3373
2020-08-19[DOC] Improve and simplify key egality documentation for HashMarc-Andre Lafortune
Notes: Merged: https://github.com/ruby/ruby/pull/3373
2020-08-19RHASH_TBL: is now ext-only卜部昌平
It seems almost no internal codes use RHASH_TBL any longer. Why not just eliminate it entirely, so that the macro can be purely ext-only. Notes: Merged: https://github.com/ruby/ruby/pull/3426
2020-08-14Fix links to Dig Methods document (#3421)Burdette Lamar
* Fix links to Dig Methods document * Fix links to Dig Methods document Notes: Merged-By: BurdetteLamar <BurdetteLamar@Yahoo.com>
2020-08-13Adding doc/dig_methods.rdoc and links to it (#3416)Burdette Lamar
Adds a full discussion of #dig, along with links from Array, Hash, Struct, and OpenStruct. CSV::Table and CSV::Row are over in ruby/csv. I'll get to them soon. The art to the thing is to figure out how much (or how little) to say at each #dig. Notes: Merged-By: BurdetteLamar <BurdetteLamar@Yahoo.com>
2020-07-29Fix arity of Hash#to_proc [Bug #12671]Benoit Daloze
Notes: Merged: https://github.com/ruby/ruby/pull/3370
2020-06-29rb_hash_transient_heap_evacuate: do not goto into a branch卜部昌平
I'm not necessarily against every goto in general, but jumping into a branch is definitely a bad idea. Better refactor. Notes: Merged: https://github.com/ruby/ruby/pull/3247
2020-06-29any_hash: do not goto into a branch卜部昌平
I'm not necessarily against every goto in general, but jumping into a branch is definitely a bad idea. Better refactor. Notes: Merged: https://github.com/ruby/ruby/pull/3247
2020-06-18Add Hash#except ENV#except [Feature #15822]Timo Schilling
2020-06-10ENV.delete should return the result of block on non-existing keyNobuyoshi Nakada
Fixes [Bug #16173] Co-Authored-By: Burdette Lamar <burdettelamar@yahoo.com> Co-Authored-By: Jeremy Evans <code@jeremyevans.net> Notes: Merged: https://github.com/ruby/ruby/pull/3206
2020-06-10Enhanced Rdoc for Array#fetch and Array#index (#3202)Burdette Lamar
* Enhanced Rdoc for Array#fetch and Array#index * Couple of tweaks (per review) in Rdoc for Hash Notes: Merged-By: BurdetteLamar <BurdetteLamar@Yahoo.com>
2020-06-07Enhanced Rdoc for Hash (#3187)Burdette Lamar
Methods: #<= #< #>= #> #to_proc Also, a small amount of housekeeping: Adding backslash to some class name to prevent linking. Notes: Merged-By: BurdetteLamar <BurdetteLamar@Yahoo.com>
2020-06-03Enhanced Rdoc for Hash (#3178)Burdette Lamar
* Enhanced Rdoc for Hash * Fix typo in Hash Rdoc * Enhanced Rdoc for Hash Notes: Merged-By: BurdetteLamar <BurdetteLamar@Yahoo.com>
2020-06-02[ci skip] Enhanced Rdoc for Hash (#3162)Burdette Lamar
* Enhanced Rdoc for Hash * Enhanced Rdoc for Hash Notes: Merged-By: BurdetteLamar <BurdetteLamar@Yahoo.com>
2020-06-01fix typo in Hash#delete docsS-H-GAMELINKS
Notes: Merged: https://github.com/ruby/ruby/pull/3168
2020-05-29[ci skip] Enhanced Rdoc for Hash (#3155)Burdette Lamar
* Enhanced Rdoc for Hash * Respond to review Notes: Merged-By: BurdetteLamar <BurdetteLamar@Yahoo.com>
2020-05-28Enhanced Rdoc for Hash (#3151)Burdette Lamar
Notes: Merged-By: BurdetteLamar <BurdetteLamar@Yahoo.com>
2020-05-27[ci skip] Enhanced Rdoc for Hash (#3143)Burdette Lamar
* Enhanced Rdoc for Hash * Respond to review * Nudge CI testing. Respond to review Notes: Merged-By: BurdetteLamar <BurdetteLamar@Yahoo.com>
2020-05-23Enhanced Rdoc for Hash (#3139)Burdette Lamar
Notes: Merged-By: BurdetteLamar <BurdetteLamar@Yahoo.com>
2020-05-23Enhanced Rdoc for HashBurdetteLamar
Notes: Merged: https://github.com/ruby/ruby/pull/3134
2020-05-22Enhanced rdoc for Hash (#3129)Burdette Lamar
Notes: Merged-By: ioquatix <samuel@codeotaku.com>
2020-05-22add static modifier for rb_hash_keep_if funcS-H-GAMELINKS
Notes: Merged: https://github.com/ruby/ruby/pull/3130
2020-05-22add static modifier for rb_hash_select_bang funcS-H-GAMELINKS
Notes: Merged: https://github.com/ruby/ruby/pull/3130
2020-05-22add static modifier for rb_hash_select funcS-H-GAMELINKS
Notes: Merged: https://github.com/ruby/ruby/pull/3130
2020-05-21[ci skip] Enhanced rdoc for Hash (#3121)Burdette Lamar
Notes: Merged-By: ioquatix <samuel@codeotaku.com>
2020-05-20add static modifer for rb_hash_fetch_values funcS-H-GAMELINKS
Notes: Merged: https://github.com/ruby/ruby/pull/3125
2020-05-15 [CI skip] Enhance rdoc intro for Hash (#3056)Burdette Lamar
* Per @nobu review * [CI skip] Enhance rdoc intro for Hash * Tweak call-seq for Hash.new * Tweak call-seq for Hash.new * Minor corrections * Respond to review * Respond to review * Respond to review * Respond to review * Fix chain exampmle * Response to review Notes: Merged-By: drbrain <drbrain@segment7.net>
2020-05-12Document that #hash is not called for certain core classes [ci skip]Jeremy Evans
Fixes [Bug #16850]