examples/client_metadata.rb in rets4r-0.8.5 vs examples/client_metadata.rb in rets4r-1.1.18

- old
+ new

@@ -1,42 +1,42 @@ -#!/usr/bin/ruby +#!/usr/bin/env ruby # # This is an example of how to use the RETS client to login to a server and retrieve metadata. It # also makes use of passing blocks to client methods and demonstrates how to set the output format. # # You will need to set the necessary variables below. # ############################################################################################# # Settings -rets_url = 'http://server.com/my/rets/url' -username = 'username' -password = 'password' - +require 'yaml' +require 'active_support/core_ext/hash' +settings_file = File.expand_path(File.join(File.dirname(__FILE__), "settings.yml")) +env = ENV['LISTING_ENV'] || 'development' +settings = YAML.load_file(settings_file)[env].symbolize_keys + ############################################################################################# $:.unshift 'lib' require 'rets4r' -RETS4R::Client.new(rets_url) do |client| - client.login(username, password) do |login_result| - if login_result.success? - puts "Logged in successfully!" - - # We want the raw metadata, so we need to set the output to raw XML. - client.set_output RETS4R::Client::OUTPUT_RAW - metadata = '' - - begin - metadata = client.get_metadata - rescue - puts "Unable to get metadata: '#{$!}'" - end - - File.open('metadata.xml', 'w') do |file| - file.write metadata - end - else - puts "Unable to login: '#{login_result.reply_text}'." - end - end -end \ No newline at end of file +RETS4R::Client.new(settings[:url]) do |client| + client.login(settings[:username], settings[:password]) do |login_result| + if login_result.success? + puts "Logged in successfully!" + + metadata = '' + + begin + metadata = client.get_metadata(*ARGV) + rescue + puts "Unable to get metadata: '#{$!}'" + end + + File.open('metadata.xml', 'w') do |file| + file.write metadata + end + else + puts "Unable to login: '#{login_result.reply_text}'." + end + end +end