Class: IntercomSummary::CLI
- Inherits:
-
Object
- Object
- IntercomSummary::CLI
- Defined in:
- lib/intercom_summary.rb
Class Method Summary collapse
- .filter_by_created_at(list, days) ⇒ Object
- .filter_by_last_request_at(list, days) ⇒ Object
- .filter_by_signed_up_at(list, days) ⇒ Object
- .is_date_before_days(date, days) ⇒ Object
- .start ⇒ Object
Class Method Details
.filter_by_created_at(list, days) ⇒ Object
43 44 45 |
# File 'lib/intercom_summary.rb', line 43 def self.filter_by_created_at(list, days) list.select { |e| is_date_before_days(e.created_at, days) } end |
.filter_by_last_request_at(list, days) ⇒ Object
35 36 37 |
# File 'lib/intercom_summary.rb', line 35 def self.filter_by_last_request_at(list, days) list.select { |e| is_date_before_days(e.last_request_at, days) } end |
.filter_by_signed_up_at(list, days) ⇒ Object
39 40 41 |
# File 'lib/intercom_summary.rb', line 39 def self.filter_by_signed_up_at(list, days) list.select { |e| is_date_before_days(e.signed_up_at, days) } end |
.is_date_before_days(date, days) ⇒ Object
47 48 49 50 |
# File 'lib/intercom_summary.rb', line 47 def self.is_date_before_days(date, days) seconds_of_day = (60 * 60 * 24).freeze date && date.to_i < Time.now.to_i && date.to_i + seconds_of_day * days > Time.now.to_i end |
.start ⇒ Object
7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
# File 'lib/intercom_summary.rb', line 7 def self.start intercom = Intercom::Client.new(app_id: ENV['INTERCOM_APP_ID'], api_key: ENV['INTERCOM_APP_KEY']) # User summaries users = [] intercom.users.scroll.each { |user| users.push user } puts "Monthly active users\t\t#{filter_by_last_request_at(users, 30).size}" puts "Weekly active users\t\t#{filter_by_last_request_at(users, 7).size}" puts "Daily active users\t\t#{filter_by_last_request_at(users, 1).size}" puts "Monthly signed up users\t\t#{filter_by_signed_up_at(users, 30).size}" puts "Weekly signed up users\t\t#{filter_by_signed_up_at(users, 7).size}" puts "Daily signed up users\t\t#{filter_by_signed_up_at(users, 1).size}" # Company summaries companies = [] intercom.companies.scroll.each { |company| companies.push company } puts "Monthly active companies\t#{filter_by_last_request_at(companies, 30).size}" puts "Weekly active companies\t\t#{filter_by_last_request_at(companies, 7).size}" puts "Daily active companies\t\t#{filter_by_last_request_at(companies, 1).size}" puts "Monthly signed up companies\t#{filter_by_created_at(companies, 30).size}" puts "Weekly signed up companies\t#{filter_by_created_at(companies, 7).size}" puts "Daily signed up companies\t#{filter_by_created_at(companies, 1).size}" end |