Sha256: 4f55c8dcfbd22b3892bb446649ef526146b00cb93c20ee2ce9d6d6e674f1842b

Contents?: true

Size: 1.29 KB

Versions: 29

Compression:

Stored size: 1.29 KB

Contents

require "json"
require "open-uri"
require "yaml"

class Lono::Importer
  module Download
    def download_template(source, dest_path)
      template =  read_source(source)

      result = if json?(template)
                  # abusing YAML.dump(YAML.load()) to convert json to yaml
                  YAML.dump(YAML.load(template))
                else
                  template # template is already in YAML format
                end

      folder = File.dirname(dest_path)
      FileUtils.mkdir_p(folder) unless File.exist?(folder)
      IO.write(dest_path, result)
      dest_path
    end

    def read_source(source)
      open(source).read
    rescue OpenURI::HTTPError, SocketError, Errno::ENOENT
      puts "ERROR: Unable to read source template provided: #{source}".color(:red)
      e = $!
      puts "#{e.class}: #{e.message}"
      puts "Please double check the source provided."
      exit 1
    rescue Exception => e
      puts "ERROR: Unable to read source template provided: #{source}".color(:red)
      puts "General Exception Error:"
      puts "#{e.class}: #{e.message}"
      puts "Please double check the source provided."
      exit 1
    end

    def json?(text)
      JSON.load(text)
      true # if reach here than it's just
    rescue JSON::ParserError
      false # not json
    end
  end
end

Version data entries

29 entries across 29 versions & 1 rubygems

Version Path
lono-7.5.2 lib/lono/importer/download.rb
lono-7.5.1 lib/lono/importer/download.rb
lono-7.5.0 lib/lono/importer/download.rb
lono-7.4.11 lib/lono/importer/download.rb
lono-7.4.10 lib/lono/importer/download.rb
lono-7.4.9 lib/lono/importer/download.rb
lono-7.4.8 lib/lono/importer/download.rb
lono-7.4.7 lib/lono/importer/download.rb
lono-7.4.6 lib/lono/importer/download.rb
lono-7.4.5 lib/lono/importer/download.rb
lono-7.4.4 lib/lono/importer/download.rb
lono-7.4.3 lib/lono/importer/download.rb
lono-7.4.2 lib/lono/importer/download.rb
lono-7.4.1 lib/lono/importer/download.rb
lono-7.4.0 lib/lono/importer/download.rb
lono-7.3.2 lib/lono/importer/download.rb
lono-7.3.1 lib/lono/importer/download.rb
lono-7.3.0 lib/lono/importer/download.rb
lono-7.2.3 lib/lono/importer/download.rb
lono-7.2.2 lib/lono/importer/download.rb