Описание тега openstruct

OpenStruct - это структура данных Ruby, похожая на Hash.
1 ответ

Проблема OpenStruct с Ruby 2.3.1

В Ruby 2.1.5 и 2.2.4 создание нового Collector возвращает правильный результат. require 'ostruct' module ResourceResponses class Collector < OpenStruct def initialize super @table = Hash.new {|h,k| h[k] = Response.new } end end class Response att…
01 сен '16 в 18:50
0 ответов

Есть ли в OpenStruct поддержка вложенности? Если да, как я могу создать XML с помощью Nokogiri? Если нет, то можно ли это сделать с помощью Nokogiri и JSon?

Более раннее решение, предоставленное @Jamie, кажется, работает нормально только для нескольких сценариев. Решение require 'nokogiri' require 'ostruct' xml = <<-'XML' <Catalog> <Interface></Interface> <Dialog></Dialo…
24 июн '12 в 14:15
2 ответа

Переопределяющий метод получения OpenStruct для его печати в виде хэша

ЦЕЛЬ: Значения объекта OpenStruct должны быть напечатаны как хеш, а не как объект ВОЗМОЖНОЕ РЕШЕНИЕ: переопределить метод получения класса OpenStruct MyOpenStruct Переопределение new, to_h а также [] из OpenStruct, class MyOpenStruct < OpenStruct…
28 окт '15 в 18:10
0 ответов

Разобрать строку JSON для объекта с атрибутами

В настоящее время мое приложение анализирует JSON следующим образом: OpenStruct.new(JSON.parse(json_string)) но есть проблемы с этим подходом: JSON допускает массивы корневого уровня, такие как [{id: 1, name: "first"}, {id: 2, name: "second"}] и Ope…
21 авг '14 в 11:33
1 ответ

Как обновить значение OpenStruct с условием

Как я могу обновить значения OpenStruct когда условия выполнены? Я думал так: o = OpenStruct.new(a: 1, b: 2) o.each_pair{|k,v| v = 3 if v.even? } Но этот код не работает. Я мог бы обновить по этому коду, но это довольно сложно читать. OpenStruct.new…
07 авг '16 в 03:29
3 ответа

Уникальные объекты в сгруппированном хэше

У меня есть хеш, созданный .group_by метод, со строками в качестве ключей и объектами AR в качестве значений. И я хочу избавиться от объектов AR с дублированным полем (другие поля могут или не могут быть одинаковыми). Чтобы прояснить вопрос, я созда…
09 янв '15 в 08:44
2 ответа

Преобразование OpenStruct/Hash в XML

