epom_rails 1.3.2 → 1.3.5

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: c8477a4424a385f16a87257167587ec38126d35e
4
- data.tar.gz: 4832ff15f4f780afd3cf64582ee06ec457c89c92
3
+ metadata.gz: 4308159e730d6ae58a3f618044c7a10753c1ef2c
4
+ data.tar.gz: 27350447fbc8f632fd3c98aa5df0d23c104a93f1
5
5
  SHA512:
6
- metadata.gz: c369bfaebe40a96f527f6753875c4e960a8621a5e32643b46b2c6ba0094f0c3a38a12b86e12e0017ae7cb490e4b0ee595291e90e920503a707a666cd1cfaa988
7
- data.tar.gz: a7c14a9c460452566fb512649a48a36b31343010572dee2da6b8f10b497cac4c590e1e274fdf74423cdcee8315e9afcfaa25fb1fcdccec1f57fa60e70e79b8e4
6
+ metadata.gz: 2534bf04d8756a7aea004916c841cfa051b282903510beb301eef246290b87f86c1e7d020d94b91151a6ea28e7249233a0b460fe9be4f1e0d8050b08e17adbcb
7
+ data.tar.gz: 2bb8a6e3344ce600dce39bb6a6bf1e42b0a8e026cb8a37a2f4348b109e0aa761aa6f69b461b240079b8c449e4369a25758eb2cb1b76e7bcf09e0fac759013a8b
@@ -1,36 +1,12 @@
1
1
  class ActiveRecord::Base
2
2
 
3
- def method_missing(method_name, *args)
4
- fields = self.class.get_config[:fields]
5
-
6
- # shortcut for epom fields, instead of self.send(fields.key(epom_field))
7
- # use self.send(epom_field)
8
- if fields.values.include?(method_name.to_s)
9
- real_method = fields.key(method_name.to_s)
10
- return self.send(real_method)
11
- # when self.send('advertiser.epom_id')
12
- elsif method_name.to_s.include?('.')
13
- methods = method_name.to_s.split('.')
14
- target = self
15
- methods.each do |method|
16
- if method == methods.last
17
- target = target.send(method, *args)
18
- else
19
- target = target.send(method)
20
- end
21
- end
22
- return target
23
- else
24
- super
25
- end
26
- end
27
-
28
3
  private
29
4
 
30
5
  def self.acts_as(klass, params)
31
6
  extend EpomRails
32
7
 
33
8
  override_config(klass, params)
9
+ define_method_missing
34
10
  define_before_save(klass)
35
11
  define_before_destroy(klass)
36
12
  end
@@ -48,8 +24,35 @@ class ActiveRecord::Base
48
24
  def self.override_config(klass, params)
49
25
  config = get_config
50
26
  config[:fields] = params[:fields] if params[:fields]
51
- config[:has_many] = params[:has_many] if params[:has_many]
52
- config[:belongs_to] = params[:belongs_to] if params[:belongs_to]
27
+ end
28
+
29
+ def self.define_method_missing
30
+ self.class_eval do
31
+ def method_missing(method_name, *args)
32
+ fields = self.class.get_config[:fields]
33
+
34
+ # shortcut for epom fields, instead of self.send(fields.key(epom_field))
35
+ # use self.send(epom_field)
36
+ if fields.values.include?(method_name.to_s)
37
+ real_method = fields.key(method_name.to_s)
38
+ return self.send(real_method)
39
+ # when self.send('advertiser.epom_id')
40
+ elsif method_name.to_s.include?('.')
41
+ methods = method_name.to_s.split('.')
42
+ target = self
43
+ methods.each do |method|
44
+ if method == methods.last
45
+ target = target.send(method, *args)
46
+ else
47
+ target = target.send(method)
48
+ end
49
+ end
50
+ return target
51
+ else
52
+ super
53
+ end
54
+ end
55
+ end
53
56
  end
54
57
 
55
58
  def self.define_before_save(klass)
@@ -3,30 +3,6 @@ class ActiveRecord::Base
3
3
  def self.acts_as_advertiser(params = {})
4
4
  EpomRails.config.advertiser[:model] = self
5
5
  acts_as(Epom::Advertiser, params)
6
-
7
- define_before_add_and_before_remove_for_campaigns
8
- end
9
-
10
- def self.define_before_add_and_before_remove_for_campaigns
11
- campaigns_association = EpomRails.config.advertiser[:has_many].find{|a| a[:epom_element]=="Campaign"}
12
-
13
- if campaigns_association
14
- before_add_for_campaigns << proc do |callback, advertiser, campaign|
15
- puts callback
16
- if campaign.advertiser_id and advertiser.id != campaign.advertiser_id
17
- # remove in Epom this campaign from his older advertiser
18
- Advertiser.find(campaign.advertiser_id).campaigns.delete(campaign)
19
- end
20
- end
21
- before_remove_for_campaigns << proc do |callback, advertiser, campaign|
22
- puts callback
23
- fields = EpomRails.config.campaign[:fields]
24
- # delete this campaign in Epom
25
- Campaign.delete_campaign({campaignId: campaign.send(fields.key('id'))})
26
- # set nil epom_id field for this campaign
27
- campaign.send "#{fields.key('id')}=", nil
28
- end
29
- end
30
6
  end
