marcandre
b16eaf8632
lib/ostruct.rb: Use `FrozenError` instead of `RuntimeError`.
...
Patch by Yuuji Yaginuma. [Fixes GH-1808]
In other classes, `FrozenError` will be raised if change the frozen
object.
In order to match the behavior, I think that `FrozenError` should
use in `OpenStruct`.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@62271 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-02-06 23:52:30 +00:00
kazu
fc29786926
test/ostruct: Specify frozen_string_literal: true.
...
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@60433 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-10-25 23:45:33 +00:00
marcandre
e565c838ce
lib/ostruct.rb: Use frozen literals.
...
Patch adapted from Espartaco Palma. [GH-1714] [Bug #14000 ]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@60406 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-10-24 18:08:15 +00:00
nobu
a20715c8ed
ostruct.rb: refine visibility failure message
...
* lib/ostruct.rb (method_missing): raise an exception with proper
visibility message.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@58195 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-03-28 09:21:58 +00:00
nobu
cd911b9367
ostruct.rb: fix OpenStruct.allocate
...
* lib/ostruct.rb (OpenStruct.allocate): initialize an instance
variable directly, without calling `intialize` method which may
be overridden in a subclass. [ruby-core:80292] [Bug #13358 ]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@58077 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-03-24 12:16:54 +00:00
marcandre
4d7b999c77
lib/ostruct.rb: Fix returned value of each_pair.
...
From a patch by Marcus Stollsteimer. [Fixes #13169 ]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@57515 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-02-03 18:25:28 +00:00
nobu
014d60ce98
test_ostruct.rb: sort method names
...
* test/ostruct/test_ostruct.rb (test_accessor_defines_method):
should not depend on the order of methods.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53433 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-01-04 07:47:44 +00:00
marcandre
9543908c9f
* lib/ostruct.rb: Fix case of frozen object with initializer.
...
Bug revealed by RubySpec [ruby-core:72639]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53407 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-01-01 17:27:38 +00:00
marcandre
2f2a5c3ae9
* lib/ostruct.rb: Fix new_ostruct_member to correctly avoid redefinition
...
[#11901 ]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53395 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-12-31 05:37:21 +00:00
nobu
15960b37e8
ostruct.rb: respond_to?
...
* lib/ostruct.rb (OpenStruct): make respond_to? working on
just-allocated objects for workaround of Psych.
[ruby-core:72501] [Bug #11884 ]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53366 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-12-29 03:48:36 +00:00
naruse
3e92b635fb
Add frozen_string_literal: false for all files
...
When you change this to true, you may need to add more tests.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53141 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-12-16 05:07:31 +00:00
marcandre
13d8bb0385
* lib/ostruct.rb: Have OpenStruct#dig raise if argument is not a symbol
...
nor a string. See [#11762 ]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53063 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-12-12 21:40:50 +00:00
nobu
482530680c
OpenStruct#dig
...
* lib/ostruct.rb (dig): Implement OpenStruct#dig
[Feature #11688 ]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@52611 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-11-17 05:36:03 +00:00
eregon
5389661931
* test/ostruct/test_ostruct.rb: Add tests for OpenStruct#respond_to.
...
Patch by @jeremy in [GH-1041]: https://github.com/ruby/ruby/pull/1041
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@52126 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-10-14 16:57:46 +00:00
nobu
759a31b4a3
Revert GH-808
...
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@49181 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-01-08 07:07:59 +00:00
nobu
10ce99866f
ostruct.rb: append suffixes to protected methods
...
* lib/ostruct.rb (modifiable?, new_ostruct_member!, table!):
append suffixes to protected methods so that they will not clash
with assigned members. [Fix GH-806]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@49145 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-01-05 01:57:26 +00:00
naruse
e7194e9648
Suppress warnings: ambiguous first argument; put parentheses or even spaces
...
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43553 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-11-06 06:25:18 +00:00
marcandre
f9a169fff2
* lib/ostruct.rb: raise NoMethodError with a #name and #args.
...
Patch by Kenichi Kamiya. [Fixes GH-383]
* test/ostruct/test_ostruct.rb: Added tests for above.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43405 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-10-23 15:14:17 +00:00
marcandre
5b5de3984e
* lib/ostruct.rb (Struct#each_pair): Return an enumerator with size
...
Patch by Kenichi Kamiya. [Fixes GH-383]
* test/ostruct/test_ostruct.rb: Added tests for above.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43404 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-10-23 15:13:57 +00:00
marcandre
99d5d90f2f
* lib/ostruct.rb (OpenStruct#delete): Use the converted argument.
...
Patch by Kenichi Kamiya. [Fixes GH-383]
* test/ostruct/test_ostruct.rb: Added tests for above.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43403 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-10-23 15:13:38 +00:00
marcandre
b9e18abe4a
* lib/ostruct.rb: Raise RuntimeError when modifying frozen instances
...
instead of TypeError. Patch by Kenichi Kamiya. [Fixes GH-383]
* test/ostruct/test_ostruct.rb: Added tests for above.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43402 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-10-23 15:13:19 +00:00
marcandre
e44e356b53
* lib/ostruct.rb: Add [] and []=, base on a patch by Thomas Sawyer
...
[ruby-core:42779] [Feature #6056 ]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37376 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-10-28 21:20:10 +00:00
marcandre
3785d2675a
* lib/ostruct.rb: Also accept {Open}Struct as argument to new
...
[ruby-core:47476] [Feature #7007 ]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37375 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-10-28 21:19:50 +00:00
marcandre
b4300d25c9
* lib/ostruct.rb: Add OpenStruct#eql? and OpenStruct#hash
...
[ruby-core:42651] [Bug #6029 ]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37373 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-10-28 21:19:15 +00:00
marcandre
15d4862b91
* lib/ostruct.rb (each_pair): Add #each_pair [ #1400 ]
...
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37372 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-10-28 21:18:53 +00:00
nobu
770ddcdfe0
* hash.c, object.c, struct.c, lib/ostruct.rb: add to_h methods.
...
[Feature #6276 ]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@35452 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-04-24 03:46:55 +00:00
marcandre
dfb1a71222
* lib/ostruct.rb (delete_field): Bug fix so previous value is returned.
...
Patch by Nick Recobra [Bug #6063 ]
* test/ostruct/test_ostruct.rb: Test for above
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@34755 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-02-22 18:59:03 +00:00
marcandre
a50bdcd6df
* lib/ostruct.rb (method_missing): Handle [] and []= correctly.
...
Based on a patch by Caius Durling, bug #4179 [ruby-core:33792]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@31753 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-05-27 15:59:02 +00:00
nobu
4ec86dcc57
* lib/ostruct.rb (OpenStruct#delete_field): also undefine
...
accessor methods. [ruby-core:33010]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@29677 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-11-03 05:17:25 +00:00
nobu
287a34ae0d
* {ext,lib,test}/**/*.rb: removed trailing spaces.
...
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@22784 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-03-06 03:56:38 +00:00
nobu
1942710d42
* lib/ostruct.rb (modifiable): check if really frozen.
...
[ruby-core:22559]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@22652 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-02-27 05:23:10 +00:00
nobu
0958624759
* test/ostruct/test_ostruct.rb (test_frozen): added assertions.
...
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@22372 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-02-17 09:57:12 +00:00
nobu
a4eb339564
* lib/ostruct.rb (OpenStruct#new_ostruct_member): checks if frozen.
...
[ruby-talk:328195], [ruby-core:22142]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@22332 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-02-15 12:43:46 +00:00
yugui
ed15422759
* lib/ostruct.rb (OpenStruct#inspect): fixed the recursion check.
...
Patch by Kornelius Kalnbach. [ruby-core:20992].
* test/ostruct/test_ostruct.rb: test for inspect.
Patch by Kornelius Kalnbach. [ruby-core:20992].
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@21496 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-01-13 12:52:23 +00:00
ntalbott
fb1f07049f
* lib/ostruct.rb: Added OpenStruct#==.
...
* test/ostruct/test_ostruct.rb: Added.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@4596 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2003-09-25 00:03:11 +00:00