Class: Bucket

Inherits:
Object
  • Object
show all
Defined in:
lib/quartz_flow/usagetracker.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(label = nil, criteriaData = nil, value = nil) ⇒ Bucket

Returns a new instance of Bucket.



4
5
6
7
8
9
# File 'lib/quartz_flow/usagetracker.rb', line 4

def initialize(label = nil, criteriaData = nil, value = nil)
  @label = label
  @criteriaData = criteriaData
  @value = value
  @absoluteUsageAtStartOfBucket = nil
end

Instance Attribute Details

#absoluteUsageAtStartOfBucketObject

At the time this bucket was created, the value of the absolute usage for all time



14
15
16
# File 'lib/quartz_flow/usagetracker.rb', line 14

def absoluteUsageAtStartOfBucket
  @absoluteUsageAtStartOfBucket
end

#criteriaDataObject

Data used by BucketChangeCriteria to determine when we need a new bucket.



12
13
14
# File 'lib/quartz_flow/usagetracker.rb', line 12

def criteriaData
  @criteriaData
end

#labelObject

Returns the value of attribute label.



10
11
12
# File 'lib/quartz_flow/usagetracker.rb', line 10

def label
  @label
end

#valueObject

The amount of usage for this bucket alone



16
17
18
# File 'lib/quartz_flow/usagetracker.rb', line 16

def value
  @value
end

Instance Method Details

#fromHash(hash) ⇒ Object



22
23
24
25
26
27
# File 'lib/quartz_flow/usagetracker.rb', line 22

def fromHash(hash)
  @label = hash["label"]
  @absoluteUsageAtStartOfBucket = hash["absoluteUsageAtStartOfBucket"]
  @criteriaData = hash["criteriaData"]
  @value = hash["value"]
end

#fromModel(bucket) ⇒ Object



29
30
31
32
33
34
# File 'lib/quartz_flow/usagetracker.rb', line 29

def fromModel(bucket)
  @label = bucket.label
  @absoluteUsageAtStartOfBucket = bucket.absoluteUsage
  @criteriaData = bucket.criteriaData
  @value = bucket.value
end

#toHashObject



18
19
20
# File 'lib/quartz_flow/usagetracker.rb', line 18

def toHash
  {"label" => @label, "absoluteUsageAtStartOfBucket" => @absoluteUsageAtStartOfBucket, "criteriaData" => @criteriaData, "value" => @value}
end

#toModelObject



36
37
38
39
40
41
42
43
44
45
# File 'lib/quartz_flow/usagetracker.rb', line 36

def toModel
  model = UsageBucket.new
  model.attributes = { 
    :label => @label,
    :absoluteUsage => @absoluteUsageAtStartOfBucket,
    :criteriaData => @criteriaData,
    :value => @value
  }
  model
end