module OrbitApp module Plugin module Registration Version = "0.1" module ClassMethods @@registrations = [] def new( name ,&block) @@registrations << DataSheet.new(name,&block) end def new_from_module_app(name,base_path,arg) @@registrations << DataSheet.new(name,arg,:base_path=>base_path) end def find_by_key(key) @@registrations.each{|t| return t if t.name == key } return nil end def all return @@registrations end end extend ClassMethods def self.included( other ) other.extend( ClassMethods ) end class DataSheet attr_reader :name attr_reader :base_path def initialize(name,partial=nil,*args ,&block) @base_path = args[0][:base_path] @name = name @partial_path = '' unless partial.nil? @partial_path = partial[:path] end block.arity < 1 ? instance_eval(&block) : block.call(self) if block_given? end def profile_partial_path return @partial_path end end end end end