Module: ActiveRemote::DSL::ClassMethods

Defined in:
lib/active_remote/dsl.rb

Instance Method Summary collapse

Instance Method Details

#attr_publishable(*attributes) ⇒ Object

Whitelist enable attributes for serialization purposes.

Examples

# To only publish the :guid and :status attributes:
class User < ActiveRemote::Base
  attr_publishable :guid, :status
end


17
18
19
20
# File 'lib/active_remote/dsl.rb', line 17

def attr_publishable(*attributes)
  @publishable_attributes ||= []
  @publishable_attributes += attributes
end

#endpoint_for_create(endpoint) ⇒ Object



22
23
24
# File 'lib/active_remote/dsl.rb', line 22

def endpoint_for_create(endpoint)
  endpoints create: endpoint
end

#endpoint_for_delete(endpoint) ⇒ Object



26
27
28
# File 'lib/active_remote/dsl.rb', line 26

def endpoint_for_delete(endpoint)
  endpoints delete: endpoint
end

#endpoint_for_destroy(endpoint) ⇒ Object



30
31
32
# File 'lib/active_remote/dsl.rb', line 30

def endpoint_for_destroy(endpoint)
  endpoints destroy: endpoint
end

#endpoint_for_search(endpoint) ⇒ Object



34
35
36
# File 'lib/active_remote/dsl.rb', line 34

def endpoint_for_search(endpoint)
  endpoints search: endpoint
end

#endpoint_for_update(endpoint) ⇒ Object



38
39
40
# File 'lib/active_remote/dsl.rb', line 38

def endpoint_for_update(endpoint)
  endpoints update: endpoint
end

#endpoints(endpoints_hash = nil) ⇒ Object



42
43
44
45
46
47
48
49
50
51
52
# File 'lib/active_remote/dsl.rb', line 42

def endpoints(endpoints_hash = nil)
  @endpoints ||= {
    create: :create,
    delete: :delete,
    destroy: :destroy,
    search: :search,
    update: :update
  }
  @endpoints.merge!(endpoints_hash) if endpoints_hash.present?
  @endpoints
end

#namespace(name = false) ⇒ Object

Set the namespace for the underlying RPC service class. If no namespace is given, then none will be used.

Examples

# If the user's service class is namespaced (e.g. Acme::UserService):
class User < ActiveRemote::Base
  namespace :acme
end


64
65
66
67
# File 'lib/active_remote/dsl.rb', line 64

def namespace(name = false)
  @namespace = name unless name == false
  @namespace
end

#publishable_attributesObject

Retrieve the attributes that have been whitelisted for serialization.



71
72
73
# File 'lib/active_remote/dsl.rb', line 71

def publishable_attributes
  @publishable_attributes
end

#service_class(klass = false) ⇒ Object

Set the RPC service class directly. By default, ActiveRemote determines the RPC service by constantizing the namespace and service name.

Examples

class User < ActiveRemote::Base
  service_class Acme::UserService
end

# ...is the same as:

class User < ActiveRemote::Base
  namespace :acme
  service_name :user_service
end

# ...is the same as:

class User < ActiveRemote::Base
  namespace :acme
end


97
98
99
100
# File 'lib/active_remote/dsl.rb', line 97

def service_class(klass = false)
  @service_class = klass unless klass == false
  @service_class ||= _determine_service_class
end

#service_name(name = false) ⇒ Object

Set the name of the underlying RPC service class. By default, Active Remote assumes that a User model will have a UserService (making the service name :user_service).

Examples

class User < ActiveRemote::Base
  service_name :jangly_users
end


112
113
114
115
# File 'lib/active_remote/dsl.rb', line 112

def service_name(name = false)
  @service_name = name unless name == false
  @service_name ||= _determine_service_name
end