Class: SumoSum::SumoSum

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

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(source_category = "*", count = 25) ⇒ SumoSum

Returns a new instance of SumoSum.



11
12
13
14
# File 'lib/sumo_sum/sumo_sum.rb', line 11

def initialize(source_category= "*",count=25)
  @source_category = source_category
  @count           = count
end

Instance Attribute Details

#countObject (readonly)

Returns the value of attribute count.



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

def count
  @count
end

#source_categoryObject (readonly)

Returns the value of attribute source_category.



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

def source_category
  @source_category
end

Instance Method Details

#days_ago(days = 90) ⇒ Object



48
49
50
51
# File 'lib/sumo_sum/sumo_sum.rb', line 48

def days_ago(days=90)
  ninety_days_ago_in_seconds=60*60*24*days
  (Time.now - ninety_days_ago_in_seconds).utc.iso8601.chop
end

#eachObject



40
41
42
43
44
45
46
# File 'lib/sumo_sum/sumo_sum.rb', line 40

def each
  top_visits.first(count).each do |record|
    yield TestingYourLegacy::LogEntry.new(get_link(record),
                                          record["protocol"],
                                          record["_approxcount"])
  end
end


53
54
55
56
57
58
59
60
61
62
# File 'lib/sumo_sum/sumo_sum.rb', line 53

def get_link(record)
  "/" +
    ["class","method"].map do |field|
    record[field]
    end
  .reject {|field|
    field==""
  }
  .join("/")
end

#get_recordsObject



26
27
28
29
30
31
32
33
34
35
36
37
38
# File 'lib/sumo_sum/sumo_sum.rb', line 26

def get_records()
  query = Sumo.search(query:  sum_with_source,
                       from: "#{days_ago}",
                         to: "#{Time.now.utc.iso8601.chop}",
                  time_zone: 'UTC'
                 )

  until query.status['state'] == "DONE GATHERING RESULTS" do
    STDERR.puts "gathering results -- sleeping 2 seconds:records so far: #{query.status["recordCount"]}"
    sleep 2
  end
  query.records
end

#sum_with_sourceObject



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

def sum_with_source
  "_sourceCategory=" + source_category + " " + TOP_CLASSES
end

#top_visitsObject



22
23
24
# File 'lib/sumo_sum/sumo_sum.rb', line 22

def top_visits
  @top_visits ||= get_records
end