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
hidden?(feature) click to toggle source
# File lib/rollout_ui2.rb, line 146
def hidden?(feature)
  feature.percentage <= 0 && feature.groups == [] && feature.users == []
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