orbit-basic/lib/orbit_app/module/registration.rb

58 lines
1.4 KiB
Ruby

module OrbitApp
module Module
module Registration
Version = "0.1"
module ClassMethods
@@registrations = []
def new( name ,&block)
@@registrations << DataSheet.new(name,&block)
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, &block)
@name = name
@side_bar = nil
block.arity < 1 ? instance_eval(&block) : block.call(self) if block_given?
end
def side_bar(&block)
@side_bar = SideBarRegisition::SideBar.new(&block)
@side_bar.module_app_key = @name
@side_bar.finalize!
OrbitApp::Module::SideBarRegisition.add(@side_bar)
end
def personal_plugin(params)
# TODO 這裡要看是一些檔案是不是都有
Plugin::Registration.new_from_module_app(@name,@base_path,params)
end
def base_url(var)
@base_path = var
end
end
end
end
end