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/resource/search.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/resource/pagination.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.4.0'

Class Method Summary collapse

Class Method Details

.application_controller(&block) ⇒ Object



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

def application_controller(&block)
  return unless block

  application_controller_blocks << block
end

.application_controller_blocksObject



47
48
49
# File 'lib/croods.rb', line 47

def application_controller_blocks
  @application_controller_blocks ||= []
end

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



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

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)


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

def multi_tenancy?
  !multi_tenancy_by.nil?
end

.resourcesObject



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

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

.tenant_attributeObject



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

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