Module: Sapling::ActiveRecord::AdminAPI

Included in:
Sapling::ActiveRecord
Defined in:
lib/sapling/active_record.rb

Instance Method Summary collapse

Instance Method Details

#activate_percentage(feature, percentage) ⇒ Object



58
59
60
61
62
63
64
# File 'lib/sapling/active_record.rb', line 58

def activate_percentage(feature, percentage)
  raise "invalid percentage #{percentage.inspect}" unless percentage.kind_of?(Integer) && percentage>=0 && percentage<=100
  Model.transaction do
    deactivate_percentage(feature)
    Model.create(:feature => feature.to_s, :percentage => percentage)
  end
end

#activate_user(feature, user) ⇒ Object



47
48
49
50
51
52
# File 'lib/sapling/active_record.rb', line 47

def activate_user(feature, user)
  Model.transaction do
    deactivate_user(feature, user)
    Model.create(:feature => feature.to_s, :user_id => user.id)
  end
end

#deactivate_percentage(feature) ⇒ Object



66
67
68
69
70
# File 'lib/sapling/active_record.rb', line 66

def deactivate_percentage(feature)
  Model.delete_all ["feature = ? AND percentage IS NOT NULL AND user_id IS NULL",
    feature.to_s
  ]
end

#deactivate_user(feature, user) ⇒ Object



54
55
56
# File 'lib/sapling/active_record.rb', line 54

def deactivate_user(feature, user)
  Model.delete_all ["feature = ? AND percentage IS NULL and user_id = ?",feature.to_s,user.id]
end