Created
January 9, 2018 03:41
-
-
Save futureperfect/066c6c320c9d0930fe648990a86ba4f4 to your computer and use it in GitHub Desktop.
Revisions
-
futureperfect revised this gist
Jan 9, 2018 . No changes.There are no files selected for viewing
-
futureperfect created this gist
Jan 9, 2018 .There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -0,0 +1,24 @@ # What methods does a class implement? > Time.methods => [:!, :!=, :!~, :<, :<=, :<=>, :==, :===, :=~, :>, :>=, :__id__, :__send__, :allocate, :ancestors, :at, :autoload, :autoload?, :class, :class_eval, :class_exec, :class_variable_defined?, :class_variable_get, :class_variable_set, :class_variables, :clone, :const_defined?, :const_get, :const_missing, :const_set, :constants, :define_singleton_method, :deprecate_constant, :display, :dup, :enum_for, :eql?, :equal?, :extend, :freeze, :frozen?, :gm, :hash, :include, :include?, :included_modules, :inspect, :instance_eval, :instance_exec, :instance_method, :instance_methods, :instance_of?, :instance_variable_defined?, :instance_variable_get, :instance_variable_set, :instance_variables, :is_a?, :itself, :kind_of?, :local, :method, :method_defined?, :methods, :mktime, :module_eval, :module_exec, :name, :new, :nil?, :now, :object_id, :prepend, :private_class_method, :private_constant, :private_instance_methods, :private_method_defined?, :private_methods, :protected_instance_methods, :protected_method_defined?, :protected_methods, :public_class_method, :public_constant, :public_instance_method, :public_instance_methods, :public_method, :public_method_defined?, :public_methods, :public_send, :remove_class_variable, :remove_instance_variable, :respond_to?, :send, :singleton_class, :singleton_class?, :singleton_method, :singleton_methods, :superclass, :taint, :tainted?, :tap, :to_enum, :to_s, :trust, :untaint, :untrust, :untrusted?, :utc] # That's a ton of stuff! Most of it doesn't look to be time-related. Most of it looks like things that we get from `Object`. # What if we want to see the things that Time implements that don't come from `Object`? > Time.methods - Object.methods => [:at, :now, :utc, :gm, :local, :mktime] # That's a much more reasonable to read. # Finally, what if I'm looking for a method that has a name that I *kind of* remember, but I'm not quite sure what it was > a = [[1, 2, 3]] => [[1, 2, 3]] # Didn't arrays have a thing that let me make them flat (i.e. not nested?) > a.methods.grep /flat/ => [:flatten, :flatten!, :flat_map] # Hmm... `:flatten` looks like the one I was looking for. > a.flatten => [1, 2, 3]