31
-
7
+
32
8
  end
@@ -18,14 +18,13 @@ class ActiveRecord::Base
18
18
  :groupBy => 'ADVERTISER,CAMPAIGN,BANNER,SITE,ZONE,PLACEMENT,CHANNEL,COUNTRY',
19
19
  :groupRange => 'DAY',
20
20
  }
21
- analytics = JSON.parse(self.analytics(default.merge(params)))
22
- # analytics = [{"Date"=>"01/08/2015", "Advertiser"=>"Praneet Shrivastava", "Advertiser ID"=>"911", "Campaign"=>"Camoaign by Praneet", "Campaign ID"=>"1409", "Banner"=>"Banner1", "Banner ID"=>"2364", "Site"=>"CN Beauty", "Site ID"=>"687", "Zone"=>"Zone Malaysia", "Zone ID"=>"762", "Placement"=>"CN Beauty site", "Placement ID"=>"1308", "Channel"=>"", "Country"=>"Malaysia", "Impressions"=>"642", "Clicks"=>"0", "CTR"=>"0.0000%", "Conversions"=>"0", "I2C"=>"0.0000%", "CCR"=>"0.0000%", "Net"=>"0.000", "Gross"=>"0.000", "Profit"=>"0.000", "eCPM Net"=>"0.000", "eCPM Gross"=>"0.000", "eCPM Profit"=>"0.000", "Status"=>"Preliminary confirmed"}, {"Date"=>"01/08/2015", "Advertiser"=>"Praneet Shrivastava", "Advertiser ID"=>"911", "Campaign"=>"Camoaign by Praneet", "Campaign ID"=>"1409", "Banner"=>"Banner1", "Banner ID"=>"2364", "Site"=>"CN Beauty", "Site ID"=>"687", "Zone"=>"Zone Malaysia", "Zone ID"=>"762", "Placement"=>"CN Beauty site", "Placement ID"=>"1308", "Channel"=>"", "Country"=>"Indonesia", "Impressions"=>"33", "Clicks"=>"0", "CTR"=>"0.0000%", "Conversions"=>"0", "I2C"=>"0.0000%", "CCR"=>"0.0000%", "Net"=>"0.000", "Gross"=>"0.000", "Profit"=>"0.000", "eCPM Net"=>"0.000", "eCPM Gross"=>"0.000", "eCPM Profit"=>"0.000", "Status"=>"Preliminary confirmed"}, {"Date"=>"01/08/2015", "Advertiser"=>"Praneet Shrivastava", "Advertiser ID"=>"911", "Campaign"=>"Camoaign by Praneet", "Campaign ID"=>"1409", "Banner"=>"Banner1", "Banner ID"=>"2364", "Site"=>"CN Beauty", "Site ID"=>"687", "Zone"=>"Zone Malaysia", "Zone ID"=>"762", "Placement"=>"CN Beauty site", "Placement ID"=>"1308", "Channel"=>"", "Country"=>"Brunei Darussalam", "Impressions"=>"31", "Clicks"=>"0", "CTR"=>"0.0000%", "Conversions"=>"0", "I2C"=>"0.0000%", "CCR"=>"0.0000%", "Net"=>"0.000", "Gross"=>"0.000", "Profit"=>"0.000", "eCPM Net"=>"0.000", "eCPM Gross"=>"0.000", "eCPM Profit"=>"0.000", "Status"=>"Preliminary confirmed"}, {"Date"=>"01/08/2015", "Advertiser"=>"Praneet Shrivastava", "Advertiser ID"=>"911", "Campaign"=>"Camoaign by Praneet", "Campaign ID"=>"1409", "Banner"=>"Banner1", "Banner ID"=>"2364", "Site"=>"CN Beauty", "Site ID"=>"687", "Zone"=>"Zone Malaysia", "Zone ID"=>"762", "Placement"=>"CN Beauty site", "Placement ID"=>"1308", "Channel"=>"", "Country"=>"Singapore", "Impressions"=>"31", "Clicks"=>"0", "CTR"=>"0.0000%", "Conversions"=>"0", "I2C"=>"0.0000%", "CCR"=>"0.0000%", "Net"=>"0.000", "Gross"=>"0.000", "Profit"=>"0.000", "eCPM Net"=>"0.000", "eCPM Gross"=>"0.000", "eCPM Profit"=>"0.000", "Status"=>"Preliminary confirmed"}, {"Date"=>"01/08/2015", "Advertiser"=>"NetUy", "Advertiser ID"=>"1253", "Campaign"=>"Netuy Envios de Titulares Matinales Campaña 2015", "Campaign ID"=>"1661", "Banner"=>"NetUy envíos", "Banner ID"=>"2598", "Site"=>"El Observador", "Site ID"=>"1059", "Zone"=>"Newsletters", "Zone ID"=>"1211", "Placement"=>"Titulares_Matinal_Cabezal", "Placement ID"=>"1704", "Channel"=>"", "Country"=>"Uruguay", "Impressions"=>"8", "Clicks"=>"0", "CTR"=>"0.0000%", "Conversions"=>"0", "I2C"=>"0.0000%", "CCR"=>"0.0000%", "Net"=>"0.000", "Gross"=>"0.000", "Profit"=>"0.000", "eCPM Net"=>"0.000", "eCPM Gross"=>"0.000", "eCPM Profit"=>"0.000", "Status"=>"Preliminary confirmed"}]
21
+ analytics = JSON.parse(Epom::Analytic.analytics(default.merge(params)))
23
22
  fields = get_config[:fields]
