lib/kindai/util/database.rb in kindai-1.7.2 vs lib/kindai/util/database.rb in kindai-1.7.4

- old
+ new

@@ -1,21 +1,24 @@ # -*- coding: utf-8 -*- require 'open-uri' require 'net/http' require 'json' -require 'ostruct' module Kindai::Util::Database ENDPOINT = URI.parse 'http://gigaschema.appspot.com/hitode909/kindai.json' # XXX: deprecated, page 1 only def self.items @items ||= JSON.parse(Kindai::Util.fetch_uri(ENDPOINT))['data'].map{|item| begin hash = JSON.parse(item['value']) self.validate(hash) - OpenStruct.new(hash) + + hash.each_pair.inject({ }){ |obj, pair| + obj[pair.first.to_sym] = pair.last + obj + } rescue => error Kindai::Util.logger.warn error nil end }.compact @@ -25,20 +28,23 @@ path = ENDPOINT + "?group=#{book.key}" JSON.parse(Kindai::Util.fetch_uri(path))['data'].map{|item| begin hash = JSON.parse(item['value']) self.validate(hash) - OpenStruct.new(hash) + hash.each_pair.inject({ }){ |obj, pair| + obj[pair.first.to_sym] = pair.last + obj + } rescue => error Kindai::Util.logger.warn error nil end }.compact.first end def self.save_item(book, info) previous_item = self.item_for_book(book) - if previous_item and previous_item.version >= Kindai::VERSION + if previous_item and previous_item[:version] >= Kindai::VERSION Kindai::Util.logger.warn "Database has newer version of #{book.title}. To save, delete it first." return false end send_data = {