Module: WithSlug::ClassMethods

Defined in:
app/models/concerns/with_slug.rb

Overview

Filtering

Instance Method Summary collapse

Instance Method Details

#allowed(permissions) ⇒ Object



35
36
37
# File 'app/models/concerns/with_slug.rb', line 35

def allowed(permissions)
  all.select { |it| permissions&.writer?(it.slug) }
end

#by_slug_parts!(args) ⇒ Object



44
45
46
# File 'app/models/concerns/with_slug.rb', line 44

def by_slug_parts!(args)
  find_by!(slug: "#{args[:organization]}/#{args[:repository]}")
end

#locate_resource(key) ⇒ Object



48
49
50
# File 'app/models/concerns/with_slug.rb', line 48

def locate_resource(key)
  find_or_initialize_by(slug: key)
end

#visible(permissions) ⇒ Object



39
40
41
42
# File 'app/models/concerns/with_slug.rb', line 39

def visible(permissions)
  # FIXME no truly generic
  all.select { |it| !it.private? || permissions&.writer?(it.slug) }
end