direct_hets_generator.rb revision ca2980490827de317392479bd34cef8b41de963d
01d27eab5fca2dcb8e883011f8be77ae6b78a11cTed Gouldrequire_relative 'base_generator.rb'
01d27eab5fca2dcb8e883011f8be77ae6b78a11cTed Gould
01d27eab5fca2dcb8e883011f8be77ae6b78a11cTed Gouldmodule FixturesGeneration
01d27eab5fca2dcb8e883011f8be77ae6b78a11cTed Gould class DirectHetsGenerator < BaseGenerator
01d27eab5fca2dcb8e883011f8be77ae6b78a11cTed Gould HETS_API_OPTIONS = '/auto'
c3a8ad9235ff81909bd472707550aef5b91daf7bjohanengelen HETS_BASE_IRI = 'http://localhost:8000'
c3a8ad9235ff81909bd472707550aef5b91daf7bjohanengelen
01d27eab5fca2dcb8e883011f8be77ae6b78a11cTed Gould def call
c3a8ad9235ff81909bd472707550aef5b91daf7bjohanengelen if outdated_cassettes.any?
01d27eab5fca2dcb8e883011f8be77ae6b78a11cTed Gould with_running_hets { super }
01d27eab5fca2dcb8e883011f8be77ae6b78a11cTed Gould end
01d27eab5fca2dcb8e883011f8be77ae6b78a11cTed Gould end
01d27eab5fca2dcb8e883011f8be77ae6b78a11cTed Gould
01d27eab5fca2dcb8e883011f8be77ae6b78a11cTed Gould protected
01d27eab5fca2dcb8e883011f8be77ae6b78a11cTed Gould
01d27eab5fca2dcb8e883011f8be77ae6b78a11cTed Gould def call_hets(file, command,
01d27eab5fca2dcb8e883011f8be77ae6b78a11cTed Gould method: :get,
01d27eab5fca2dcb8e883011f8be77ae6b78a11cTed Gould hets_api_options: HETS_API_OPTIONS,
01d27eab5fca2dcb8e883011f8be77ae6b78a11cTed Gould query_string: '',
01d27eab5fca2dcb8e883011f8be77ae6b78a11cTed Gould header: {},
01d27eab5fca2dcb8e883011f8be77ae6b78a11cTed Gould data: {})
01d27eab5fca2dcb8e883011f8be77ae6b78a11cTed Gould puts "Calling hets/#{command} on #{file.inspect}"
01d27eab5fca2dcb8e883011f8be77ae6b78a11cTed Gould escaped_iri = Rack::Utils.escape_path("file://#{absolute_filepath(file)}")
01d27eab5fca2dcb8e883011f8be77ae6b78a11cTed Gould hets_iri = "#{HETS_BASE_IRI}/#{command}/#{escaped_iri}"
01d27eab5fca2dcb8e883011f8be77ae6b78a11cTed Gould hets_iri << hets_api_options
01d27eab5fca2dcb8e883011f8be77ae6b78a11cTed Gould hets_iri << query_string
01d27eab5fca2dcb8e883011f8be77ae6b78a11cTed Gould
01d27eab5fca2dcb8e883011f8be77ae6b78a11cTed Gould FileUtils.rm_f(recorded_file(file))
01d27eab5fca2dcb8e883011f8be77ae6b78a11cTed Gould VCR.use_cassette(cassette_path_in_fixtures(file)) do
01d27eab5fca2dcb8e883011f8be77ae6b78a11cTed Gould send("http_request_with_#{method}", URI(hets_iri), header, data)
01d27eab5fca2dcb8e883011f8be77ae6b78a11cTed Gould end
01d27eab5fca2dcb8e883011f8be77ae6b78a11cTed Gould end
01d27eab5fca2dcb8e883011f8be77ae6b78a11cTed Gould
01d27eab5fca2dcb8e883011f8be77ae6b78a11cTed Gould def http_request_with_get(uri, _header, _data)
01d27eab5fca2dcb8e883011f8be77ae6b78a11cTed Gould Net::HTTP.get_response(uri)
29684a16b6c92bee28a94fdc2607bcc143950fa8johanengelen end
29684a16b6c92bee28a94fdc2607bcc143950fa8johanengelen
29684a16b6c92bee28a94fdc2607bcc143950fa8johanengelen def http_request_with_post(uri, header, data)
29684a16b6c92bee28a94fdc2607bcc143950fa8johanengelen Net::HTTP.start(uri.hostname, uri.port) do |http|
8001ba81cb851b38d86650a2fef5817facffb763johanengelen http.request_post(uri, data.to_json, header)
8001ba81cb851b38d86650a2fef5817facffb763johanengelen end
c3a8ad9235ff81909bd472707550aef5b91daf7bjohanengelen end
f02adf79d5fa69f8132c8bb27cdede593a9caba8Johan Engelen end
e6bdf746e2d9e775704a475a29cc1bb167ec271cjohanengelenend
29684a16b6c92bee28a94fdc2607bcc143950fa8johanengelen