24
23
  analytics.map do |analytic|
25
24
  data = {}
26
25
  fields.map {|key, value| data[key] = analytic[value]}
27
26
  data[:date] = Date.parse(data[:date]) if data[:date].is_a?(String)
28
- Analytic.new(data)
27
+ self.new(data)
29
28
  end
30
29
  end
31
30
  end
@@ -3,25 +3,6 @@ class ActiveRecord::Base
3
3
  def self.acts_as_campaign(params = {})
4
4
  EpomRails.config.campaign[:model] = self
5
5
  acts_as(Epom::Campaign, params)
6
-
7
- override_belongs_to_advertiser
8
- end
9
-
10
- def self.override_belongs_to_advertiser
11
- advertiser_association = EpomRails.config.campaign[:belongs_to].find{|a| a[:epom_element]=="Advertiser"}
12
-
13
- if advertiser_association
14
- # overriding belongs_to: advertiser
15
- define_method advertiser_association[:name] do
16
- fields = EpomRails.config.campaign[:fields]
17
- object = super()
18
-
19
- if object.respond_to?(fields.key('id')) and object.send(fields.key('id'))
20
- # here, retrieve this advertiser from Epom
21
- end
22
- object
23
- end
24
- end
25
6
  end
26
7
 
27
8
  end
@@ -3,25 +3,6 @@ class ActiveRecord::Base
3
3
  def self.acts_as_zone(params = {})
4
4
  EpomRails.config.zone[:model] = self
5
5
  acts_as(Epom::Zone, params)
6
-
7
- override_belongs_to_zone
8
- end
9
-
10
- def self.override_belongs_to_zone
11
- site_association = EpomRails.config.zone[:belongs_to].find{|a| a[:epom_element]=="Site"}
12
-
13
- if site_association
14
- # overriding belongs_to: site
15
- define_method site_association[:name] do
16
- fields = EpomRails.config.zone[:fields]
17
- object = super()
18
-
19
- if object.respond_to?(fields.key('id')) and object.send(fields.key('id'))
20
- # here, retrieve this site from Epom
21
- end
22
- object
23
- end
24
- end
25
6
  end
26
7
 
27
8
  end
@@ -1,3 +1,3 @@
1
1
  module EpomRails
2
- VERSION = "1.3.2"
2
+ VERSION = "1.3.5"
3
3
  end
@@ -3,31 +3,21 @@ EpomRails.configure do |config|
3
3
 
4
4
  config.advertiser = {}
5
5
  config.advertiser[:fields] = {epom_id: 'id', name: 'name', contact_name: 'contactName', contact_email: 'contactEmail', description: 'description'}
6
- config.advertiser[:has_many] = [{:name => 'campaigns', :epom_element => 'Campaign', :model => 'Campaign'}]
7
6
 
8
7
  config.campaign = {}
9
8
  config.campaign[:fields] = {epom_id: 'id', name: 'name', description: 'description', weight: 'weight', 'advertiser.epom_id' => 'advertiserId'}
10
- config.campaign[:has_many] = [{:name => 'banners', :epom_element => 'Banner', :model => 'Banner'}]
11
- config.campaign[:belongs_to] = [{:name => 'advertiser', :epom_element => 'Advertiser', :model => 'Advertiser'}]
12
9
 
13
10
  config.banner = {}
