The Crystal programming language | http://crystal-lang.org | Fund Crystal's development: http://is.gd/X7PRtI | Docs: http://crystal-lang.org/docs/ | API: http://crystal-lang.org/api/
DB::Serializable
only handles creating objects from query results & not creating table schema or formatting query strings to insert data?
JSON::Serializable
except if it for some reason only gave you from_json
but not to_json
?
x
, @x
, or self.x
to refer to an instance variable in an instance method? I seem to be able to use all 3 with the same effect.
@x
is the only "safe" thing that will always resolve to an ivar, even if there is another local var or method named x...so is there no reason to use the other 2, other than to make things less explicit and confusing? :)
self.x
is if you have customer logic in the getter and/or are using a lazily initialized ivar
var x = [1, 2, 3, 4, 5]
var y = [6, 7, 8, 9, 10]
x[1..2] = y[1..2] # x => [1, 7, 8, 4, 5]
sign
and fract
:sign(42.0) # 1.0
sign (-42.0) # -1.0
sign (0.0) # 0.0
fract(42.123) # 0.123
value - (value.floor)
probably?
clone
or dup
? In this case there is nothing to traverse for a deep copy, but I see some projects use clone
in this case, while others use dup
, so I'm not sure if there is a consensus.
scope.yml
having the properties roots
, paths
, etc. in a Scope
class, I'd like to avoid flow control to check the filters as scope.roots
, scope.paths
, to something like scope.filters
having their own class