Sha256: 205f5244866d8a4f8ff1f8ea28f546802dc30419384c18db290aa7737ae3cdbb
Contents?: true
Size: 1.56 KB
Versions: 1
Compression:
Stored size: 1.56 KB
Contents
module ActiveMocker class ModelReader attr_reader :model_name, :model_dir, :file_reader def initialize(options={}) @file_reader = options[:file_reader] ||= FileReader @model_dir = options[:model_dir] end def parse(model_name) @model_name = model_name klass self end def klass @klass ||= eval_file end def eval_file failure = true while failure begin m = Module.new m.module_eval(read_file) rescue NameError => e result = e.to_s.scan /::(\w*)$/ # gets the Constant name from error const_name = result.flatten.first Logger_.debug "ActiveMocker :: Can't can't find Constant #{const_name} from class #{model_name}..\n #{caller}" Object.const_set(const_name,const_name) next end failure = false model = m.const_get m.constants.first end model end def read_file file_reader.read("#{model_dir}/#{model_name}.rb") end def class_methods klass.methods(false) end def class_methods_with_arguments class_methods.map do |m| {m => klass.method(m).parameters } end end def instance_methods_with_arguments instance_methods.map do |m| {m => klass.new.method(m).parameters } end end def instance_methods klass.public_instance_methods(false) end def relationships_types klass.relationships end def relationships relationships_types.to_h.values.flatten end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
active_mocker-1.1.3 | lib/active_mocker/model_reader.rb |