Sha256: cbb0556085da4018010107780c8bafc6f7bb7b749bb8ebd9e7066c3878e2c674

Contents?: true

Size: 1.19 KB

Versions: 3

Compression:

Stored size: 1.19 KB

Contents

require 'yaml'
require 'mechanize'
require 'parallel'
require 'pg'

require 'gis_scraper/version'
require 'gis_scraper/feature_scraper'
require 'gis_scraper/layer'

# stackoverflow.com/questions/6233124/where-to-place-access-config-file-in-gem
module GisScraper

  @config = {threads: 8, output_path: '~/Desktop',
    host: 'localhost', port: 5432, dbname: 'postgres', user: 'postgres', password: nil,
    srs: nil}
  @valid_keys = @config.keys

  def self.configure(opts = {})
    opts.each { |k,v| @config[k.to_sym] = v if @valid_keys.include? k.to_sym }
  end

  def self.configure_with(path_to_yaml_file)
    begin
      config = YAML::load(IO.read(path_to_yaml_file))
    rescue Errno::ENOENT
      puts "YAML configuration file couldn't be found. Using defaults"
      return
    rescue Psych::SyntaxError
      puts 'YAML configuration file contains invalid syntax. Using defaults'
      return
    end

    configure(config)
  end

  def self.config
    @config
  end

  class JSONParser < Mechanize::File # shared by FeatureScraper & Layer
    attr_reader :json

    def initialize(uri=nil, response=nil, body=nil, code=nil)
      super(uri, response, body, code)
      @json = JSON.parse(body)
    end
  end

end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
gis_scraper-0.1.9.pre lib/gis_scraper.rb
gis_scraper-0.1.8.pre lib/gis_scraper.rb
gis_scraper-0.1.7.pre lib/gis_scraper.rb