ga_trackable 0.0.1 → 0.0.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/app/models/ga_trackable/page_views_counter.rb +16 -0
- data/app/models/ga_trackable/video_plays_counter.rb +16 -0
- data/db/migrate/20161103161500_create_page_views_counters.rb +25 -0
- data/db/migrate/20161103161500_create_video_plays_counters.rb +28 -0
- data/lib/ga_trackable/configuration.rb +4 -1
- data/lib/ga_trackable/tasks/ga_trackable.rake +1 -1
- data/lib/ga_trackable/version.rb +1 -1
- metadata +5 -2
- data/Rakefile +0 -11
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: ab994525312df5159d2a3e678d4220347b9a16d9
|
4
|
+
data.tar.gz: d5aa91c43899abb39d153f2c448c909bec345ccf
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 04d708ca4858511ebbf41b9c35e2a4c88f69c07217649cd317fb644295f9932cf88229c9ac15ad30f9f943e254f4b2d498d82b95f9e5c3520da303106c661766
|
7
|
+
data.tar.gz: b1b87c1e85a9c0c0bfaf9d49f256f1579f81323d279375169c1b2035412e0a6f9d838c7a7ab4d11dff17630261a5ea44510c9885bd9676837f12381a482ac154
|
@@ -0,0 +1,16 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
module GaTrackable
|
3
|
+
class PageViewsCounter < ActiveRecord::Base
|
4
|
+
|
5
|
+
belongs_to :trackable, polymorphic: true
|
6
|
+
|
7
|
+
validates :trackable_id, :trackable_type, presence: true
|
8
|
+
validates :trackable_id, uniqueness: { scope: :trackable_type }
|
9
|
+
validates :page_path, presence: true, if: 'unique_page_views > 0'
|
10
|
+
|
11
|
+
scope :for_date, ->(date) { where('DATE(ga_trackable_page_views_counters.created_at) = ?', date.in_time_zone) }
|
12
|
+
scope :today, -> { for_date(Date.today) }
|
13
|
+
scope :yesterday, -> { for_date(Date.yesterday) }
|
14
|
+
|
15
|
+
end
|
16
|
+
end
|
@@ -0,0 +1,16 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
module GaTrackable
|
3
|
+
class VideoPlaysCounter < ActiveRecord::Base
|
4
|
+
|
5
|
+
belongs_to :trackable, polymorphic: true
|
6
|
+
|
7
|
+
validates :trackable_id, :trackable_type, presence: true
|
8
|
+
validates :trackable_id, uniqueness: { scope: :trackable_type }
|
9
|
+
validates :event_category, :event_action, presence: true, if: 'unique_events > 0'
|
10
|
+
|
11
|
+
scope :for_date, ->(date) { where('DATE(ga_trackable_video_plays_counters.created_at) = ?', date.in_time_zone) }
|
12
|
+
scope :today, -> { for_date(Date.today) }
|
13
|
+
scope :yesterday, -> { for_date(Date.yesterday) }
|
14
|
+
|
15
|
+
end
|
16
|
+
end
|
@@ -0,0 +1,25 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
class CreatePageViewsCounters < ActiveRecord::Migration
|
3
|
+
|
4
|
+
def up
|
5
|
+
create_table :ga_trackable_page_views_counters do |t|
|
6
|
+
t.integer :trackable_id, null: false
|
7
|
+
t.string :trackable_type, null: false
|
8
|
+
t.string :page_path
|
9
|
+
t.integer :unique_page_views, default: 0
|
10
|
+
t.integer :page_views, default: 0
|
11
|
+
t.boolean :initial_data, default: false
|
12
|
+
|
13
|
+
t.timestamps null: false
|
14
|
+
|
15
|
+
t.index :page_path
|
16
|
+
t.index [:trackable_id, :trackable_type], name: 'index_ga_trackable_page_views_counters_on_trackable'
|
17
|
+
t.index :trackable_type
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
21
|
+
def down
|
22
|
+
drop_table :ga_trackable_page_views_counters
|
23
|
+
end
|
24
|
+
|
25
|
+
end
|
@@ -0,0 +1,28 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
class CreateVideoPlaysCounters < ActiveRecord::Migration
|
3
|
+
|
4
|
+
def up
|
5
|
+
create_table :ga_trackable_video_plays_counters do |t|
|
6
|
+
t.integer :trackable_id, null: false
|
7
|
+
t.string :trackable_type, null: false
|
8
|
+
t.string :event_category
|
9
|
+
t.string :event_action
|
10
|
+
t.integer :unique_events, default: 0
|
11
|
+
t.text :event_label
|
12
|
+
t.integer :total_events
|
13
|
+
t.boolean :initial_data, default: false
|
14
|
+
|
15
|
+
t.timestamps null: false
|
16
|
+
|
17
|
+
t.index :event_action
|
18
|
+
t.index :event_category
|
19
|
+
t.index [:trackable_id, :trackable_type], name: 'index_ga_trackable_video_plays_counters_on_trackable'
|
20
|
+
t.index :trackable_type
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
24
|
+
def down
|
25
|
+
drop_table :ga_trackable_video_plays_counters
|
26
|
+
end
|
27
|
+
|
28
|
+
end
|
@@ -44,6 +44,8 @@ module GaTrackable
|
|
44
44
|
|
45
45
|
yield(self) if block_given?
|
46
46
|
|
47
|
+
@rails_env = @rails_env.to_sym
|
48
|
+
|
47
49
|
[
|
48
50
|
@view_id,
|
49
51
|
@app_name,
|
@@ -53,7 +55,8 @@ module GaTrackable
|
|
53
55
|
@scope,
|
54
56
|
@issuer_email,
|
55
57
|
@page_views_white_filter,
|
56
|
-
@page_views_black_filter
|
58
|
+
@page_views_black_filter,
|
59
|
+
@video_url_base
|
57
60
|
].each(&:freeze)
|
58
61
|
end
|
59
62
|
|
@@ -5,7 +5,7 @@ namespace :ga_trackable do
|
|
5
5
|
# Все таски ga должны зависеть от check_staging, для предотвращения запуска
|
6
6
|
# в стейджинг-окружении.
|
7
7
|
task check_staging: :environment do
|
8
|
-
if GaTrackable.config.rails_env && GaTrackable.config.rails_env
|
8
|
+
if GaTrackable.config.rails_env && GaTrackable.config.rails_env == :staging
|
9
9
|
puts 'Запрещен запуск задач GA на стейджинг-сервере.'.red
|
10
10
|
exit
|
11
11
|
end
|
data/lib/ga_trackable/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ga_trackable
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Yury
|
@@ -76,7 +76,10 @@ extra_rdoc_files: []
|
|
76
76
|
files:
|
77
77
|
- LICENSE
|
78
78
|
- README.md
|
79
|
-
-
|
79
|
+
- app/models/ga_trackable/page_views_counter.rb
|
80
|
+
- app/models/ga_trackable/video_plays_counter.rb
|
81
|
+
- db/migrate/20161103161500_create_page_views_counters.rb
|
82
|
+
- db/migrate/20161103161500_create_video_plays_counters.rb
|
80
83
|
- lib/ga_trackable.rb
|
81
84
|
- lib/ga_trackable/base_fetcher.rb
|
82
85
|
- lib/ga_trackable/configuration.rb
|
data/Rakefile
DELETED