У меня есть коллекция элементов OpenStruct, с помощью которых мне нужно построить XML с помощью Nokogiri. collection = [ OpenStruct.new(:catalogStoreNumber => '657758', :catalogStoreId => 'CTH6536', :catalogStoreLocation => 'UnitedStates', …
25 июн '12 в 13:09
2 ответа

Создать вложенный объект из YAML для доступа к атрибутам через вызовы методов в Ruby

Я совершенно новичок в рубине. Я должен проанализировать файл YAML для создания объекта YAML файл projects: - name: Project1 developers: - name: Dev1 certifications: - name: cert1 - name: Dev2 certifications: - name: cert2 - name: Project2 developer…
14 фев '15 в 23:49
1 ответ

Ruby и OpenStruct разрешают доступ только к некоторым данным

У меня есть массив структур данных OpenStruct. Но когда я пытаюсь получить к ним доступ, я могу получить доступ только к country array = [ #<OpenStruct country="United States", visits="202", visitBounceRate="59.900990099009896", avgTimeOnSite="15…
27 ноя '14 в 14:45
2 ответа

Когда я должен использовать OpenStruct вместо Hash?

Мне нравится "определение произвольных атрибутов", и я думаю, что OpenStruct в ruby ​​иногда чувствует себя чище, чем использование хеша, но мне любопытно, есть ли другие конкретные преимущества или варианты использования, которые делают OpenStruct …
20 янв '13 в 02:46
1 ответ

Определение атрибута OpenStruct с тем же именем, что и у метода экземпляра

Я сталкиваюсь с проблемой при попытке создать открытую структуру с атрибутом, имя которого совпадает с именем одного из методов экземпляра OpenStruct. В частности, я хотел бы создать открытую структуру, которая имеет атрибут capture, Я использую это…
24 янв '17 в 00:45
1 ответ

Как я могу конвертировать вложенный YAML во вложенные массивы и OpenStructs в Ruby

Как мне преобразовать серию вложенных хешей (вложенных в произвольную глубину) в серию вложенных OpenStructs? Я загружаю в большой файл YAML, и я не наслаждаюсь accessing['everything']['like']['this'], Я нашел несколько частичных решений с помощью G…
07 июн '13 в 18:39
1 ответ

Передача Gmail Connection в sidekiq

require gmail gmail = Gmail.connect("testemail@gmail.com", "password") SidekiqWorker.perform_async(gmail, item.user_id) gmail.logout() Я хочу передать объект в sidekiq, это клиентский объект gmail, и я не хочу создавать этот объект в методе execute,…
27 янв '16 в 06:32
1 ответ

Как OpenStruct хранится в сессии

У меня есть контроллер. В этом контроллере я получаю объект OpenStruct и хочу сохранить его в сеансе приложения. Следующий код работает нормально: session[:info] = OpenStruct.new(first_field: 1, second_field: 'two') p session[:info] сразу после этой…
08 дек '15 в 12:14
1 ответ

Построить вложенный объект OpenStruct

Я должен подражать ответу API Google и создать двухуровневую структуру данных, которую можно просмотреть . как это: => user.names.first_name боб Есть ли более умный / лучший способ, чем этот: user = OpenStruct.new(names: OpenStruct.new(first_name…
24 ноя '17 в 22:37
3 ответа

Как преобразовать рекурсивный / вложенный объект OpenStruct в Hash

У меня есть объект OpenStruct, и мне нужно преобразовать его в данные JSON. Образец хэша (от помощника RSPEC): def test_order { "id": 505311428702, "email": "test@gmail.com", "closed_at": "", "discount_codes": { "id": 507328175, "text": "test" } } e…
22 авг '18 в 06:36
2 ответа

Использование marshal_load с OpenStruct

Как мне использовать утилиту OpenStruct marshal_load? Кажется, он не работает как задумано. Документы приводят этот пример, но он не работает. require 'ostruct' event = OpenStruct.new hash = { 'time' => Time.now, 'title' => 'Birthday Party' } …
15 янв '13 в 04:50
0 ответов

Проверять наличие / действительность ключа / значения в Ruby Openstruct

Существует ли стандартный способ проверки ключа / значений (наличие ключа, является ли оно допустимым значением) в Ruby Openstruct? В чистом Ruby нет Rails/Sinatra, но аналогично валидации в ActiveRecord или ActiveModel::Validations. Например, чтобы…
25 дек '14 в 10:46
3 ответа

Ruby: Можете ли вы определить, вызывается ли у объекта один из его методов?

Я не уверен, что задаю правильный вопрос. Возможно, я неправильно подхожу к проблеме, но в основном у меня такая ситуация: obj = get_user(params) obj.profile => {:name => "John D", :age => 40, :sex => "male"} #Has to be of class Hash obj…
20 фев '15 в 05:58
1 ответ

Как программно добавить атрибуты к объектам?

У меня есть массив хэшей, который я бы предпочел превратить в массив объектов с атрибутами, программно добавленными к этим объектам. Я сейчас попробую obj = OpenStruct.new resulthash["users"].collect { |u| u.each do |k,v| obj.send("#{k}=#{v}"); end …
03 мар '12 в 13:40