Module: HasHelpers::Resources

Defined in:
lib/has_helpers/resources.rb,
app/graphql/has_helpers/resources/resource_resource.rb,
app/graphql/has_helpers/resources/user_role_resource.rb,
app/graphql/has_helpers/resources/resource_group_resource.rb,
app/graphql/has_helpers/resources/organization_option_resource.rb,
app/graphql/has_helpers/resources/organization_resource_resource.rb

Defined Under Namespace

Modules: OrganizationOptionResource, OrganizationResourceResource, ResourceGroupResource, ResourceResource, UserRoleResource Classes: Meta

Class Method Summary collapse

Class Method Details

.base_resource(resource_name, **options, &block) ⇒ Object



8
9
10
11
12
13
14
# File 'lib/has_helpers/resources.rb', line 8

def self.base_resource(resource_name, **options, &block)
  wrapped_block = proc do
    instance_eval(&block) if block_given?
    resource_type ::HasHelpers::ResourceType::BASE
  end
  update_resource(resource_name, **options, &wrapped_block)
end

.configure_resources(&block) ⇒ Object



4
5
6
# File 'lib/has_helpers/resources.rb', line 4

def self.configure_resources(&block)
  instance_eval(&block)
end

.lookup(resource_name) ⇒ Object



35
36
37
# File 'lib/has_helpers/resources.rb', line 35

def self.lookup(resource_name)
  [resource_name] ||= ::HasHelpers::Resources::Meta.new(resource_name)
end

.resource_meta_data_cacheObject



31
32
33
# File 'lib/has_helpers/resources.rb', line 31

def self.
  @resource_meta_data_cache ||= {}
end

.sub_resource(resource_name, **options, &block) ⇒ Object



16
17
18
19
20
21
22
# File 'lib/has_helpers/resources.rb', line 16

def self.sub_resource(resource_name, **options, &block)
  wrapped_block = proc do
    instance_eval(&block) if block_given?
    resource_type ::HasHelpers::ResourceType::SUB
  end
  update_resource(resource_name, **options, &wrapped_block)
end

.update_resource(resource_name, **options, &block) ⇒ Object



24
25
26
27
28
29
# File 'lib/has_helpers/resources.rb', line 24

def self.update_resource(resource_name, **options, &block)
  lookup(resource_name).tap do |resource_meta|
    resource_meta.assign_attributes(options)
    resource_meta.instance_eval(&block) if block_given?
  end
end