Class: Rollout
- Inherits:
-
ActiveRecord::Base
- Object
- ActiveRecord::Base
- Rollout
- Defined in:
- lib/ar_rollout/rollout.rb
Instance Method Summary collapse
- #enabled? ⇒ Boolean
- #match?(user) ⇒ Boolean
- #match_group?(user) ⇒ Boolean
- #match_percentage?(user) ⇒ Boolean
- #match_user?(user) ⇒ Boolean
Instance Method Details
#enabled? ⇒ Boolean
9 10 11 |
# File 'lib/ar_rollout/rollout.rb', line 9 def enabled? failure_count.to_i < 1 end |
#match?(user) ⇒ Boolean
4 5 6 7 |
# File 'lib/ar_rollout/rollout.rb', line 4 def match?(user) return false unless user enabled? && (match_user?(user) || match_group?(user) || match_percentage?(user)) end |
#match_group?(user) ⇒ Boolean
13 14 15 16 17 18 19 20 21 |
# File 'lib/ar_rollout/rollout.rb', line 13 def match_group?(user) if Rollout.method_defined? "match_#{group}?" send "match_#{group}?", user elsif group = Group.find_by_name(group) && group.memberships.where('user_id = ?', user.id).any? true else false end end |
#match_percentage?(user) ⇒ Boolean
27 28 29 |
# File 'lib/ar_rollout/rollout.rb', line 27 def match_percentage?(user) percentage ? ((user.id.to_i % 100) < percentage.to_i) : false end |
#match_user?(user) ⇒ Boolean
23 24 25 |
# File 'lib/ar_rollout/rollout.rb', line 23 def match_user?(user) user_id ? user_id.to_s == user.id.to_s : false end |