class RolloutUi2::Server
Public Instance Methods
active_for(feature, key, user) { ||| nil| ... }
click to toggle source
# File lib/rollout_ui2.rb, line 86 def active_for(feature, key, user) return unless user && user != "" case key when :any feature.active?(current_rollout, current_user) when :percentage feature.feature.send(:user_in_percentage?, user) rescue nil when :user feature.feature.send(:user_in_active_users?, user) rescue nil when :group feature.feature.send(:user_in_active_group?, current_user, current_rollout) rescue nil end && yield || nil end
all_groups(features)
click to toggle source
# File lib/rollout_ui2.rb, line 124 def all_groups(features) defined_groups = current_rollout.instance_eval("@groups").keys rescue [] defined_groups | features.reduce([]) { |a, e| a | e.groups } end
as_array(param)
click to toggle source
# File lib/rollout_ui2.rb, line 129 def as_array(param) param.respond_to?(:split) ? param.split(",") : param || [] end
current_finder()
click to toggle source
# File lib/rollout_ui2.rb, line 120 def current_finder RolloutUi2.finder(current_key) end
current_key()
click to toggle source
# File lib/rollout_ui2.rb, line 112 def current_key (params[:key] || :default).to_sym end
current_rollout()
click to toggle source
# File lib/rollout_ui2.rb, line 116 def current_rollout RolloutUi2.rollout(current_key) end
current_user()
click to toggle source
# File lib/rollout_ui2.rb, line 104 def current_user @_current_user ||= if users_provided? current_finder.find(user) else user end end
icon(feature)
click to toggle source
# File lib/rollout_ui2.rb, line 150 def icon(feature) return "eye-close" if hidden?(feature) return "eye-open" if public?(feature) "filter" end
path_prefix()
click to toggle source
# File lib/rollout_ui2.rb, line 138 def path_prefix request.env['SCRIPT_NAME'] end
public?(feature)
click to toggle source
# File lib/rollout_ui2.rb, line 142 def public?(feature) feature.percentage >= 100 end
url_path(*path_parts)
click to toggle source
# File lib/rollout_ui2.rb, line 133 def url_path(*path_parts) [ path_prefix, path_parts ].join("/").squeeze('/') end
user()
click to toggle source
# File lib/rollout_ui2.rb, line 100 def user params[:user] end
users_2_select2(users)
click to toggle source
# File lib/rollout_ui2.rb, line 156 def users_2_select2(users) return users unless users_provided? current_finder .find_by_ids(Array(users)) .map { |it| it.merge!(selected: true, placeholder: it[:text]) } .to_json end
users_provided?()
click to toggle source
# File lib/rollout_ui2.rb, line 164 def users_provided? !current_finder.nil? end