class AdsCommon::Build::SavonAbstractGenerator

Public Class Methods

new(args) click to toggle source
# File lib/ads_common/build/savon_abstract_generator.rb, line 26
def initialize(args)
  if self.class() == AdsCommon::Build::SavonAbstractGenerator
    raise NoMethodError, "Tried to instantiate an abstract class"
  end
  @require_path = args[:require_path]
  @api_name = args[:api_name]
  @version = args[:version]
  @service_name = args[:service_name]
  @namespace = args[:namespace]
  prepare_template_strings()
end

Public Instance Methods

generate_code() click to toggle source
# File lib/ads_common/build/savon_abstract_generator.rb, line 38
def generate_code()
  code = ERB.new(get_code_template(), 0, '%<>')
  return remove_lines_with_blanks_only(code.result(binding))
end
get_code_template() click to toggle source
# File lib/ads_common/build/savon_abstract_generator.rb, line 43
def get_code_template()
  raise NotImplementedError
end

Private Instance Methods

prepare_template_strings() click to toggle source
# File lib/ads_common/build/savon_abstract_generator.rb, line 49
def prepare_template_strings()
  @generator_stamp = "Code generated by AdsCommon library %s on %s." %
      [AdsCommon::ApiConfig::CLIENT_LIB_VERSION,
       Time.now.strftime("%Y-%m-%d %H:%M:%S")]
  @modules_open_string = 'module ' +
      [@api_name, @version.to_s.upcase, @service_name].join('; module ')
  @modules_close_string = 'end; end; end'
  @year = Time.now.year
end
remove_lines_with_blanks_only(text) click to toggle source
# File lib/ads_common/build/savon_abstract_generator.rb, line 59
def remove_lines_with_blanks_only(text)
  return text.gsub(/\n\ +$/, '')
end