module LibMmini

Constants

BACKEND
BACKEND_BASE
HTTP

Public Instance Methods

parse_args(argv) click to toggle source
# File lib/lib_mmini.rb, line 20
def parse_args(argv)
  options = OpenStruct.new
  options.url = nil

  OptionParser.new do |opts|
    opts.on_tail('-v', '--version', 'Show version') do
      puts LibVersion::VERSION
      exit
    end
  end.parse!

  if argv.length != 1
    puts 'Only single argument supported'
    exit
  end

  options[:url] = argv.first
  options.freeze
  options
end
post_url(url) click to toggle source
# File lib/lib_mmini.rb, line 46
def post_url(url)
  header = { 'Content-Type': 'application/json' }
  body = {
    url: url
  }

  req = Net::HTTP::Post.new(BACKEND.request_uri, header)
  req.body = body.to_json

  HTTP.request(req)
end
run(argv, post_url_fn) click to toggle source
# File lib/lib_mmini.rb, line 58
def run(argv, post_url_fn)
  args = parse_args(argv)
  url = args.url

  unless valid_url?(url)
    puts 'URL is invalid: ' + url
    exit!
  end

  response = post_url_fn.call(url)

  if response.code == '200'
    id = response.body
    success = true
    [success, BACKEND_BASE.to_s + '/' + id]
  else
    success = false
    [success, '']
  end
end
valid_url?(string) click to toggle source
# File lib/lib_mmini.rb, line 41
def valid_url?(string)
  hits = string =~ /\A#{URI::DEFAULT_PARSER.make_regexp}\z/
  !hits.nil? && hits.zero?
end