Module: Aygabtu::Scope::Named

Defined in:
lib/aygabtu/scope/named.rb

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.factory_methodsObject



33
34
35
# File 'lib/aygabtu/scope/named.rb', line 33

def self.factory_methods
  [:named]
end

Instance Method Details

#inspect_dataObject



28
29
30
31
# File 'lib/aygabtu/scope/named.rb', line 28

def inspect_data
  return super unless names = @data[:names]
  super.merge(name: names.map(&:inspect).join('; '))
end

#matches_route?(route) ⇒ Boolean

Returns:

  • (Boolean)


11
12
13
14
15
16
17
# File 'lib/aygabtu/scope/named.rb', line 11

def matches_route?(route)
  if @data[:names]
    @data[:names].include?(route.name)
  else
    true
  end && super
end

#named(*names) ⇒ Object



4
5
6
7
8
9
# File 'lib/aygabtu/scope/named.rb', line 4

def named(*names)
  raise "nesting/chaining named in/after named makes no sense" if @data[:names]

  new_data = @data.dup.merge(names: names.map(&:to_s))
  self.class.new(new_data)
end

#segments_split_onceObject



19
20
21
22
23
24
25
26
# File 'lib/aygabtu/scope/named.rb', line 19

def segments_split_once
  return super unless Array(@data[:names]).length > 1

  @data[:names].map do |name|
    new_data = @data.merge(names: [name])
    self.class.new(new_data)
  end
end