Module: Croods

Defined in:
lib/croods.rb,
lib/croods/api.rb,
lib/croods/model.rb,
lib/croods/action.rb,
lib/croods/policy.rb,
lib/croods/railtie.rb,
lib/croods/service.rb,
lib/croods/version.rb,
lib/croods/resource.rb,
lib/croods/attribute.rb,
lib/croods/controller.rb,
lib/croods/middleware.rb,
lib/croods/policy/scope.rb,
lib/croods/resource/model.rb,
lib/croods/resource/names.rb,
lib/croods/resource/paths.rb,
lib/croods/middleware/base.rb,
lib/croods/resource/policy.rb,
lib/croods/controller/model.rb,
lib/croods/resource/actions.rb,
lib/croods/resource/filters.rb,
lib/croods/resource/sorting.rb,
lib/croods/controller/member.rb,
lib/croods/resource/services.rb,
lib/croods/controller/actions.rb,
lib/croods/controller/resource.rb,
lib/croods/resource/attributes.rb,
lib/croods/resource/controller.rb,
lib/croods/resource/identifier.rb,
lib/croods/controller/not_found.rb,
lib/croods/resource/json_schema.rb,
lib/croods/controller/collection.rb,
lib/croods/resource/authorization.rb,
lib/croods/resource/authentication.rb,
lib/croods/controller/already_taken.rb,
lib/croods/controller/authorization.rb,
lib/croods/controller/multi_tenancy.rb,
lib/croods/resource/attributes/base.rb,
lib/croods/controller/authentication.rb,
lib/croods/controller/record_invalid.rb,
lib/croods/resource/json_schema/links.rb,
lib/croods/resource/attributes/request.rb,
lib/croods/resource/attributes/response.rb,
lib/croods/middleware/request_validation.rb,
lib/croods/resource/json_schema/required.rb,
lib/croods/middleware/response_validation.rb,
lib/croods/resource/json_schema/definition.rb,
lib/croods/resource/json_schema/links/show.rb,
lib/croods/resource/json_schema/properties.rb,
lib/croods/resource/json_schema/definitions.rb,
lib/croods/resource/json_schema/links/index.rb,
lib/croods/resource/json_schema/links/create.rb,
lib/croods/resource/json_schema/links/member.rb,
lib/croods/resource/json_schema/links/update.rb,
lib/croods/resource/json_schema/links/destroy.rb,
lib/croods/resource/json_schema/links/collection.rb

Defined Under Namespace

Modules: Api, Middleware, Resource Classes: Action, Attribute, Controller, Model, Policy, Railtie, Service

Constant Summary collapse

VERSION =
'0.2.2'

Class Method Summary collapse

Class Method Details

.application_controller(&block) ⇒ Object



36
37
38
39
40
# File 'lib/croods.rb', line 36

def application_controller(&block)
  return unless block

  application_controller_blocks << block
end

.application_controller_blocksObject



42
43
44
# File 'lib/croods.rb', line 42

def application_controller_blocks
  @application_controller_blocks ||= []
end

.initialize_for(*namespaces, multi_tenancy_by: nil) ⇒ Object



16
17
18
19
20
# File 'lib/croods.rb', line 16

def initialize_for(*namespaces, multi_tenancy_by: nil)
  self.multi_tenancy_by = multi_tenancy_by
  self.namespaces = namespaces.map(&:to_s).freeze
  Middleware.insert!
end

.multi_tenancy?Boolean

Returns:

  • (Boolean)


28
29
30
# File 'lib/croods.rb', line 28

def multi_tenancy?
  !multi_tenancy_by.nil?
end

.resourcesObject



22
23
24
25
26
# File 'lib/croods.rb', line 22

def resources
  namespaces.map do |namespace|
    "#{namespace.camelcase(:upper)}::Resource".constantize
  end
end

.tenant_attributeObject



32
33
34
# File 'lib/croods.rb', line 32

def tenant_attribute
  "#{Croods.multi_tenancy_by}_id".to_sym
end