class LiveResource::Builder
Attributes
resource[R]
Public Class Methods
new(resource_name, protocol, dependency_types, extensions = nil)
click to toggle source
# File lib/live_resource/builder.rb, line 7 def initialize(resource_name, protocol, dependency_types, extensions = nil) @dependency_types = dependency_types @resource_class = Class.new(Resource) do # This creates an anonymous subclass of Resource include extensions if extensions end @resource = @resource_class.new(resource_name, protocol) end
Public Instance Methods
depends_on(target, *args, &block)
click to toggle source
# File lib/live_resource/builder.rb, line 15 def depends_on(target, *args, &block) dependency_type = first_dependency_type_accepting(target) unless dependency_type raise <<-EOF No dependency type is registered that accepts #{target.inspect} Registered dependency types are: #{@dependency_types.inspect} EOF end dependency = dependency_type.new(@resource, target, block, *args) @resource.dependencies << dependency end
identifier(&block)
click to toggle source
# File lib/live_resource/builder.rb, line 29 def identifier(&block) @identifier_proc = block @resource_class.class_eval do define_method(:_identifier, &block) end end
Private Instance Methods
first_dependency_type_accepting(target)
click to toggle source
# File lib/live_resource/builder.rb, line 39 def first_dependency_type_accepting(target) @dependency_types.each { |type| return type if type.accepts_target? target } nil end