Class: Bucket
- Inherits:
-
Object
- Object
- Bucket
- Includes:
- Mongoid::Document, Mongoid::Timestamps
- Defined in:
- app/models/bucket.rb
Instance Method Summary collapse
- #clear_history ⇒ Object
- #first_request_at ⇒ Object
- #last_request ⇒ Object
- #last_request_at ⇒ Object
- #last_response ⇒ Object
- #name ⇒ Object
- #requests ⇒ Object
- #requests_count ⇒ Object
- #responses ⇒ Object
Instance Method Details
#clear_history ⇒ Object
39 40 41 42 43 44 45 |
# File 'app/models/bucket.rb', line 39 def clear_history # requests and responses are capped collections in production, we cannot delete docs on a capped collection # so we filter these objects by the history_start_at to "clear" # db.runCommand({ "convertToCapped": "requests", size: 25000000 }); # db.runCommand({ "convertToCapped": "responses", size: 25000000 }); update_attribute :history_start_at, Time.now end |
#first_request_at ⇒ Object
67 68 69 |
# File 'app/models/bucket.rb', line 67 def first_request_at requests.order(:created_at.asc).first.try(:created_at) end |
#last_request ⇒ Object
55 56 57 |
# File 'app/models/bucket.rb', line 55 def last_request requests.order(:created_at.desc).first end |
#last_request_at ⇒ Object
63 64 65 |
# File 'app/models/bucket.rb', line 63 def last_request_at last_request.try(:created_at) end |
#last_response ⇒ Object
59 60 61 |
# File 'app/models/bucket.rb', line 59 def last_response responses.order(:created_at.desc).first end |
#name ⇒ Object
47 48 49 50 51 52 53 |
# File 'app/models/bucket.rb', line 47 def name if (name = read_attribute(:name)).blank? token else name end end |
#requests ⇒ Object
24 25 26 27 28 29 30 |
# File 'app/models/bucket.rb', line 24 def requests # I couldn't make has_many + conditions work with Mongoid # requests must be filtered by created_at # see clear_history Request.where(bucket_id: id).gte(created_at: history_start_at || created_at).order(:created_at.desc) end |
#requests_count ⇒ Object
71 72 73 |
# File 'app/models/bucket.rb', line 71 def requests_count requests.count end |
#responses ⇒ Object
32 33 34 35 36 37 |
# File 'app/models/bucket.rb', line 32 def responses # I couldn't make has_many + conditions work with Mongoid # responses must be filtered by created_at # see clear_history Response.where(bucket_id: id).gte(created_at: history_start_at || created_at).order(:created_at.desc) end |