Sha256: 9b108045b935e18b31ce586b67645b6d9cf4a0802eb577b5e5cca0cf12e706db

Contents?: true

Size: 1.47 KB

Versions: 18

Compression:

Stored size: 1.47 KB

Contents

require "thor"
require 'active_support/all'

require_relative 'api'
require_relative 'utils'
require_relative 'base'

module Cirneco
  class Media < Thor
    include Cirneco::Base
    include Cirneco::Api
    include Cirneco::Utils

    desc "get DOI", "get media for DOI"
    method_option :username, :default => ENV['MDS_USERNAME']
    method_option :password, :default => ENV['MDS_PASSWORD']
    method_option :sandbox, :default => ENV['SANDBOX']
    def get(doi)
      response = get_media(doi, options.merge(raw: true))

      if response.body["errors"]
        puts "Error: " + response.body["errors"].first.fetch("title", "An error occured")
      else
        filename  = doi.split("/", 2).last + ".txt"
        content = response.body["data"]
        IO.write(filename, content)
        puts "Media for #{doi} saved as #{filename}"
      end
    end

    desc "post DOI", "post media for DOI"
    method_option :username, :default => ENV['MDS_USERNAME']
    method_option :password, :default => ENV['MDS_PASSWORD']
    method_option :sandbox, :default => ENV['SANDBOX']
    method_option :file, :aliases => '-f'
    def post(doi)
      filename  = options[:file] || doi.split("/", 2).last + ".txt"
      data = IO.read(filename)
      response = post_media(doi, data, options.merge(raw: true))

      if response.body["errors"]
        puts "Error: " + response.body["errors"].first.fetch("title", "An error occured")
      else
        puts response.body["data"]
      end
    end


  end
end

Version data entries

18 entries across 18 versions & 1 rubygems

Version Path
cirneco-0.7 lib/cirneco/media.rb
cirneco-0.6.11 lib/cirneco/media.rb
cirneco-0.6.10 lib/cirneco/media.rb
cirneco-0.6.9 lib/cirneco/media.rb
cirneco-0.6.8 lib/cirneco/media.rb
cirneco-0.6.7 lib/cirneco/media.rb
cirneco-0.6.6 lib/cirneco/media.rb
cirneco-0.6.4 lib/cirneco/media.rb
cirneco-0.6.3 lib/cirneco/media.rb
cirneco-0.6.2 lib/cirneco/media.rb
cirneco-0.6.1 lib/cirneco/media.rb
cirneco-0.6 lib/cirneco/media.rb
cirneco-0.5.8 lib/cirneco/media.rb
cirneco-0.5.7 lib/cirneco/media.rb
cirneco-0.5.6 lib/cirneco/media.rb
cirneco-0.5.5 lib/cirneco/media.rb
cirneco-0.5.4 lib/cirneco/media.rb
cirneco-0.5.3 lib/cirneco/media.rb