14
11
  config.banner[:fields] = {epom_id: 'id', placement_type: 'placementType', 'campaign.epom_id' => 'campaignId', weight: 'weight', image_banner_link: 'imageBannerLink', url: 'url', name: 'name', banner_type: 'bannerType', ad_unit_id: 'adUnitId', ad_unit_width: 'adUnitWidth', ad_unit_height: 'adUnitHeight'}
15
- config.banner[:has_many] = [{:name => 'placements', :epom_element => 'Placement', :model => 'Placement'}]
16
- config.banner[:belongs_to] = [{:name => 'campaign', :epom_element => 'Campaign', :model => 'Campaign'}]
17
12
 
18
13
  config.site = {}
19
14
  config.site[:fields] = {epom_id: 'id', name: 'name', url: 'url', description: 'description', email: 'email', category_id: 'categoryId'}
20
- config.site[:has_many] = [{:name => 'zones', :epom_element => 'Zone', :model => 'Zone'}]
21
15
 
22
16
  config.zone = {}
23
17
  config.zone[:fields] = {epom_id: 'id', name: 'name', description: 'description', 'site.epom_id' => 'siteId'}
24
- config.zone[:has_many] = [{:name => 'placements', :epom_element => 'Placement', :model => 'Placement'}]
25
- config.zone[:belongs_to] = [{:name => 'site', :epom_element => 'Site', :model => 'Site'}]
26
18
 
27
19
  config.placement = {}
28
20
  config.placement[:fields] = {epom_id: 'id', 'zone.epom_id' => 'zoneId', placement_type: 'type', name: 'name', ad_unit_id: 'adUnitId', size_height: 'size.height', size_width: 'size.width'}
29
- config.placement[:has_many] = [{:name => 'banners', :epom_element => 'Banner', :model => 'Banner'}]
30
- config.placement[:belongs_to] = [{:name => 'zone', :epom_element => 'Zone', :model => 'Zone'}]
31
21
 
32
22
  config.analytic = {}
33
23
  config.analytic[:fields] = {date: "Date", hour: "Hour", advertiser: "Advertiser", advertiser_id: "Advertiser ID", campaign: "Campaign", campaign_id: "Campaign ID", banner: "Banner", banner_id: "Banner ID", site: "Site", site_id: "Site ID", zone: "Zone", zone_id: "Zone ID", placement: "Placement", placement_id: "Placement ID", channel: "Channel", country: "Country", impressions: "Impressions", clicks: "Clicks", ctr: "CTR", conversions: "Conversions", i2c: "I2C", ccr: "CCR", net: "Net", gross: "Gross", profit: "Profit", ecpm_net: "eCPM Net", ecpm_gross: "eCPM Gross", ecpm_profit: "eCPM Profit", status: "Status"}
@@ -0,0 +1,2 @@
1
+ class User < ActiveRecord::Base
2
+ end
@@ -0,0 +1,9 @@
1
+ class CreateUsers < ActiveRecord::Migration
2
+ def change
3
+ create_table :users do |t|
4
+ t.string :name
5
+
6
+ t.timestamps null: false
7
+ end
8
+ end
9
+ end
@@ -11,7 +11,7 @@
11
11
  #
12
12
  # It's strongly recommended that you check this file into your version control system.
13
13
 
14
- ActiveRecord::Schema.define(version: 20150821041145) do
14
+ ActiveRecord::Schema.define(version: 20150927121727) do
15
15
 
16
16
  create_table "advertisers", force: :cascade do |t|
17
17
  t.string "name"
@@ -106,6 +106,12 @@ ActiveRecord::Schema.define(version: 20150821041145) do
106
106
  t.datetime "updated_at", null: false
107
107
  end
108
108
 
109
+ create_table "users", force: :cascade do |t|
110
+ t.string "name"
111
+ t.datetime "created_at", null: false
112
+ t.datetime "updated_at", null: false
113
+ end
114
+
109
115
  create_table "zones", force: :cascade do |t|
110
116
  t.integer "epom_id"
111
117
  t.string "name"
@@ -24,5 +24,4 @@ two:
24
24
  ad_unit_id: 10
25
25
  ad_unit_width: 164
26
26
  ad_unit_height: 182
27
- campaign: two
28
- epom_id: 2
27
+ campaign: two
@@ -0,0 +1,7 @@
1
+ # Read about fixtures at http://api.rubyonrails.org/classes/ActiveRecord/FixtureSet.html
2
+
3
+ one:
4
+ name: MyString
5
+
6
+ two:
7
+ name: MyString
@@ -0,0 +1,7 @@
1
+ require 'test_helper'
2
+
3
+ class UserTest < ActiveSupport::TestCase
4
+ # test "the truth" do
5
+ # assert true
6
+ # end
7
+ end
@@ -5,16 +5,6 @@ class ActsAsAdvertiserTest < ActiveSupport::TestCase
5
5
  EpomRails.config.advertiser[:fields].key(field)
