Возвращает анонимный объект из метода в ruby

#ruby

#ruby

Вопрос:

Как я могу вернуть анонимный объект из метода в ruby.?

В следующем коде я возвращаю хэш.

   def process
    source = helper

    # I am able to get the value as an hash
    puts source[:url]
    puts source[:params]

    # But I wonder if there is a way to get it as an object, so that I can use the dot notation
    # puts source.url
    # puts source.params
  end

  def helper
    url = ''
    params = ''
    return {url: url, params: params}
  end
  

Есть мысли.?

Комментарии:

1. Ваш вопрос неясен. У объектов в Ruby нет имен, они всегда анонимны. В вашем коде вы возвращаете анонимный объект, а именно Hash .

Ответ №1:

Openstruct?

 require 'ostruct'

def helper
  OpenStruct.new(url: '', params: '')    
end
  

Комментарии:

1. Спасибо.! Это то, что я искал.

Ответ №2:

Попробуйте это:

 def helper
  Class.new do
    def url
      ''
    end
    def params
      ''
    end
  end.new
end