Class: FlexiAdmin::Models::Resources::Context

Inherits:
Object
  • Object
show all
Defined in:
lib/flexi_admin/models/resources/context.rb

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(resources, scope, params, options) ⇒ Context

Returns a new instance of Context.



7
8
9
10
11
12
# File 'lib/flexi_admin/models/resources/context.rb', line 7

def initialize(resources, scope, params, options)
  @resources = resources
  @scope = scope
  @params = params
  @options = options
end

Instance Attribute Details

#optionsObject (readonly)

Returns the value of attribute options.



5
6
7
# File 'lib/flexi_admin/models/resources/context.rb', line 5

def options
  @options
end

#paramsObject (readonly)

Returns the value of attribute params.



5
6
7
# File 'lib/flexi_admin/models/resources/context.rb', line 5

def params
  @params
end

#resourcesObject (readonly)

Returns the value of attribute resources.



5
6
7
# File 'lib/flexi_admin/models/resources/context.rb', line 5

def resources
  @resources
end

#scopeObject (readonly)

Returns the value of attribute scope.



5
6
7
# File 'lib/flexi_admin/models/resources/context.rb', line 5

def scope
  @scope
end

Class Method Details

.build(resource: nil, scope: nil, params: FlexiAdmin::Models::ContextParams.new({}), **options) ⇒ Object



18
19
20
# File 'lib/flexi_admin/models/resources/context.rb', line 18

def self.build(resource: nil, scope: nil, params: FlexiAdmin::Models::ContextParams.new({}), **options)
  new(resource, scope, params, options)
end

.from_params(context_params, resources = nil) ⇒ Object



22
23
24
25
26
27
28
29
30
31
# File 'lib/flexi_admin/models/resources/context.rb', line 22

def self.from_params(context_params, resources = nil)
  parent = load_parent(context_params)

  new(
    resources,
    context_params.scope,
    context_params,
    {}.merge(parent:)
  )
end

.load_parent(context_params) ⇒ Object



33
34
35
36
37
38
39
# File 'lib/flexi_admin/models/resources/context.rb', line 33

def self.load_parent(context_params)
  return nil if context_params.parent.blank?

  gid = URI.decode_www_form_component(context_params.parent)

  GlobalID::Locator.locate(gid)
end

Instance Method Details

#paginate?Boolean

Returns:

  • (Boolean)


45
46
47
# File 'lib/flexi_admin/models/resources/context.rb', line 45

def paginate?
  options.key?(:paginate) || true
end

#parentObject



49
50
51
# File 'lib/flexi_admin/models/resources/context.rb', line 49

def parent
  options[:parent]
end

#resourceObject



14
15
16
# File 'lib/flexi_admin/models/resources/context.rb', line 14

def resource
  resources
end

#to_paramsObject



53
54
55
56
57
# File 'lib/flexi_admin/models/resources/context.rb', line 53

def to_params
  params.merge(scope:)
        .with_parent(parent)
        .to_params
end

#viewsObject



41
42
43
# File 'lib/flexi_admin/models/resources/context.rb', line 41

def views
  options[:views] || %w[list]
end