6
6
  end
7
7
 
8
- def check_campaigns_list(campaigns1, campaigns2)
9
- assert_equal campaigns1.count, campaigns2.count
10
- campaigns1.each do |campaign|
11
- epom_campaign = campaigns2.find{|c| c['id'] == campaign.send(epom_field('id'))}
12
- assert epom_campaign
13
- assert_instance_of Hash, epom_campaign
14
- assert_equal campaign.name, epom_campaign['name']
15
- end
16
- end
17
-
18
8
  test 'fancy_method' do
19
9
  assert_raises NoMethodError do Advertiser.fancy_method end
20
10
  end
@@ -79,46 +69,4 @@ class ActsAsAdvertiserTest < ActiveSupport::TestCase
79
69
  end
80
70
  end
81
71
 
82
- test 'define_before_add_and_before_remove_for_campaigns' do
83
- a1 = Advertiser.create(name: 'advertiser 1')
84
- a2 = Advertiser.create(name: 'advertiser 2')
85
- c = Campaign.create(name: 'campaign', advertiser_id: a2.id)
86
-
87
- puts 'a1.campaigns << c'
88
- a1.campaigns << c
89
- unless EpomRails.config.offline
90
- # TODO: replace for a1.get_campaigns_for_advertiser
91
- campaigns = Advertiser.get_campaigns_for_advertiser({advertiserId: a1.send(epom_field('id'))})
92
- check_campaigns_list(a1.campaigns(true), campaigns)
93
- end
94
-
95
- puts 'a2.campaigns << c'
96
- a2.campaigns << c
97
- unless EpomRails.config.offline
98
- # TODO: replace for a1.get_campaigns_for_advertiser
99
- campaigns = Advertiser.get_campaigns_for_advertiser({advertiserId: a1.send(epom_field('id'))})
100
- check_campaigns_list(a1.campaigns(true), campaigns)
101
-
102
- # TODO: replace for a2.get_campaigns_for_advertiser
103
- campaigns = Advertiser.get_campaigns_for_advertiser({advertiserId: a2.send(epom_field('id'))})
104
- check_campaigns_list(a2.campaigns(true), campaigns)
105
- end
106
-
107
- puts 'a2.campaigns = [Campaign.create, Campaign.create]'
108
- a2.campaigns = [Campaign.create(name: 'campaign 1', advertiser_id: a2.id), Campaign.create(name: 'campaign 2', advertiser_id: a2.id)]
109
- assert_nil Campaign.find(c.id).advertiser
110
- unless EpomRails.config.offline
111
- # TODO: replace for a2.get_campaigns_for_advertiser
112
- campaigns = Advertiser.get_campaigns_for_advertiser({advertiserId: a2.send(epom_field('id'))})
113
- check_campaigns_list(a2.campaigns(true), campaigns)
114
- end
115
-
116
- puts 'a2.campaigns = []'
117
- a2.campaigns = []
118
- unless EpomRails.config.offline
119
- # TODO: replace for a2.get_campaigns_for_advertiser
120
- campaigns = Advertiser.get_campaigns_for_advertiser({advertiserId: a2.send(epom_field('id'))})
121
- check_campaigns_list(a2.campaigns(true), campaigns)
122
- end
123
- end
124
72
  end
@@ -2,8 +2,10 @@ require 'test_helper'
2
2
 
3
3
  class ActsAsAnalyticTest < ActiveSupport::TestCase
4
4
  test 'analytic_from_epom' do
5
- analytics = Analytic.analytic_from_epom({range: 'CURRENT_MONTH'})
6
- assert_instance_of Array, analytics
7
- assert_instance_of Analytic, analytics[0] if analytics.count > 0
5
+ unless EpomRails.config.offline
6
+ analytics = Analytic.analytic_from_epom({range: 'CURRENT_MONTH'})
7
+ assert_instance_of Array, analytics
8
+ assert_instance_of Analytic, analytics[0] if analytics.count > 0
9
+ end
8
10
  end
9
11
  end
@@ -23,12 +23,10 @@ class ActsAsBannerTest < ActiveSupport::TestCase
23
23
  unless EpomRails.config.offline
24
24
  banner = banners(:two)
25
25
  banner.epom_id = nil
26
- banner.save
27
26
 
28
27
  assert banner.save
29
28
  assert_instance_of Fixnum, banner.send(epom_field('id'))
30
29
 
31
- epom_id = banner.send(epom_field('id'))
32
30
  assert banner.destroy
33
31
  end
34
32
  end
@@ -51,14 +51,4 @@ class ActsAsCampaignTest < ActiveSupport::TestCase
51
51
  assert campaign.advertiser_id, campaign.advertiserId
52
52
  end
53
53
 
