sponsored_logs 0.1.0 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -3,7 +3,9 @@
3
3
  require "logger"
4
4
 
5
5
  require_relative "sponsored_logs/version"
6
+ require_relative "sponsored_logs/color"
6
7
  require_relative "sponsored_logs/advertisers"
8
+ require_relative "sponsored_logs/banner"
7
9
  require_relative "sponsored_logs/ads_file"
8
10
  require_relative "sponsored_logs/ledger/store/base"
9
11
  require_relative "sponsored_logs/ledger/store/memory"
@@ -76,7 +78,11 @@ module SponsoredLogs
76
78
  return if ad.nil?
77
79
 
78
80
  ledger.record(ad)
79
- line = Advertisers.render(ad, configuration.ad_prefix)
81
+ line = Advertisers.render(
82
+ ad, configuration.ad_prefix,
83
+ ascii_only: configuration.ascii_only,
84
+ color: Color.gild?(target, mode: configuration.color)
85
+ )
80
86
 
81
87
  if target.is_a?(Logger)
82
88
  # Raw << avoids re-triggering our own Logger#add patch (infinite loop).
@@ -120,7 +126,8 @@ module SponsoredLogs
120
126
  spend: ledger.total_spend.round(2),
121
127
  ads: grouped[:running],
122
128
  upcoming: grouped[:upcoming],
123
- finished: grouped[:finished]
129
+ finished: grouped[:finished],
130
+ advertisers: advertiser_rollup(grouped)
124
131
  }
125
132
  end
126
133
 
@@ -189,6 +196,7 @@ module SponsoredLogs
189
196
  #
190
197
  def report_row(text, meta, entry, status)
191
198
  {
199
+ advertiser: meta[:advertiser] || Advertisers::DEFAULT_ADVERTISER,
192
200
  text: text,
193
201
  impressions: entry ? entry.impressions : 0,
194
202
  cpm: entry ? entry.cpm : meta[:cpm].to_f,
@@ -200,6 +208,22 @@ module SponsoredLogs
200
208
  }
201
209
  end
202
210
 
211
+ # Roll every report row up to its advertiser: total impressions, spend, and
212
+ # ad count per advertiser account, sorted by spend descending.
213
+ #
214
+ def advertiser_rollup(grouped)
215
+ by_advertiser = grouped.values.flatten.group_by { |row| row[:advertiser] }
216
+ accounts = by_advertiser.map do |advertiser, ads|
217
+ {
218
+ advertiser: advertiser,
219
+ ads: ads.size,
220
+ impressions: ads.sum { |a| a[:impressions] },
221
+ spend: ads.sum { |a| a[:spend] }.round(2)
222
+ }
223
+ end
224
+ accounts.sort_by { |a| -a[:spend] }
225
+ end
226
+
203
227
  def start_periodic_thread
204
228
  stop_periodic_thread
205
229
  @periodic_thread = Thread.new do
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sponsored_logs
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Kerri Miller
@@ -114,6 +114,7 @@ executables: []
114
114
  extensions: []
115
115
  extra_rdoc_files: []
116
116
  files:
117
+ - CHANGELOG.md
117
118
  - LICENSE.txt
118
119
  - README.md
119
120
  - lib/generators/sponsored_logs/install_generator.rb
@@ -121,6 +122,8 @@ files:
121
122
  - lib/sponsored_logs.rb
122
123
  - lib/sponsored_logs/ads_file.rb
123
124
  - lib/sponsored_logs/advertisers.rb
125
+ - lib/sponsored_logs/banner.rb
126
+ - lib/sponsored_logs/color.rb
124
127
  - lib/sponsored_logs/configuration.rb
125
128
  - lib/sponsored_logs/engine.rb
126
129
  - lib/sponsored_logs/env.rb
@@ -136,12 +139,14 @@ files:
136
139
  - lib/sponsored_logs/report/app/views/sponsored_logs/reports/show.html.erb
137
140
  - lib/sponsored_logs/report/config/routes.rb
138
141
  - lib/sponsored_logs/version.rb
139
- homepage: https://github.com/kerrizor/sponsored_logs
142
+ homepage: https://monetizetheexhaust.dev
140
143
  licenses:
141
144
  - MIT
142
145
  metadata:
143
- source_code_uri: https://github.com/kerrizor/sponsored_logs
144
- bug_tracker_uri: https://github.com/kerrizor/sponsored_logs/issues
146
+ homepage_uri: https://monetizetheexhaust.dev
147
+ source_code_uri: https://github.com/sponsoredlogs/sponsored_logs
148
+ bug_tracker_uri: https://github.com/sponsoredlogs/sponsored_logs/issues
149
+ changelog_uri: https://github.com/sponsoredlogs/sponsored_logs/blob/main/CHANGELOG.md
145
150
  rubygems_mfa_required: 'true'
146
151
  rdoc_options: []
147
152
  require_paths:
@@ -150,7 +155,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
150
155
  requirements:
151
156
  - - ">="
152
157
  - !ruby/object:Gem::Version
153
- version: '3.1'
158
+ version: '3.2'
154
159
  required_rubygems_version: !ruby/object:Gem::Requirement
155
160
  requirements:
156
161
  - - ">="