{"push_id":874296941,"size":1,"distinct_size":1,"ref":"refs/heads/ruby-193-p194-platform-yaml-deserialize","head":"e661dec9a97fd030d34f66685c14ce13273f5a80","before":"af0709afa7fc601d7a133bc08c402831e696cc15","commits":[{"sha":"e661dec9a97fd030d34f66685c14ce13273f5a80","author":{"email":"46f1a0bd5592a2f9244ca321b129902a06b53e03@somethingsinistral.net","name":"Adrien Thebo"},"message":"Fix YAML deserialization for Beaker::Platform\n\nThe version of Psych shipped with Ruby 1.9.3-p194 did not support\nsubclasses of String that added additional ivars to the String class.\nThe Beaker::Platform class does just that - subclassing String and\nadditional ivars - which meant that round tripping a Beaker::Platform\nobject would create an object with improperly initialized instance\nvariables. Psych commit e2fcf9af9e95535401f816bc893839b9ad743a9e\nresolved that issue but we still use platforms that have the old version\nof psych.\n\nTo resolve this issue, this commit implements a custom #init_with method\nthat explicitly sets all instance variables on the Beaker object that\nwere defined inside of the YAML map instance, and then reconstructs the\nstring value based on those fields.","distinct":true,"url":"https://api.github.com/repos/adrienthebo/beaker/commits/e661dec9a97fd030d34f66685c14ce13273f5a80"}]}