54
- test 'belongs to advertiser' do
55
- campaign = campaigns(:one)
56
- advertiser = advertisers(:one)
57
- campaign.advertiser = advertiser
58
- # ensure epom id is setted
59
- advertiser.save
60
-
61
- assert Advertiser.find(campaign.advertiser_id), campaign.advertiser
62
- end
63
-
64
54
  end
@@ -48,17 +48,4 @@ class ActsAsZoneTest < ActiveSupport::TestCase
48
48
  end
49
49
  end
50
50
 
51
- test 'belongs_to config' do
52
- assert [{:name => 'publisher', :epom_element => 'Site', :model => 'Publisher'}], EpomRails.config.zone[:belongs_to]
53
- end
54
-
55
- test 'belongs to publisher' do
56
- zone = zones(:one)
57
- publisher = publishers(:one)
58
- zone.publisher = publisher
59
- # ensure epom id is setted
60
- publisher.save
61
-
62
- assert Publisher.find(zone.publisher_id), zone.publisher
63
- end
64
51
  end
data/test/test_helper.rb CHANGED
@@ -40,31 +40,21 @@ EpomRails.configure do |config|
40
40
 
41
41
  config.advertiser = {}
42
42
  config.advertiser[:fields] = {epom_id: 'id', name: 'name', contact_name: 'contactName', contact_email: 'contactEmail', description: 'description'}
43
- config.advertiser[:has_many] = [{:name => 'campaigns', :epom_element => 'Campaign', :model => 'Campaign'}]
44
43
 
45
44
  config.campaign = {}
46
45
  config.campaign[:fields] = {epom_id: 'id', name: 'name', description: 'description', weight: 'weight', 'advertiser.epom_id' => 'advertiserId'}
47
- config.campaign[:has_many] = [{:name => 'banners', :epom_element => 'Banner', :model => 'Banner'}]
48
- config.campaign[:belongs_to] = [{:name => 'advertiser', :epom_element => 'Advertiser', :model => 'Advertiser'}]
49
46
 
50
47
  config.banner = {}
51
48
  config.banner[:fields] = {epom_id: 'id', placement_type: 'placementType', 'campaign.epom_id' => 'campaignId', weight: 'weight', image_banner_link: 'imageBannerLink', url: 'url', name: 'name', banner_type: 'bannerType', ad_unit_id: 'adUnitId', ad_unit_width: 'adUnitWidth', ad_unit_height: 'adUnitHeight'}
52
- config.banner[:has_many] = [{:name => 'placements', :epom_element => 'Placement', :model => 'Placement'}]
53
- config.banner[:belongs_to] = [{:name => 'campaign', :epom_element => 'Campaign', :model => 'Campaign'}]
54
49
 
55
50
  config.site = {}
56
51
  config.site[:fields] = {epom_id: 'id', name: 'name', url: 'url', description: 'description', email: 'email', category_id: 'categoryId'}
57
- config.site[:has_many] = [{:name => 'zones', :epom_element => 'Zone', :model => 'Zone'}]
58
52
 
59
53
  config.zone = {}
60
54
  config.zone[:fields] = {epom_id: 'id', name: 'name', description: 'description', 'publisher.epom_id' => 'siteId'}
61
- config.zone[:has_many] = [{:name => 'placements', :epom_element => 'Placement', :model => 'Placement'}]
62
- config.zone[:belongs_to] = [{:name => 'publisher', :epom_element => 'Site', :model => 'Publisher'}]
63
55
 
64
56
  config.placement = {}
65
57
  config.placement[:fields] = {epom_id: 'id', 'zone.epom_id' => 'zoneId', placement_type: 'type', name: 'name', ad_unit_id: 'adUnitId', size_height: 'size.height', size_width: 'size.width'}
66
- config.placement[:has_many] = [{:name => 'banners', :epom_element => 'Banner', :model => 'Banner'}]
67
- config.placement[:belongs_to] = [{:name => 'zone', :epom_element => 'Zone', :model => 'Zone'}]
68
58
 
69
59
  config.analytic = {}
70
60
  config.analytic[:fields] = {date: "Date", hour: "Hour", advertiser: "Advertiser", advertiser_id: "Advertiser ID", campaign: "Campaign", campaign_id: "Campaign ID", banner: "Banner", banner_id: "Banner ID", site: "Site", site_id: "Site ID", zone: "Zone", zone_id: "Zone ID", placement: "Placement", placement_id: "Placement ID", channel: "Channel", country: "Country", impressions: "Impressions", clicks: "Clicks", ctr: "CTR", conversions: "Conversions", i2c: "I2C", ccr: "CCR", net: "Net", gross: "Gross", profit: "Profit", ecpm_net: "eCPM Net", ecpm_gross: "eCPM Gross", ecpm_profit: "eCPM Profit", status: "Status"}
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: epom_rails
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.3.2
4
+ version: 1.3.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Adrian Chang
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-08-27 00:00:00.000000000 Z
11
+ date: 2015-09-28 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
@@ -118,6 +118,7 @@ files:
118
118
  - test/dummy/app/models/campaign.rb
