Class: Rfm::Factory::LayoutFactory

Inherits:
CaseInsensitiveHash show all
Defined in:
lib/rfm/base.rb,
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) ⇒ LayoutFactory

Returns a new instance of LayoutFactory.



80
81
82
83
84
# File 'lib/rfm/utilities/factory.rb', line 80

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

Instance Method Details

#[](*args) ⇒ Object

was layout_name



86
87
88
89
90
91
92
93
# File 'lib/rfm/utilities/factory.rb', line 86

def [](*args) # was layout_name
	options = Factory.get_config(*args)
	name = options[:strings].delete_at(0) || options[:layout]
  super(name) or (self[name] = Rfm::Layout.new(name, @database, options))
  # This part reconfigures the named layout, if you pass it new config in the [] method.
				#   super(name).config({:layout=>name}.merge(options)) if options
				#   super(name)
end

#allObject



95
96
97
98
99
100
101
102
103
104
105
106
107
108
# File 'lib/rfm/utilities/factory.rb', line 95

def all
  if !@loaded
   get_layout_names.each {|record|
     name = record['LAYOUT_NAME']
   	begin
     	(self[name] = Rfm::Layout.new(name, @database)) unless !self[name].nil? or name.to_s.strip == ''
     rescue
     	$stderr.puts $!
     end
   }
    @loaded = true
  end
  self
end

#get_layout_namesObject



114
115
116
117
# File 'lib/rfm/utilities/factory.rb', line 114

def get_layout_names
	#Rfm::Resultset.new(@server, get_layout_names_xml.body, nil)
	Rfm::Resultset.new(get_layout_names_xml.body, :database_object => @database)
end

#get_layout_names_xmlObject



110
111
112
# File 'lib/rfm/utilities/factory.rb', line 110

def get_layout_names_xml
	@server.connect(@database., @database.password, '-layoutnames', {"-db" => @database.name})
end

#modelize(filter = /.*/) ⇒ Object



143
144
145
146
# File 'lib/rfm/base.rb', line 143

def modelize(filter = /.*/)
	all.values.each{|lay| lay.modelize if lay.name.match(filter)}
	models
end

#modelsObject



148
149
150
151
152
153
154
155
# File 'lib/rfm/base.rb', line 148

def models
	rslt = {}
	each do |k,lay|
		layout_models = lay.models
		rslt[k] = layout_models if !layout_models.blank?
	end
	rslt
end

#namesObject



119
120
121
# File 'lib/rfm/utilities/factory.rb', line 119

def names
	keys
end