Sha256: d8bfc9b252ab321c484b13bc5b41b2e7698aedea4ef1340c1c2ce929880aaa53
Contents?: true
Size: 994 Bytes
Versions: 1
Compression:
Stored size: 994 Bytes
Contents
Values is a tiny library for creating value objects in ruby. These mostly look like classes created using Struct, but fix two problems with those: Struct constructors can take less than the default number of arguments and set other fields as nil: Point = Struct.new(:x,:y) Point.new(1) => #<struct Point x=1, y=nil> Structs are also mutable: Point = Struct.new(:x,:y) p = Point.new(1,2) p.x = 2 p.x => 2 Values fixes both of these: Point = Value.new(:x, :y) Point.new(1) => ArgumentError: wrong number of arguments, 1 for 2 from /Users/tcrayford/Projects/ruby/values/lib/values.rb:7:in `block (2 levels) in new from (irb):5:in new from (irb):5 from /usr/local/bin/irb:12:in `<main> p = Point.new(1,2) p.x = 1 => NoMethodError: undefined method x= for #<Point:0x00000100943788 @x=0, @y=1> from (irb):6 from /usr/local/bin/irb:12:in <main> Value does NOT have all the features of Struct (nor is it meant to).
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
values-1.2.1 | README.md |