stdlib/builtin/binding.rbs in rbs-0.13.1 vs stdlib/builtin/binding.rbs in rbs-0.14.0

- old
+ new

@@ -2,176 +2,176 @@ # place in the code and retain this context for future use. The variables, # methods, value of `self`, and possibly an iterator block that can be accessed # in this context are all retained. Binding objects can be created using # Kernel#binding, and are made available to the callback of # Kernel#set_trace_func and instances of TracePoint. -# +# # These binding objects can be passed as the second argument of the Kernel#eval # method, establishing an environment for the evaluation. -# +# # class Demo # def initialize(n) # @secret = n # end # def get_binding # binding # end # end -# +# # k1 = Demo.new(99) # b1 = k1.get_binding # k2 = Demo.new(-3) # b2 = k2.get_binding -# +# # eval("@secret", b1) #=> 99 # eval("@secret", b2) #=> -3 # eval("@secret") #=> nil -# +# # Binding objects have no class-specific methods. -# +# class Binding public # Evaluates the Ruby expression(s) in *string*, in the *binding*'s context. If # the optional *filename* and *lineno* parameters are present, they will be used # when reporting syntax errors. - # + # # def get_binding(param) # binding # end # b = get_binding("hello") # b.eval("param") #=> "hello" - # + # def eval: (String arg0, ?String filename, ?Integer lineno) -> untyped # Opens an IRB session where `binding.irb` is called which allows for # interactive debugging. You can call any methods or variables available in the # current scope, and mutate state if you need to. - # + # # Given a Ruby file called `potato.rb` containing the following code: - # + # # class Potato # def initialize # @cooked = false # binding.irb # puts "Cooked potato: #{@cooked}" # end # end - # + # # Potato.new - # + # # Running `ruby potato.rb` will open an IRB session where `binding.irb` is # called, and you will see the following: - # + # # $ ruby potato.rb - # + # # From: potato.rb @ line 4 : - # + # # 1: class Potato # 2: def initialize # 3: @cooked = false # => 4: binding.irb # 5: puts "Cooked potato: #{@cooked}" # 6: end # 7: end # 8: # 9: Potato.new - # + # # irb(#<Potato:0x00007feea1916670>):001:0> - # + # # You can type any valid Ruby code and it will be evaluated in the current # context. This allows you to debug without having to run your code repeatedly: - # + # # irb(#<Potato:0x00007feea1916670>):001:0> @cooked # => false # irb(#<Potato:0x00007feea1916670>):002:0> self.class # => Potato # irb(#<Potato:0x00007feea1916670>):003:0> caller.first # => ".../2.5.1/lib/ruby/2.5.0/irb/workspace.rb:85:in `eval'" # irb(#<Potato:0x00007feea1916670>):004:0> @cooked = true # => true - # + # # You can exit the IRB session with the `exit` command. Note that exiting will # resume execution where `binding.irb` had paused it, as you can see from the # output printed to standard output in this example: - # + # # irb(#<Potato:0x00007feea1916670>):005:0> exit # Cooked potato: true - # + # # See IRB@IRB+Usage for more information. - # + # def irb: () -> void # Returns `true` if a local variable `symbol` exists. - # + # # def foo # a = 1 # binding.local_variable_defined?(:a) #=> true # binding.local_variable_defined?(:b) #=> false # end - # + # # This method is the short version of the following code: - # + # # binding.eval("defined?(#{symbol}) == 'local-variable'") - # + # def local_variable_defined?: (String | Symbol symbol) -> bool # Returns the value of the local variable `symbol`. - # + # # def foo # a = 1 # binding.local_variable_get(:a) #=> 1 # binding.local_variable_get(:b) #=> NameError # end - # + # # This method is the short version of the following code: - # + # # binding.eval("#{symbol}") - # + # def local_variable_get: (String | Symbol symbol) -> untyped # Set local variable named `symbol` as `obj`. - # + # # def foo # a = 1 # bind = binding # bind.local_variable_set(:a, 2) # set existing local variable `a' # bind.local_variable_set(:b, 3) # create new local variable `b' # # `b' exists only in binding - # + # # p bind.local_variable_get(:a) #=> 2 # p bind.local_variable_get(:b) #=> 3 # p a #=> 2 # p b #=> NameError # end - # + # # This method behaves similarly to the following code: - # + # # binding.eval("#{symbol} = #{obj}") - # + # # if `obj` can be dumped in Ruby code. - # + # def local_variable_set: [U] (String | Symbol symbol, U obj) -> U # Returns the names of the binding's local variables as symbols. - # + # # def foo # a = 1 # 2.times do |n| # binding.local_variables #=> [:a, :n] # end # end - # + # # This method is the short version of the following code: - # + # # binding.eval("local_variables") - # + # def local_variables: () -> Array[Symbol] # Returns the bound receiver of the binding object. - # + # def receiver: () -> untyped # Returns the Ruby source filename and line number of the binding object. - # + # def source_location: () -> [ String, Integer ] end