Skip to content

Instantly share code, notes, and snippets.

@misterkak
Created September 3, 2014 18:31
Show Gist options
  • Save misterkak/a87cf4c87584fc28c619 to your computer and use it in GitHub Desktop.
Save misterkak/a87cf4c87584fc28c619 to your computer and use it in GitHub Desktop.

Revisions

  1. misterkak created this gist Sep 3, 2014.
    304 changes: 304 additions & 0 deletions ibr-pry-fun
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,304 @@
    misterkak@misterkak-900X4D:~$ pry
    [1] pry(main)> print "enter your name: "
    enter your name: => nil
    [2] pry(main)> name = gets.chomp
    mike
    => "mike"
    [3] pry(main)> puts name
    mike
    => nil
    [4] pry(main)> quit
    misterkak@misterkak-900X4D:~$ clear
    misterkak@misterkak-900X4D:~/work/ruby$ ruby example.rb
    Enter your name: mike!!!
    Hello, mike!!!
    misterkak@misterkak-900X4D:~/work/ruby$ pry
    [1] pry(main)> def say_hi(name)
    [1] pry(main)* puts "Hi #{name}"
    [1] pry(main)* end
    => nil
    [2] pry(main)> say_hi "Mike"
    Hi Mike
    => nil
    [3] pry(main)> methods
    => [:to_s,
    :public,
    :private,
    :include,
    :pry,
    :__binding__,
    :pretty_print,
    :pretty_print_cycle,
    :pretty_print_instance_variables,
    :pretty_print_inspect,
    :nil?,
    :===,
    :=~,
    :!~,
    :eql?,
    :hash,
    :<=>,
    :class,
    :singleton_class,
    :clone,
    :dup,
    :initialize_dup,
    :initialize_clone,
    :taint,
    :tainted?,
    :untaint,
    :untrust,
    :untrusted?,
    [4] pry(main)> str = "string!"
    => "string!"
    [5] pry(main)> str2 = str!
    NoMethodError: undefined method `str!' for main:Object
    from (pry):7:in `__pry__'
    [6] pry(main)> str! = str
    SyntaxError: unexpected '='
    str! = str
    ^
    [6] pry(main)> str! == str
    NoMethodError: undefined method `str!' for main:Object
    from (pry):8:in `__pry__'
    [7] pry(main)> str
    => "string!"
    [8] pry(main)> str.inspect
    => "\"string!\""
    [9] pry(main)> arr = [1,2,3,8,4]
    => [1, 2, 3, 8, 4]
    [10] pry(main)> arr = arr.sort!
    => [1, 2, 3, 4, 8]
    [11] pry(main)> arr.methods
    => [:inspect,
    :to_s,
    :to_a,
    :to_ary,
    :frozen?,
    :==,
    :eql?,
    :hash,
    :[],
    :[]=,
    :at,
    :fetch,
    :first,
    :last,
    :concat,
    :<<,
    :push,
    :pop,
    :shift,
    :unshift,
    :insert,
    :each,
    :each_index,
    :reverse_each,
    :length,
    :size,
    :empty?,
    :find_index,
    :index,
    :rindex,
    :join,
    :reverse,
    :reverse!,
    :rotate,
    :rotate!,
    :sort,
    :sort!,
    :sort_by!,
    :collect,
    :collect!,
    :map,
    :map!,
    :select,
    :select!,
    :keep_if,
    :values_at,
    :delete,
    :delete_at,
    :delete_if,
    :reject,
    :reject!,
    :zip,
    :transpose,
    :replace,
    :clear,
    :fill,
    :include?,
    :<=>,
    :slice,
    :slice!,
    :assoc,
    :rassoc,
    :+,
    :*,
    :-,
    :&,
    :|,
    :uniq,
    :uniq!,
    :compact,
    :compact!,
    :flatten,
    :flatten!,
    :count,
    :shuffle!,
    :shuffle,
    :sample,
    :cycle,
    :permutation,
    :combination,
    :repeated_permutation,
    :repeated_combination,
    :product,
    :take,
    :take_while,
    :drop,
    :drop_while,
    :pack,
    :pretty_print,
    :pretty_print_cycle,
    :shelljoin,
    :entries,
    :sort_by,
    :grep,
    :find,
    :detect,
    :find_all,
    :flat_map,
    :collect_concat,
    :inject,
    :reduce,
    :partition,
    :group_by,
    :all?,
    :any?,
    :one?,
    :none?,
    :min,
    :max,
    :minmax,
    :min_by,
    :max_by,
    :minmax_by,
    :member?,
    :each_with_index,
    :each_entry,
    :each_slice,
    :each_cons,
    :each_with_object,
    :chunk,
    :slice_before,
    :pry,
    :__binding__,
    :pretty_print_instance_variables,
    :pretty_print_inspect,
    :nil?,
    :===,
    :=~,
    :!~,
    :class,
    :singleton_class,
    :clone,
    :dup,
    :initialize_dup,
    :initialize_clone,
    :taint,
    :tainted?,
    :untaint,
    :untrust,
    :untrusted?,
    :trust,
    :freeze,
    :methods,
    :singleton_methods,
    :protected_methods,
    :private_methods,
    :public_methods,
    :instance_variables,
    :instance_variable_get,
    :instance_variable_set,
    :instance_variable_defined?,
    :instance_of?,
    :kind_of?,
    :is_a?,
    :tap,
    :send,
    :public_send,
    :respond_to?,
    :respond_to_missing?,
    :extend,
    :display,
    :method,
    :public_method,
    :define_singleton_method,
    :object_id,
    :to_enum,
    :enum_for,
    :pretty_inspect,
    :equal?,
    :!,
    :!=,
    :instance_eval,
    :instance_exec,
    :__send__,
    :__id__]
    [12] pry(main)> str.each
    NoMethodError: undefined method `each' for "string!":String
    from (pry):14:in `__pry__'
    [13] pry(main)> arr.each
    => #<Enumerator: ...>
    [14] pry(main)> arr.each { |x| puts x }
    1
    2
    3
    4
    8
    => [1, 2, 3, 4, 8]
    [15] pry(main)> arr
    => [1, 2, 3, 4, 8]
    [16] pry(main)> arr.each
    => #<Enumerator: ...>
    [17] pry(main)> { |x| puts x }
    SyntaxError: unexpected tIDENTIFIER, expecting keyword_do or '{' or '('
    { |x| puts x }
    ^
    [17] pry(main)> arr.each
    => #<Enumerator: ...>
    [18] pry(main)> do {
    SyntaxError: unexpected keyword_do_block, expecting $end
    [18] pry(main)> names = { "mike" => 1, "rob" => 2, "kak" => "sur" }
    => {"mike"=>1, "rob"=>2, "kak"=>"sur"}
    [19] pry(main)> names.each { |x| puts x }
    mike
    1
    rob
    2
    kak
    sur
    => {"mike"=>1, "rob"=>2, "kak"=>"sur"}
    [20] pry(main)> names.mike
    NoMethodError: undefined method `mike' for {"mike"=>1, "rob"=>2, "kak"=>"sur"}:Hash
    from (pry):22:in `__pry__'
    [21] pry(main)> puts names["mike"]
    1
    => nil
    [22] pry(main)> names[:mike]
    => nil
    [23] pry(main)> Math.sqrt(1282)
    => 35.805027579936315
    [24] pry(main)> Time.now
    => 2014-09-03 11:23:03 -0700
    [25] pry(main)> Array.new(10, 'bee')
    => ["bee", "bee", "bee", "bee", "bee", "bee", "bee", "bee", "bee", "bee"]
    [26] pry(main)> include Math
    => Object
    [27] pry(main)> sqrt (64)
    => 8.0
    [28] pry(main)> sqrt 64
    => 8.0
    [29] pry(main)> names.inspect
    => "{\"mike\"=>1, \"rob\"=>2, \"kak\"=>\"sur\"}"
    [30] pry(main)>