Module: Vidibus::Resource::Consumer::Mongoid

Extended by:
ActiveSupport::Concern
Defined in:
lib/vidibus/resource/consumer/mongoid.rb

Defined Under Namespace

Modules: ClassMethods

Instance Method Summary collapse

Instance Method Details

#add_resource_consumerObject

Registers this consumer with provider.



28
29
30
31
32
33
# File 'lib/vidibus/resource/consumer/mongoid.rb', line 28

def add_resource_consumer
  response = register_resource_consumer
  self.resource_attributes = JSON.parse(response['resource'])
  set_resource_attributes(true)
  true # ensure true!
end

#destroy_without_callbackObject



58
59
60
61
# File 'lib/vidibus/resource/consumer/mongoid.rb', line 58

def destroy_without_callback
  self.extinct = true
  destroy
end

#remove_resource_consumerObject

Removes this consumer from provider.



36
37
38
39
# File 'lib/vidibus/resource/consumer/mongoid.rb', line 36

def remove_resource_consumer
  resource_provider.delete(resource_uri)
  true # ensure true!
end

#resource_providerObject

Returns a resource provider service.



48
49
50
51
52
53
54
55
56
# File 'lib/vidibus/resource/consumer/mongoid.rb', line 48

def resource_provider
  @resource_provider ||= begin
    service = self.class.instance_variable_get('@resource_provider') or
      raise ConfigurationError.new("No resource provider has been defined. Call #{self.class}.resource_provider(service, realm)")
    realm = (self.class.instance_variable_get('@resource_realm') || try!(:realm_uuid)) or
      raise ConfigurationError.new("No resource realm has been defined. Call #{self.class}.resource_realm(realm) or define the attribute :realm_uuid.")
    ::Service.discover(service, realm)
  end
end

#update_resource_attributes(json) ⇒ Object

Updates resource attributes from given JSON data. TODO: Update only data that has been changed.



43
44
45
# File 'lib/vidibus/resource/consumer/mongoid.rb', line 43

def update_resource_attributes(json)
  update_attributes(:resource_attributes => JSON.parse(json))
end