Sha256: 0a46d2b0df11eecb948e5f14c08d90e81e3d0f4d4ddae8d7b2c299e19385d66f

Contents?: true

Size: 1005 Bytes

Versions: 6

Compression:

Stored size: 1005 Bytes

Contents

require 'orange-core/core'

module Orange
  # Orange Resource for being subclassed
  class Resource
    extend ClassInheritableAttributes
    # Defines a model class as an inheritable class attribute and also an instance
    # attribute
    cattr_accessor :called
    
    def initialize(*args, &block)
      @options = DefaultHash.new.merge!(Options.new(*args, &block).hash)
    end
    
    def set_orange(orange, name)
      @orange = orange
      @my_orange_name = name
      afterLoad
      self
    end
    
    def self.set_orange(*args)
      raise 'instantiate the resource before calling set orange'
    end
    
    def afterLoad
      true
    end
    
    def self.call_me(name)
      self.called = name
    end
    
    def orange
      @orange
    end
    
    def routable
      false
    end
    
    def view(packet = false, *args)
      ''
    end
    
    def orange_name
      @my_orange_name || self.class.called || false
    end
    
    def options
      @options
    end
  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
orange-0.1.7 lib/orange-core/resource.rb
orange-0.1.4 lib/orange-core/resource.rb
orange-0.1.2 lib/orange-core/resource.rb
orange-0.1.0 lib/orange-core/resource.rb
orange-0.0.15 lib/orange-core/resource.rb
orange-0.0.14 lib/orange-core/resource.rb