Class: Droonga::CatalogLoader
- Inherits:
-
Object
- Object
- Droonga::CatalogLoader
- Defined in:
- lib/droonga/catalog_loader.rb
Instance Method Summary collapse
-
#initialize(path) ⇒ CatalogLoader
constructor
A new instance of CatalogLoader.
- #load ⇒ Object
Constructor Details
#initialize(path) ⇒ CatalogLoader
Returns a new instance of CatalogLoader.
23 24 25 |
# File 'lib/droonga/catalog_loader.rb', line 23 def initialize(path) @path = path end |
Instance Method Details
#load ⇒ Object
27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 |
# File 'lib/droonga/catalog_loader.rb', line 27 def load data = nil begin data = File.open(@path) do |file| JSON.parse(file.read) end rescue Errno::ENOENT => error raise Error.new("Missing catalog file #{@path}") rescue JSON::ParserError => error raise Error.new("Syntax error in #{@path}:\n#{error.to_s}") end unless data.is_a?(Hash) raise Error.new("Root element of catalog must be an object in #{@path}") end version = data["version"] case version when 1 Catalog::Version1.new(data, @path) when 2 Catalog::Version2.new(data, @path) when nil raise Error.new("Catalog version must be specified in #{@path}") else raise Error.new("Unsupported catalog version <#{version}> is specified in #{@path}") end end |