Перечислите содержимое в переменную Ruby - PullRequest
0 голосов
/ 28 сентября 2018

Я хочу использовать binding.pry для доступа к объектам и переменным внутри объекта.Я попробовал это:

[1] pry(#<RSpec::ExampleGroups::WechatRequestBuilder::Submit>)> request_builder
=> #<WechatRequestBuilder:0x007fba3f1a7560 @env="test_env", @request_modifier=#<RequestModifier:0x007fba3f1a7510>>
[2] pry(#<RSpec::ExampleGroups::WechatRequestBuilder::Submit>)> WechatRequestBuilder:0x007fba3f1a7560
SyntaxError: unexpected tINTEGER, expecting tSTRING_CONTENT or tSTRING_DBEG or tSTRING_DVAR or tSTRING_END
[2] pry(#<RSpec::ExampleGroups::WechatRequestBuilder::Submit>)> 

Как мне составить список содержимого WechatRequestBuilder: 0x007fba3f1a7560 и просмотреть все переменные?

Что я должен создать expect оператор?Вероятно: expect(request_builder.WechatRequestBuilder).to receive(anything)

1 Ответ

0 голосов
/ 28 сентября 2018

request_builder - это уже экземпляр, который вы хотите изучить.Вот как:

▶ class Foo
▷   attr_reader :foo, :bar
▷   def initialize(foo:, bar:)
▷     @foo = foo
▷     @bar = bar
▷   end  
▷ end  
▶ foo = Foo.new(foo: 42, bar: :foo)
#⇒ #<Foo:0x00564c1db7bed8 @bar=:foo, @foo=42>
▶ foo.instance_variables
#⇒ [:@foo, :@bar]
▶ foo.instance_variables.map { |v| [v, foo.instance_variable_get(v)] }.to_h
#⇒ {:@foo=>42, :@bar=>:foo}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...