epom_rails 1.3.2 → 1.3.5

Sign up to get free protection for your applications and to get access to all the features.
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