diff options
author | eregon <eregon@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2017-09-20 20:18:52 +0000 |
---|---|---|
committer | eregon <eregon@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2017-09-20 20:18:52 +0000 |
commit | 1d15d5f08032acf1b7bceacbb450d617ff6e0931 (patch) | |
tree | a3785a79899302bc149e4a6e72f624ac27dc1f10 /spec/rubyspec/language/optional_assignments_spec.rb | |
parent | 75bfc6440d595bf339007f4fb280fd4d743e89c1 (diff) |
Move spec/rubyspec to spec/ruby for consistency
* Other ruby implementations use the spec/ruby directory.
[Misc #13792] [ruby-core:82287]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@59979 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'spec/rubyspec/language/optional_assignments_spec.rb')
-rw-r--r-- | spec/rubyspec/language/optional_assignments_spec.rb | 226 |
1 files changed, 0 insertions, 226 deletions
diff --git a/spec/rubyspec/language/optional_assignments_spec.rb b/spec/rubyspec/language/optional_assignments_spec.rb deleted file mode 100644 index c104d08253..0000000000 --- a/spec/rubyspec/language/optional_assignments_spec.rb +++ /dev/null @@ -1,226 +0,0 @@ -require File.expand_path('../../spec_helper', __FILE__) - -describe 'Optional variable assignments' do - describe 'using ||=' do - describe 'using a single variable' do - it 'assigns a new variable' do - a ||= 10 - - a.should == 10 - end - - it 're-assigns an existing variable set to false' do - a = false - a ||= 10 - - a.should == 10 - end - - it 're-assigns an existing variable set to nil' do - a = nil - a ||= 10 - - a.should == 10 - end - - it 'does not re-assign a variable with a truthy value' do - a = 10 - a ||= 20 - - a.should == 10 - end - - it 'does not evaluate the right side when not needed' do - a = 10 - a ||= raise('should not be executed') - a.should == 10 - end - - it 'does not re-assign a variable with a truthy value when using an inline rescue' do - a = 10 - a ||= 20 rescue 30 - - a.should == 10 - end - end - - describe 'using a accessor' do - before do - klass = Class.new { attr_accessor :b } - @a = klass.new - end - - it 'assigns a new variable' do - @a.b ||= 10 - - @a.b.should == 10 - end - - it 're-assigns an existing variable set to false' do - @a.b = false - @a.b ||= 10 - - @a.b.should == 10 - end - - it 're-assigns an existing variable set to nil' do - @a.b = nil - @a.b ||= 10 - - @a.b.should == 10 - end - - it 'does not re-assign a variable with a truthy value' do - @a.b = 10 - @a.b ||= 20 - - @a.b.should == 10 - end - - it 'does not evaluate the right side when not needed' do - @a.b = 10 - @a.b ||= raise('should not be executed') - @a.b.should == 10 - end - - it 'does not re-assign a variable with a truthy value when using an inline rescue' do - @a.b = 10 - @a.b ||= 20 rescue 30 - - @a.b.should == 10 - end - end - end - - describe 'using &&=' do - describe 'using a single variable' do - it 'leaves new variable unassigned' do - a &&= 10 - - a.should == nil - end - - it 'leaves false' do - a = false - a &&= 10 - - a.should == false - end - - it 'leaves nil' do - a = nil - a &&= 10 - - a.should == nil - end - - it 'does not evaluate the right side when not needed' do - a = nil - a &&= raise('should not be executed') - a.should == nil - end - - it 'does re-assign a variable with a truthy value' do - a = 10 - a &&= 20 - - a.should == 20 - end - - it 'does re-assign a variable with a truthy value when using an inline rescue' do - a = 10 - a &&= 20 rescue 30 - - a.should == 20 - end - end - - describe 'using a single variable' do - before do - klass = Class.new { attr_accessor :b } - @a = klass.new - end - - it 'leaves new variable unassigned' do - @a.b &&= 10 - - @a.b.should == nil - end - - it 'leaves false' do - @a.b = false - @a.b &&= 10 - - @a.b.should == false - end - - it 'leaves nil' do - @a.b = nil - @a.b &&= 10 - - @a.b.should == nil - end - - it 'does not evaluate the right side when not needed' do - @a.b = nil - @a.b &&= raise('should not be executed') - @a.b.should == nil - end - - it 'does re-assign a variable with a truthy value' do - @a.b = 10 - @a.b &&= 20 - - @a.b.should == 20 - end - - it 'does re-assign a variable with a truthy value when using an inline rescue' do - @a.b = 10 - @a.b &&= 20 rescue 30 - - @a.b.should == 20 - end - end - end - - describe 'using compunded constants' do - before do - Object.send(:remove_const, :A) if defined? Object::A - end - - it 'with ||= assignments' do - Object::A ||= 10 - Object::A.should == 10 - end - - it 'with ||= do not reassign' do - Object::A = 20 - Object::A ||= 10 - Object::A.should == 20 - end - - it 'with &&= assignments' do - Object::A = 20 - -> { - Object::A &&= 10 - }.should complain(/already initialized constant/) - Object::A.should == 10 - end - - it 'with &&= assignments will fail with non-existant constants' do - lambda { Object::A &&= 10 }.should raise_error(NameError) - end - - it 'with operator assignments' do - Object::A = 20 - -> { - Object::A += 10 - }.should complain(/already initialized constant/) - Object::A.should == 30 - end - - it 'with operator assignments will fail with non-existant constants' do - lambda { Object::A += 10 }.should raise_error(NameError) - end - end -end |