54 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Ruby
		
	
	
	
		
		
			
		
	
	
			54 lines
		
	
	
		
			1.2 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
							 | 
						||
| 
								 | 
							
								            block.arity < 1 ? instance_eval(&block) : block.call(self) if block_given?
							 | 
						||
| 
								 | 
							
								          end
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								          def plugin
							 | 
						||
| 
								 | 
							
								              
							 | 
						||
| 
								 | 
							
								          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
							 |