ga_trackable 0.0.1 → 0.0.2

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: dc165dc8d86aa90d10356dfe90e2bc982974443c
4
- data.tar.gz: f89011a9ea3777d70aa4ca2f1b2f3e6ae2d6c106
3
+ metadata.gz: ab994525312df5159d2a3e678d4220347b9a16d9
4
+ data.tar.gz: d5aa91c43899abb39d153f2c448c909bec345ccf
5
5
  SHA512:
6
- metadata.gz: e1bcc38ff487a2823cbdd53447080b9a86a56fbe5eb8ffd4e56ef0362594fcfe0849da05d4b093b21e22b7f3eafb8bc9bf421c2c78d1e1caf4b0d6c540dbebc9
7
- data.tar.gz: 0c7b4ce17aa26ed516668c263ba7b880309bf513aadf2618810bb4534dac3fab52dfae221deaa0db11ece98d293c40e35bad48948b4de400eaef711035df11e9
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.staging?
8
+ if GaTrackable.config.rails_env && GaTrackable.config.rails_env == :staging
9
9
  puts 'Запрещен запуск задач GA на стейджинг-сервере.'.red
10
10
  exit
11
11
  end
@@ -1,4 +1,4 @@
1
1
  # frozen_string_literal: true
2
2
  module GaTrackable
3
- VERSION = '0.0.1'
3
+ VERSION = '0.0.2'
4
4
  end
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.1
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
- - Rakefile
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
@@ -1,11 +0,0 @@
1
- # frozen_string_literal: true
2
- require 'bundler/gem_tasks'
3
-
4
- task :console do
5
- require 'pry'
6
- lib = File.expand_path('lib')
7
- $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
8
- require 'ga_trackable'
9
- ARGV.clear
10
- Pry.start
11
- end