Class: Rfm::Factory::ScriptFactory

Inherits:
CaseInsensitiveHash show all
Defined in:
lib/rfm/utilities/factory.rb

Overview

:nodoc: all

Instance Method Summary collapse

Methods inherited from CaseInsensitiveHash

#[]=

Methods inherited from Hash

#rfm_filter, #rfm_only, #to_cih

Constructor Details

#initialize(server, database) ⇒ ScriptFactory

Returns a new instance of ScriptFactory.



128
129
130
131
132
# File 'lib/rfm/utilities/factory.rb', line 128

def initialize(server, database)
  @server = server
  @database = database
  @loaded = false
end

Instance Method Details

#[](script_name) ⇒ Object



134
135
136
# File 'lib/rfm/utilities/factory.rb', line 134

def [](script_name)
  super or (self[script_name] = Rfm::Metadata::Script.new(script_name, @database))
end

#allObject



138
139
140
141
142
143
144
145
146
147
148
# File 'lib/rfm/utilities/factory.rb', line 138

def all
  if !@loaded
  	xml = @server.connect(@database., @database.password, '-scriptnames', {"-db" => @database.name}).body
    Rfm::Resultset.new(xml, :database_object => @database).each {|record|
      name = record['SCRIPT_NAME']
      self[name] = Rfm::Metadata::Script.new(name, @database) if self[name] == nil
    }
    @loaded = true
  end
  self
end

#namesObject



150
151
152
# File 'lib/rfm/utilities/factory.rb', line 150

def names
	keys
end