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 = {