Sha256: faf067266df4267404154b6af5b7cdf8aa4afee9ae72337567d1e85d0e858de2
Contents?: true
Size: 1.1 KB
Versions: 2
Compression:
Stored size: 1.1 KB
Contents
require "spec_helper" module RenderWithView RSpec.describe HalfOpenStruct do it "can be initialized with a hash, and values read and written" do s = HalfOpenStruct.new(name: "Joe") expect(s.name).to eq("Joe") s.age = 42 expect(s.age).to eq(42) end it "raises trying to read an unknown value" do s = HalfOpenStruct.new expect { s.age }.to raise_error("Unknown key: age") s.age = 42 expect(s.age).to eq(42) end it "raises for unknown methods" do s = HalfOpenStruct.new expect { s.foo("bar") }.to raise_error(NoMethodError) end # Considered an API like "s.age?" but that's ambiguous with undefined vs. falsy values. it "lets you query for values being defined" do s = HalfOpenStruct.new expect(s.include?(:age)).to be(false) s.age = 42 expect(s.include?(:age)).to be(true) end it "lets you fetch values with a fallback" do s = HalfOpenStruct.new expect(s.fetch(:age, :fallback)).to eq(:fallback) s.age = 42 expect(s.fetch(:age, :fallback)).to eq(42) end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
render_with_view-0.2.1 | spec/render_with_view/half_open_struct_spec.rb |
render_with_view-0.2.0 | spec/render_with_view/half_open_struct_spec.rb |