Sha256: 17d78613aaec0bc500e579a2688a2572eadd05ae2877b5b5e6dad9b5b0223e5d
Contents?: true
Size: 1.97 KB
Versions: 114
Compression:
Stored size: 1.97 KB
Contents
module Eco module API module Organization class LoginProviders < Eco::Language::Models::Collection # build the shortcuts of Collection attr_collection :id, :name def initialize(login_providers = [], klass: Ecoportal::API::Internal::LoginProvider, factory: nil) @klass = Ecoportal::API::Internal::LoginProvider @caches_init = false super(login_providers, klass: @klass) init_caches end def password_id to_id("password") end def active select {|lp| lp != "disabled"} end def any_optional? active.any? do |lp| lp.enabled_for = "some" end end def ids @by_id.keys end def names @by_name.keys end def to_id(name) case name when Enumerable name.map do |n| login_provider(n)&.id end.compact else login_provider(name)&.id end end def to_name(id) case name when Enumerable id.map do |i| login_provider(i)&.name end.compact else login_provider(id)&.name end end def login_provider(id_name) @by_id.fetch(login_provider_id(id_name), nil) end private def login_provider_name(id_name) (@by_id[id_name] || @by_name[id_name&.downcase])&.name&.downcase end def login_provider_id(id_name) (@by_name[id_name&.downcase] || @by_id[id_name])&.id end def init_caches return if @caches_init @by_id = self.map { |pg| [pg.id, pg] }.to_h @by_name = self.map { |pg| [pg.name&.downcase, pg] }.to_h @caches_init = true end end end end end
Version data entries
114 entries across 114 versions & 1 rubygems