119
119
  - test/dummy/app/models/placement.rb
120
120
  - test/dummy/app/models/publisher.rb
121
+ - test/dummy/app/models/user.rb
121
122
  - test/dummy/app/models/zone.rb
122
123
  - test/dummy/app/views/advertisers/_form.html.erb
123
124
  - test/dummy/app/views/advertisers/edit.html.erb
@@ -187,6 +188,7 @@ files:
187
188
  - test/dummy/db/migrate/20150731161340_create_publishers.rb
188
189
  - test/dummy/db/migrate/20150803195716_create_zones.rb
189
190
  - test/dummy/db/migrate/20150821041145_create_analytics.rb
191
+ - test/dummy/db/migrate/20150927121727_create_users.rb
190
192
  - test/dummy/db/schema.rb
191
193
  - test/dummy/public/404.html
192
194
  - test/dummy/public/422.html
@@ -205,6 +207,7 @@ files:
205
207
  - test/dummy/test/fixtures/campaigns.yml
206
208
  - test/dummy/test/fixtures/placements.yml
207
209
  - test/dummy/test/fixtures/publishers.yml
210
+ - test/dummy/test/fixtures/users.yml
208
211
  - test/dummy/test/fixtures/zones.yml
209
212
  - test/dummy/test/models/advertiser_test.rb
210
213
  - test/dummy/test/models/analytic_test.rb
@@ -212,6 +215,7 @@ files:
212
215
  - test/dummy/test/models/campaign_test.rb
213
216
  - test/dummy/test/models/placement_test.rb
214
217
  - test/dummy/test/models/publisher_test.rb
218
+ - test/dummy/test/models/user_test.rb
215
219
  - test/dummy/test/models/zone_test.rb
216
220
  - test/epom_rails/acts_as_advertiser_test.rb
217
221
  - test/epom_rails/acts_as_analytic_test.rb
@@ -259,14 +263,16 @@ test_files:
259
263
  - test/dummy/config.ru
260
264
  - test/dummy/Rakefile
261
265
  - test/dummy/README.rdoc
262
- - test/dummy/test/models/analytic_test.rb
263
266
  - test/dummy/test/models/zone_test.rb
267
+ - test/dummy/test/models/user_test.rb
264
268
  - test/dummy/test/models/publisher_test.rb
265
269
  - test/dummy/test/models/placement_test.rb
266
270
  - test/dummy/test/models/campaign_test.rb
267
271
  - test/dummy/test/models/banner_test.rb
272
+ - test/dummy/test/models/analytic_test.rb
268
273
  - test/dummy/test/models/advertiser_test.rb
269
274
  - test/dummy/test/fixtures/zones.yml
275
+ - test/dummy/test/fixtures/users.yml
270
276
  - test/dummy/test/fixtures/publishers.yml
271
277
  - test/dummy/test/fixtures/placements.yml
272
278
  - test/dummy/test/fixtures/campaigns.yml
@@ -285,6 +291,7 @@ test_files:
285
291
  - test/dummy/public/422.html
286
292
  - test/dummy/public/404.html
287
293
  - test/dummy/db/schema.rb
294
+ - test/dummy/db/migrate/20150927121727_create_users.rb
288
295
  - test/dummy/db/migrate/20150821041145_create_analytics.rb
289
296
  - test/dummy/db/migrate/20150803195716_create_zones.rb
290
297
  - test/dummy/db/migrate/20150731161340_create_publishers.rb
@@ -294,8 +301,8 @@ test_files:
294
301
  - test/dummy/db/migrate/20150608194916_create_campaigns.rb
295
302
  - test/dummy/db/migrate/20150604125603_add_epom_id_to_advertiser.rb
296
303
  - test/dummy/db/migrate/20150603151041_create_advertisers.rb
297
- - test/dummy/config/routes.rb
298
304
  - test/dummy/config/secrets.yml
305
+ - test/dummy/config/routes.rb
299
306
  - test/dummy/config/environment.rb
300
307
  - test/dummy/config/database.yml
301
308
  - test/dummy/config/boot.rb
@@ -316,16 +323,11 @@ test_files:
316
323
  - test/dummy/bin/rake
317
324
  - test/dummy/bin/rails
318
325
  - test/dummy/bin/bundle
