lib/rfm.rb in ginjo-rfm-2.1.7 vs lib/rfm.rb in ginjo-rfm-3.0.0
- old
+ new
@@ -1,20 +1,15 @@
module Rfm
PATH = File.expand_path(File.dirname(__FILE__))
$LOAD_PATH.unshift(PATH) unless $LOAD_PATH.include?(PATH)
end
-require 'thread' # some versions of ActiveSupport will raise error about Mutex unless 'thread' is loaded.
-require 'active_support'
-require 'active_support/core_ext/object/blank'
-require 'active_support/ordered_hash'
-require 'active_support/version'
+#require 'thread' # some versions of ActiveSupport will raise error about Mutex unless 'thread' is loaded.
+
+require 'logger'
require 'rfm/utilities/core_ext'
require 'rfm/utilities/case_insensitive_hash'
-#require 'rfm/utilities/config'
-#require 'rfm/utilities/factory'
-#require 'rfm/version.rb'
module Rfm
class CommunicationError < StandardError; end
class ParameterError < StandardError; end
@@ -25,49 +20,53 @@
autoload :Database, 'rfm/database'
autoload :Layout, 'rfm/layout'
autoload :Resultset, 'rfm/resultset'
autoload :Record, 'rfm/record'
autoload :Base, 'rfm/base'
- autoload :XmlParser, 'rfm/utilities/xml_parser'
+ autoload :SaxParser, 'rfm/utilities/sax_parser'
autoload :Config, 'rfm/utilities/config'
autoload :Factory, 'rfm/utilities/factory'
autoload :CompoundQuery,'rfm/utilities/compound_query'
autoload :VERSION, 'rfm/version'
- autoload :Fmresultset, 'rfm/utilities/fmresultset.rb'
- autoload :Fmpxmlresult, 'rfm/utilities/fmpxmlresult.rb'
- autoload :Fmpdsoresult, 'rfm/utilities/fmpdsoresult.rb'
- autoload :Fmpxmllayout, 'rfm/utilities/fmpxmllayout.rb'
+ autoload :Connection, 'rfm/utilities/connection.rb'
module Metadata
autoload :Script, 'rfm/metadata/script'
autoload :Field, 'rfm/metadata/field'
autoload :FieldControl, 'rfm/metadata/field_control'
autoload :ValueListItem, 'rfm/metadata/value_list_item'
+ autoload :Datum, 'rfm/metadata/datum'
+ autoload :ResultsetMeta, 'rfm/metadata/resultset_meta'
+ autoload :LayoutMeta, 'rfm/metadata/layout_meta'
end
def info
rslt = <<-EEOOFF
- Name: ginjo-rfm
+ Gem name: ginjo-rfm
Version: #{VERSION}
- ActiveSupport Version: #{ActiveSupport::VERSION::STRING}
- ActiveModel Loaded? #{defined?(ActiveModel) ? 'true' : 'false'}
- ActiveModel Loadable? #{begin; require 'active_model'; rescue LoadError; $!; end}
- XML Parser: #{XmlParser.backend}
+ ActiveModel loadable? #{begin; Gem::Specification::find_all_by_name('activemodel')[0].version.to_s; rescue Exception; false; end}
+ ActiveModel loaded? #{defined?(ActiveModel) ? 'true' : 'false'}
+ XML default parser: #{SaxParser::Handler.get_backend}
+ Ruby: #{RUBY_VERSION}
EEOOFF
rslt.gsub!(/^[ \t]*/, '')
+ rslt
rescue
"Could not retrieve info: #{$!}"
end
def info_short
- "Using ginjo-rfm version #{::Rfm::VERSION} with #{XmlParser.backend}"
+ "Using ginjo-rfm version #{::Rfm::VERSION} with #{SaxParser::Handler.get_backend}"
end
def_delegators 'Rfm::Factory', :servers, :server, :db, :database, :layout
- def_delegators 'Rfm::XmlParser', :backend, :backend=
+ def_delegators 'Rfm::SaxParser', :backend, :backend=
+ def_delegators 'Rfm::SaxParser::Handler', :get_backend
def_delegators 'Rfm::Config', :config, :get_config, :config_clear
def_delegators 'Rfm::Resultset', :load_data
+ alias_method :parser, :backend
+ alias_method :parser=, :backend=
def models(*args)
Rfm::Base
Rfm::Factory.models(*args)
end
@@ -75,8 +74,31 @@
def modelize(*args)
Rfm::Base
Rfm::Factory.modelize(*args)
end
+ #attr_accessor :log
+
+ def logger
+ @@logger ||= get_config[:logger] || Logger.new(STDOUT).tap {|l| l.formatter = proc {|severity, datetime, progname, msg| "#{datetime}: Rfm-#{severity} #{msg}\n"}}
+ end
+
+ alias_method :log, :logger
+
+ def logger=(obj)
+ @@logger = obj
+ end
+
+
+
extend self
+
+ SaxParser.default_class = CaseInsensitiveHash
+ SaxParser.template_prefix = File.join(File.dirname(__FILE__), 'rfm/utilities/sax/')
+ SaxParser.templates.merge!({
+ :fmpxmllayout => 'fmpxmllayout.yml',
+ :fmresultset => 'fmresultset.yml',
+ :fmpxmlresult => 'fmpxmlresult.yml',
+ :none => nil
+ })
end # Rfm