319
- - test/dummy/app/views/analytics/show.html.erb
320
- - test/dummy/app/views/analytics/new.html.erb
321
- - test/dummy/app/views/analytics/index.html.erb
322
- - test/dummy/app/views/analytics/edit.html.erb
323
- - test/dummy/app/views/analytics/_form.html.erb
324
326
  - test/dummy/app/views/zones/show.html.erb
325
- - test/dummy/app/views/zones/index.html.erb
326
- - test/dummy/app/views/zones/_form.html.erb
327
327
  - test/dummy/app/views/zones/new.html.erb
328
+ - test/dummy/app/views/zones/index.html.erb
328
329
  - test/dummy/app/views/zones/edit.html.erb
330
+ - test/dummy/app/views/zones/_form.html.erb
329
331
  - test/dummy/app/views/publishers/show.html.erb
330
332
  - test/dummy/app/views/publishers/new.html.erb
331
333
  - test/dummy/app/views/publishers/index.html.erb
@@ -347,35 +349,40 @@ test_files:
347
349
  - test/dummy/app/views/banners/index.html.erb
348
350
  - test/dummy/app/views/banners/edit.html.erb
349
351
  - test/dummy/app/views/banners/_form.html.erb
352
+ - test/dummy/app/views/analytics/show.html.erb
353
+ - test/dummy/app/views/analytics/new.html.erb
354
+ - test/dummy/app/views/analytics/index.html.erb
355
+ - test/dummy/app/views/analytics/edit.html.erb
356
+ - test/dummy/app/views/analytics/_form.html.erb
350
357
  - test/dummy/app/views/advertisers/show.html.erb
351
358
  - test/dummy/app/views/advertisers/new.html.erb
352
359
  - test/dummy/app/views/advertisers/index.html.erb
353
360
  - test/dummy/app/views/advertisers/edit.html.erb
354
361
  - test/dummy/app/views/advertisers/_form.html.erb
355
362
  - test/dummy/app/models/zone.rb
363
+ - test/dummy/app/models/user.rb
356
364
  - test/dummy/app/models/publisher.rb
357
365
  - test/dummy/app/models/placement.rb
358
366
  - test/dummy/app/models/campaign.rb
359
367
  - test/dummy/app/models/banner.rb
360
368
  - test/dummy/app/models/analytic.rb
361
369
  - test/dummy/app/models/advertiser.rb
362
- - test/dummy/app/helpers/analytics_helper.rb
363
370
  - test/dummy/app/helpers/zones_helper.rb
364
371
  - test/dummy/app/helpers/publishers_helper.rb
365
372
  - test/dummy/app/helpers/placements_helper.rb
366
373
  - test/dummy/app/helpers/campaigns_helper.rb
367
374
  - test/dummy/app/helpers/banners_helper.rb
368
375
  - test/dummy/app/helpers/application_helper.rb
376
+ - test/dummy/app/helpers/analytics_helper.rb
369
377
  - test/dummy/app/helpers/advertisers_helper.rb
370
378
  - test/dummy/app/controllers/zones_controller.rb
371
- - test/dummy/app/controllers/analytics_controller.rb
372
379
  - test/dummy/app/controllers/publishers_controller.rb
373
380
  - test/dummy/app/controllers/placements_controller.rb
374
381
  - test/dummy/app/controllers/campaigns_controller.rb
375
382
  - test/dummy/app/controllers/banners_controller.rb
376
383
  - test/dummy/app/controllers/application_controller.rb
384
+ - test/dummy/app/controllers/analytics_controller.rb
377
385
  - test/dummy/app/controllers/advertisers_controller.rb
378
- - test/dummy/app/assets/stylesheets/analytics.css
379
386
  - test/dummy/app/assets/stylesheets/zones.css
380
387
  - test/dummy/app/assets/stylesheets/scaffold.css
381
388
  - test/dummy/app/assets/stylesheets/publishers.css
@@ -383,12 +390,13 @@ test_files:
383
390
  - test/dummy/app/assets/stylesheets/campaigns.css
384
391
  - test/dummy/app/assets/stylesheets/banners.css
385
392
  - test/dummy/app/assets/stylesheets/application.css
393
+ - test/dummy/app/assets/stylesheets/analytics.css
386
394
  - test/dummy/app/assets/stylesheets/advertisers.css
387
- - test/dummy/app/assets/javascripts/analytics.js
388
395
  - test/dummy/app/assets/javascripts/zones.js
389
396
  - test/dummy/app/assets/javascripts/publishers.js
390
397
  - test/dummy/app/assets/javascripts/placements.js
391
398
  - test/dummy/app/assets/javascripts/campaigns.js
392
399
  - test/dummy/app/assets/javascripts/banners.js
393
400
  - test/dummy/app/assets/javascripts/application.js
401
+ - test/dummy/app/assets/javascripts/analytics.js
394
402
  - test/dummy/app/assets/javascripts/advertisers.js