ad_man 0.0.10 → 0.0.11

Sign up to get free protection for your applications and to get access to all the features.
Files changed (82) hide show
  1. data/README.md +11 -0
  2. data/app/controllers/ad_man/advertisements_controller.rb +7 -7
  3. data/app/controllers/ad_man/keywords_controller.rb +4 -22
  4. data/app/helpers/ad_man/application_helper.rb +22 -22
  5. data/app/models/ad_man/advertisement.rb +24 -13
  6. data/app/views/ad_man/advertisements/_form.html.erb +30 -30
  7. data/lib/ad_man/engine.rb +10 -6
  8. data/lib/ad_man/version.rb +1 -1
  9. data/lib/ad_man.rb +28 -1
  10. data/lib/generators/ad_man/install_generator.rb +1 -1
  11. data/test/ad_man_test.rb +12 -0
  12. data/test/dummy/app/views/layouts/application.html.erb +2 -2
  13. data/test/dummy/db/development.sqlite3 +0 -0
  14. data/test/dummy/log/development.log +1582 -0
  15. data/test/dummy/log/production.log +29 -0
  16. data/test/dummy/public/assets/ad_man/application-030c1c636d13a0c0473145caca4ae213.js +19 -0
  17. data/test/dummy/public/assets/ad_man/application-030c1c636d13a0c0473145caca4ae213.js.gz +0 -0
  18. data/test/dummy/public/assets/ad_man/application-584b9a8cf35eb0392c175d828d48ec76.css +24 -0
  19. data/test/dummy/public/assets/ad_man/application-584b9a8cf35eb0392c175d828d48ec76.css.gz +0 -0
  20. data/test/dummy/public/assets/ad_man/application.css +24 -0
  21. data/test/dummy/public/assets/ad_man/application.css.gz +0 -0
  22. data/test/dummy/public/assets/ad_man/application.js +19 -0
  23. data/test/dummy/public/assets/ad_man/application.js.gz +0 -0
  24. data/test/dummy/public/assets/application-363316399c9b02b9eb98cd1b13517abd.js +19 -0
  25. data/test/dummy/public/assets/application-363316399c9b02b9eb98cd1b13517abd.js.gz +0 -0
  26. data/test/dummy/public/assets/application-40ca544d00e1077bb469d61620fc65b6.css +13 -0
  27. data/test/dummy/public/assets/application-40ca544d00e1077bb469d61620fc65b6.css.gz +0 -0
  28. data/test/dummy/public/assets/application.css +13 -0
  29. data/test/dummy/public/assets/application.css.gz +0 -0
  30. data/test/dummy/public/assets/application.js +19 -0
  31. data/test/dummy/public/assets/application.js.gz +0 -0
  32. data/test/dummy/public/assets/manifest.yml +5 -0
  33. data/test/dummy/public/system/ad_man/advertisements/ad_banners/000/000/005/banner/Banner728x90Sample.gif +0 -0
  34. data/test/dummy/public/system/ad_man/advertisements/ad_banners/000/000/005/inline_rectangle/Banner728x90Sample.gif +0 -0
  35. data/test/dummy/public/system/ad_man/advertisements/ad_banners/000/000/005/large_rectangle/Banner728x90Sample.gif +0 -0
  36. data/test/dummy/public/system/ad_man/advertisements/ad_banners/000/000/005/leaderboard/Banner728x90Sample.gif +0 -0
  37. data/test/dummy/public/system/ad_man/advertisements/ad_banners/000/000/005/mobile_leaderboard/Banner728x90Sample.gif +0 -0
  38. data/test/dummy/public/system/ad_man/advertisements/ad_banners/000/000/005/original/Banner728x90Sample.gif +0 -0
  39. data/test/dummy/public/system/ad_man/advertisements/ad_banners/000/000/005/skyscraper/Banner728x90Sample.gif +0 -0
  40. data/test/dummy/public/system/ad_man/advertisements/ad_banners/000/000/005/small_square/Banner728x90Sample.gif +0 -0
  41. data/test/dummy/public/system/ad_man/advertisements/ad_banners/000/000/005/square/Banner728x90Sample.gif +0 -0
  42. data/test/dummy/public/system/ad_man/advertisements/ad_banners/000/000/005/wide_skyscraper/Banner728x90Sample.gif +0 -0
  43. data/test/dummy/public/system/ad_man/advertisements/ad_banners/000/000/006/banner/advertise-your-business-skyscraper.gif +0 -0
  44. data/test/dummy/public/system/ad_man/advertisements/ad_banners/000/000/006/inline_rectangle/advertise-your-business-skyscraper.gif +0 -0
  45. data/test/dummy/public/system/ad_man/advertisements/ad_banners/000/000/006/large_rectangle/advertise-your-business-skyscraper.gif +0 -0
  46. data/test/dummy/public/system/ad_man/advertisements/ad_banners/000/000/006/leaderboard/advertise-your-business-skyscraper.gif +0 -0
  47. data/test/dummy/public/system/ad_man/advertisements/ad_banners/000/000/006/mobile_leaderboard/advertise-your-business-skyscraper.gif +0 -0
  48. data/test/dummy/public/system/ad_man/advertisements/ad_banners/000/000/006/original/advertise-your-business-skyscraper.gif +0 -0
  49. data/test/dummy/public/system/ad_man/advertisements/ad_banners/000/000/006/skyscraper/advertise-your-business-skyscraper.gif +0 -0
  50. data/test/dummy/public/system/ad_man/advertisements/ad_banners/000/000/006/small_square/advertise-your-business-skyscraper.gif +0 -0
  51. data/test/dummy/public/system/ad_man/advertisements/ad_banners/000/000/006/square/advertise-your-business-skyscraper.gif +0 -0
  52. data/test/dummy/public/system/ad_man/advertisements/ad_banners/000/000/006/wide_skyscraper/advertise-your-business-skyscraper.gif +0 -0
  53. data/test/dummy/tmp/cache/assets/C80/EB0/sprockets%2F6964b600dad92e623b7850341949a27a +0 -0
  54. data/test/dummy/tmp/cache/assets/C82/FB0/sprockets%2F63a761a27c52bfb39167528428a783f0 +0 -0
  55. data/test/dummy/tmp/cache/assets/C9F/C60/sprockets%2Fab8958b4c13b005a080a2c008236899b +0 -0
  56. data/test/dummy/tmp/cache/assets/CBC/5D0/sprockets%2F3f01fe6bdf7407974393bb1999922e20 +0 -0
  57. data/test/dummy/tmp/cache/assets/CCF/DF0/sprockets%2F5aa754b350db51742668ea541bb33e24 +0 -0
  58. data/test/dummy/tmp/cache/assets/CD8/370/sprockets%2F357970feca3ac29060c1e3861e2c0953 +0 -0
  59. data/test/dummy/tmp/cache/assets/CE0/650/sprockets%2Ff47b6558a5791c7b351afc162087c33b +0 -0
  60. data/test/dummy/tmp/cache/assets/CE1/990/sprockets%2F9d053cde74a43345797603c3dcb7f063 +0 -0
  61. data/test/dummy/tmp/cache/assets/D32/A10/sprockets%2F13fe41fee1fe35b49d145bcc06610705 +0 -0
  62. data/test/dummy/tmp/cache/assets/D3F/1A0/sprockets%2Fe5e63ba5c57b9c7a9c18393e28bb1600 +0 -0
  63. data/test/dummy/tmp/cache/assets/D48/B30/sprockets%2Faff61f6826df21f7078c8dc1c60a6394 +0 -0
  64. data/test/dummy/tmp/cache/assets/D4E/1B0/sprockets%2Ff7cbd26ba1d28d48de824f0e94586655 +0 -0
  65. data/test/dummy/tmp/cache/assets/D5A/EA0/sprockets%2Fd771ace226fc8215a3572e0aa35bb0d6 +0 -0
  66. data/test/dummy/tmp/cache/assets/D72/150/sprockets%2Fe5fd27a494eab7a2841caa8645e8b139 +0 -0
  67. data/test/dummy/tmp/cache/assets/D83/720/sprockets%2F9f267f3905b8acfc7cd8b395d06468ea +0 -0
  68. data/test/dummy/tmp/cache/assets/D98/630/sprockets%2Fe613fb3af7ed37d1888a15663a1abb3d +0 -0
  69. data/test/dummy/tmp/cache/assets/DA9/610/sprockets%2Fac8218880305cde6a7ebae6e9c49de28 +0 -0
  70. data/test/dummy/tmp/cache/assets/DB7/CD0/sprockets%2Fb94df30efa8b9c7a78587e6d5335dbe8 +0 -0
  71. data/test/dummy/tmp/cache/assets/DCA/8C0/sprockets%2Fabc8247ff4dc11488d8e052e342decbb +0 -0
  72. data/test/dummy/tmp/cache/assets/DD9/270/sprockets%2F82261ef5af4de17d9474ea9b70ddedd5 +0 -0
  73. data/test/dummy/tmp/cache/assets/DDC/1F0/sprockets%2Fdd7b92ee8549e6dbc720fd3a4d2d92f6 +0 -0
  74. data/test/dummy/tmp/cache/assets/DDC/400/sprockets%2Fcffd775d018f68ce5dba1ee0d951a994 +0 -0
  75. data/test/dummy/tmp/cache/assets/E04/890/sprockets%2F2f5173deea6c795b8fdde723bb4b63af +0 -0
  76. data/test/dummy/tmp/cache/assets/E05/A40/sprockets%2F2721b9eeebd773c56c2dc72df6ffcb53 +0 -0
  77. data/test/dummy/tmp/cache/assets/E8A/4A0/sprockets%2Fdcb1acea97ca03efab22ec8e90dff865 +0 -0
  78. data/test/fixtures/mrec.jpg +0 -0
  79. data/test/unit/ad_man/advertisement_test.rb +1 -7
  80. metadata +104 -6
  81. data/test/dummy/db/migrate/20120817083909_create_ad_man_advertisements.ad_man.rb +0 -17
  82. data/test/dummy/db/migrate/20120817083910_create_ad_man_keywords.ad_man.rb +0 -9
data/README.md CHANGED
@@ -1,6 +1,9 @@
1
1
  Ad_man
2
2
  ======
3
3
 
4
+ [![Build Status](https://secure.travis-ci.org/matenia/ad_man.png)](http://travis-ci.org/matenia/ad_man)
5
+ [![Code Climate](https://codeclimate.com/badge.png)](https://codeclimate.com/github/matenia/ad_man)
6
+
4
7
  Ad_man is an advertising manager mountable engine. It allows the user to upload and manage advertising banners, and provides an easy to use helper for inserting the banners on your website. Also counts the number of times an ad has shown, and the number of times an advertisement has been clicked on. The user must set a keyword for each ad.
5
8
 
6
9
  Currently supports two image sizes for advertising: Leaderboard 728 x 90 and Banner 468 x 60.
@@ -48,6 +51,14 @@ If you need to change the default values set by ad_man, you will need to create
48
51
  # AdMan Default Values
49
52
  AdMan.leaderboard_size = "728x90"
50
53
  AdMan.banner_size = "468x60"
54
+ AdMan.mobile_leaderboard_size = "320X50"
55
+ AdMan.square_size = "250X250"
56
+ AdMan.small_square_size = "200X200"
57
+ AdMan.large_rectangle_size = "336X280"
58
+ AdMan.inline_rectangle_size = "300X250"
59
+ AdMan.skyscraper_size = "120X600"
60
+ AdMan.wide_skyscraper_size = "160X600"
61
+
51
62
  AdMan.max_image_size = 50 # 50Kb maximum image size
52
63
 
53
64
  # These are configurable dimensions (currently leaderboard default)
@@ -6,9 +6,9 @@ class AdMan::AdvertisementsController < ApplicationController
6
6
  def index
7
7
  @advertisements = AdMan::Advertisement.all
8
8
 
9
- # depends on the "will_paginate" gem
10
- #@advertisements = AdMan::Advertisement.paginate :page => params[:page], :order => 'created_at desc',
11
- # :per_page => 5
9
+ # depends on the "will_paginate" gem
10
+ #@advertisements = AdMan::Advertisement.paginate :page => params[:page], :order => 'created_at desc',
11
+ # :per_page => 5
12
12
  @keywords = AdMan::Keyword.all
13
13
 
14
14
  respond_to do |format|
@@ -48,8 +48,8 @@ class AdMan::AdvertisementsController < ApplicationController
48
48
  # POST /advertisements.json
49
49
  def create
50
50
  @advertisement = AdMan::Advertisement.new(params[:advertisement])
51
- @advertisement.keyword_id = params[:keyword_id]
52
- # @advertisement.priority = params[:priority]
51
+ #@advertisement.keyword_id = params[:keyword_id]
52
+ #@advertisement.priority = params[:priority]
53
53
  respond_to do |format|
54
54
  if @advertisement.save
55
55
  format.html { redirect_to @advertisement, notice: 'Advertisement was successfully created.' }
@@ -65,8 +65,8 @@ class AdMan::AdvertisementsController < ApplicationController
65
65
  # PUT /advertisements/1.json
66
66
  def update
67
67
  @advertisement = AdMan::Advertisement.find(params[:id])
68
- @advertisement.keyword_id = params[:keyword_id]
69
- # @advertisement.priority = params[:priority]
68
+ #@advertisement.keyword_id = params[:keyword_id]
69
+ #@advertisement.priority = params[:priority]
70
70
 
71
71
  respond_to do |format|
72
72
  if @advertisement.update_attributes(params[:advertisement])
@@ -1,40 +1,26 @@
1
1
  class AdMan::KeywordsController < ApplicationController
2
-
3
- # GET /keywords
4
- # GET /keywords.json
2
+ respond_to :html, :json
3
+
5
4
  def index
6
5
  @keywords = AdMan::Keyword.all
7
- respond_to do |format|
8
- format.html
9
- format.json { render json: @advertisements }
10
- end
6
+ respond_with @keywords
11
7
  end
12
8
 
13
- # GET /keywords/1
14
- # GET /keywords/1.json
15
9
  def show
16
10
  @keyword = AdMan::Keyword.find(params[:id])
17
11
  @advertisements = AdMan::Advertisement.find_all_by_keyword_id(params[:id])
18
12
  @keywords = AdMan::Keyword.all
19
13
  end
20
14
 
21
- # GET /keywords/new
22
- # GET /keywords/new.json
23
15
  def new
24
16
  @keyword = AdMan::Keyword.new
25
- respond_to do |format|
26
- format.html
27
- format.json { render json: @keyword }
28
- end
17
+ respond_with(@keyword)
29
18
  end
30
19
 
31
- # GET /keywords/1/edit
32
20
  def edit
33
21
  @keyword = AdMan::Keyword.find(params[:id])
34
22
  end
35
23
 
36
- # POST /keywords
37
- # POST /keywords.json
38
24
  def create
39
25
  @keyword = AdMan::Keyword.new(params[:keyword])
40
26
  respond_to do |format|
@@ -48,8 +34,6 @@ class AdMan::KeywordsController < ApplicationController
48
34
  end
49
35
  end
50
36
 
51
- # PUT /keywords/1
52
- # PUT /keywords/1.json
53
37
  def update
54
38
  @keyword = AdMan::Keyword.find(params[:id])
55
39
  respond_to do |format|
@@ -63,8 +47,6 @@ class AdMan::KeywordsController < ApplicationController
63
47
  end
64
48
  end
65
49
 
66
- # DELETE /keywords/1
67
- # DELETE /keywords/1.json
68
50
  def destroy
69
51
  @keyword = AdMan::Keyword.find(params[:id])
70
52
  @keyword.destroy
@@ -1,45 +1,45 @@
1
1
  module AdMan
2
2
  module ApplicationHelper
3
- def link_to_ad(keyword = nil, size = "leaderboard")
4
- # def link_to_ad(hash = {:keyword => nil, :size => "leaderboard"})
5
- # keyword = hash[:keyword]
6
- # size = hash[:size]
3
+ def link_to_ad(opts = {})
4
+ opts.slice!(:size,:keyword)
5
+ keyword = opts[:keyword]
6
+ size = opts[:size] || "leaderboard"
7
7
  ad = ad_select(keyword)
8
8
  if ad
9
- link_to image_tag(ad.ad_banner.url(size)), ad_man.click_through_advertisements_path(ad.id), :target => '_blank', :method => :post
9
+ link_to image_tag(ad.ad_banner.url(size)), ad_man.click_through_advertisements_path(ad.id), :target => '_blank', :method => :post
10
10
  end
11
11
  end
12
-
12
+
13
13
  def js_link_to_ad(keyword)
14
14
  ad_select(keyword)
15
15
  end
16
-
16
+
17
17
  protected
18
- #grab the keyword form request url
18
+
19
+ #grab the keyword form request url
19
20
  def get_keyword_from_url
20
21
  if request.env["REQUEST_PATH"]
21
22
  req_url = request.env["REQUEST_PATH"].split("/")
22
- keyword_names = Keyword.all.map{ |keyword| keyword.name }
23
+ keyword_names = Keyword.all.map(&:name)
23
24
  keyword = req_url & keyword_names
24
25
  end
25
26
  end
26
-
27
-
28
- def ad_select(keyword)
27
+
28
+ def ad_select(keyword=nil)
29
29
  keyword ||= get_keyword_from_url
30
- if keyword && !keyword.blank? && Keyword.find_by_name(keyword)
31
- keyword_id = Keyword.find_by_name(keyword).id
32
- ad = Advertisement.render_random_ad(keyword_id)
33
- #grab size? leaderboard or banner
34
- elsif keyword.nil? || keyword.blank? || keyword == 'all'
35
- ad = Advertisement.render_random_ad
30
+ ad = if keyword.present? && Keyword.find_by_name(keyword)
31
+ keyword_id = Keyword.find_by_name(keyword).id
32
+ Advertisement.render_random_ad(keyword_id)
33
+ #grab size? leaderboard or banner
34
+ elsif keyword.blank? || keyword == 'all'
35
+ Advertisement.render_random_ad
36
36
  end
37
37
  if ad
38
- ad.display_count += 1
39
- ad.save
40
- ad
38
+ ad.display_count += 1
39
+ ad.save
40
+ ad
41
41
  end
42
42
  end
43
-
43
+
44
44
  end
45
45
  end
@@ -5,26 +5,28 @@ module AdMan
5
5
  validates_with AttachmentPresenceValidator, :attributes => :ad_banner
6
6
  belongs_to :keyword
7
7
  has_attached_file :ad_banner, :styles => {
8
- :leaderboard => (AdMan.leaderboard_size)?(AdMan.leaderboard_size):'728X90',
9
- :banner => (AdMan.banner_size)?(AdMan.banner_size):'468X60'
8
+ :leaderboard => AdMan.leaderboard_size,
9
+ :banner => AdMan.banner_size,
10
+ :mobile_leaderboard => AdMan.mobile_leaderboard_size,
11
+ :square => AdMan.square_size,
12
+ :small_square => AdMan.small_square_size,
13
+ :large_rectangle => AdMan.large_rectangle_size,
14
+ :inline_rectangle => AdMan.inline_rectangle_size,
15
+ :skyscraper => AdMan.skyscraper_size,
16
+ :wide_skyscraper => AdMan.wide_skyscraper_size
10
17
  }
11
18
  validates_attachment :ad_banner, :presence => true,
12
19
  :content_type => {
13
- :content_type => (AdMan.content_type)?(AdMan.content_type): ["image/jpg","image/bmp","image/png", "image/gif", "image/jpeg"]
20
+ :content_type => AdMan.content_type
14
21
  },
15
- :size => { :in => 0..((AdMan.max_image_size)?(AdMan.max_image_size):50).kilobytes }
22
+ :size => { :in => 0..(AdMan.max_image_size).kilobytes }
16
23
  validates_presence_of :destination_url, :title, :keyword_id, :priority
17
24
  validates_uniqueness_of :title
18
25
  validate :image_dimensions, :on => :create
19
26
  after_initialize :init_priority
20
27
 
21
- def Advertisement.render_random_ad(keyword_id = nil)
22
- # ads = Advertisement.find_all_by_keyword_id(keyword_id)
23
- if keyword_id.nil?
24
- ads = Advertisement.where("start_date <= ? AND end_date >= ?", Date.today, Date.today)
25
- else
26
- ads = Advertisement.where("keyword_id = ? AND start_date <= ? AND end_date >= ? ", keyword_id, Date.today, Date.today)
27
- end
28
+ def self.render_random_ad(keyword_id = nil)
29
+ ads = fetch_ads(keyword_id)
28
30
  if ads.present?
29
31
  total_times = 1.0
30
32
  total_priority = 0.0
@@ -41,11 +43,20 @@ module AdMan
41
43
  end
42
44
 
43
45
  private
46
+
47
+ def self.fetch_ads(keyword_id=nil)
48
+ if keyword_id.blank?
49
+ where("start_date <= ? AND end_date >= ?", Date.today, Date.today)
50
+ else
51
+ where("keyword_id = ? AND start_date <= ? AND end_date >= ? ", keyword_id, Date.today, Date.today)
52
+ end
53
+ end
54
+
44
55
  def image_dimensions
45
56
  temp_file = ad_banner.queued_for_write[:leaderboard] #get the file
46
57
  dimensions = Paperclip::Geometry.from_file(temp_file)
47
- max_width = (AdMan.image_dimensions_width)?(AdMan.image_dimensions_width):728
48
- max_height = (AdMan.image_dimensions_height)?(AdMan.image_dimensions_height):90
58
+ max_width = AdMan.image_dimensions_width
59
+ max_height = AdMan.image_dimensions_height
49
60
  if (dimensions.width > max_width) || (dimensions.height > max_height)
50
61
  errors.add("banner_dimmensions",
51
62
  "must be image size: #{max_width}X#{max_height}.")
@@ -11,11 +11,11 @@
11
11
  </div>
12
12
  <% end %>
13
13
 
14
- <div class="field">
15
- <%= f.label :ad_banner, "Acceptable sizes: 728x90 or 468x60" %><br />
16
- <%= f.file_field :ad_banner %>
17
- <div class="preview"></div>
18
- </div><br />
14
+ <div class="field">
15
+ <%= f.label :ad_banner, "Acceptable sizes: 728x90 or 468x60" %><br />
16
+ <%= f.file_field :ad_banner %>
17
+ <div class="preview"></div>
18
+ </div><br />
19
19
  <div class="field">
20
20
  <%= f.label :title %><br />
21
21
  <%= f.text_field :title %>
@@ -25,33 +25,33 @@
25
25
  <%= f.url_field :destination_url %>
26
26
  </div><br />
27
27
  <div class="field">
28
- <%= f.label :keyword %>
29
- <% if @advertisement.keyword.nil? %>
30
- <!-- for new advertisement page -->
31
- <%= select_tag :keyword_id, options_for_select(AdMan::Keyword.available.collect { |keyword| [keyword.name, keyword.id]})%>
32
- <% else %>
33
- <!-- for edit advertisement page -->
34
- <%= select_tag :keyword_id, options_for_select(AdMan::Keyword.available.collect { |keyword| [keyword.name, keyword.id]} | [[@advertisement.keyword.name, @advertisement.keyword_id]],
35
- :selected => @advertisement.keyword_id) %>
36
- <% end %>
37
- <% if AdMan::Keyword.unavailable.count > 0%>
38
- <p>Warning: <b><%= AdMan::Keyword.unavailable.collect { |keyword| keyword.name } %></b> keyword has already been used <%= AdMan::Keyword::MAX_COUNT %> times.</p>
39
- <% end %>
28
+ <%= f.label :keyword %>
29
+ <% if @advertisement.keyword %>
30
+ <!-- for edit advertisement page -->
31
+ <%= f.collection_select :keyword_id, AdMan::Keyword.available | [@advertisement.keyword], :id, :name, :include_blank => true %>
32
+ <% else %>
33
+ <!-- for new advertisement page -->
34
+ <%= f.collection_select :keyword_id, AdMan::Keyword.available, :id, :name, :include_blank => true %>
35
+ <% end %>
36
+ <% if AdMan::Keyword.unavailable.count > 0 %>
37
+ <p>Warning: <b><%= AdMan::Keyword.unavailable.map(&:name) %></b> keyword has already been used <%= AdMan::Keyword::MAX_COUNT %> times.</p>
38
+ <% end %>
39
+ </div>
40
+ <br />
41
+ <!--
42
+ <div class="field">
43
+ <#%= f.label :priority %>
44
+ <#%= select_tag :priority, options_for_select(1..10) %>
45
+ </div><br />
46
+ -->
47
+ <div class="field">
48
+ <%= f.label :start_date %><br />
49
+ <%= f.date_select :start_date %>
40
50
  </div><br />
41
- <!--
42
51
  <div class="field">
43
- <#%= f.label :priority %>
44
- <#%= select_tag :priority, options_for_select(1..10) %>
45
- </div><br />
46
- -->
47
- <div class="field">
48
- <%= f.label :start_date %><br />
49
- <%= date_select("advertisement", "start_date") %>
50
- </div><br />
51
- <div class="field">
52
- <%=f.label :end_date %><br />
53
- <%= date_select("advertisement", "end_date", :default => 1.month.from_now) %>
54
- </div><br />
52
+ <%= f.label :end_date %><br />
53
+ <%= f.date_select :end_date, :default => 1.month.from_now %>
54
+ </div><br />
55
55
 
56
56
 
57
57
  <div class="actions">
data/lib/ad_man/engine.rb CHANGED
@@ -3,12 +3,16 @@ require 'paperclip'
3
3
  module AdMan
4
4
  class Engine < ::Rails::Engine
5
5
  isolate_namespace AdMan
6
-
7
- #expose helper methods to the consumer application
8
- initializer 'ad_man.action_controller' do |app|
9
- ActiveSupport.on_load :action_controller do
10
- helper AdMan::ApplicationHelper
11
- end
6
+
7
+ #expose helper methods to the consumer application
8
+ initializer 'ad_man.action_controller' do |app|
9
+ ActiveSupport.on_load :action_controller do
10
+ helper AdMan::ApplicationHelper
11
+ end
12
+ end
13
+
14
+ initializer 'ad_man.assets.precompile' do |app|
15
+ app.config.assets.precompile += %w(advertisements.js)
12
16
  end
13
17
  end
14
18
  end
@@ -1,3 +1,3 @@
1
1
  module AdMan
2
- VERSION = "0.0.10"
2
+ VERSION = "0.0.11"
3
3
  end
data/lib/ad_man.rb CHANGED
@@ -1,9 +1,36 @@
1
1
  require "ad_man/engine"
2
2
 
3
3
  module AdMan
4
- mattr_accessor :leaderboard_size, :banner_size
4
+ # advert size names
5
+ mattr_accessor :leaderboard_size,
6
+ :banner_size,
7
+ :mobile_leaderboard_size,
8
+ :square_size,
9
+ :small_square_size,
10
+ :large_rectangle_size,
11
+ :inline_rectangle_size,
12
+ :skyscraper_size,
13
+ :wide_skyscraper_size
14
+
5
15
  mattr_accessor :image_dimensions_width, :image_dimensions_height
6
16
  mattr_accessor :max_image_size
7
17
  mattr_accessor :content_type
8
18
  mattr_accessor :max_count
19
+
20
+ # initialize default sizes
21
+ self.leaderboard_size = "728X90"
22
+ self.banner_size = '468X60'
23
+ self.mobile_leaderboard_size = '320X50'
24
+ self.square_size = '250X250'
25
+ self.small_square_size = '200X200'
26
+ self.large_rectangle_size = '336X280'
27
+ self.inline_rectangle_size = '300X250'
28
+ self.skyscraper_size = '120X600'
29
+ self.wide_skyscraper_size = '160X600'
30
+
31
+ # other attributes
32
+ self.max_image_size = 50
33
+ self.content_type = ["image/jpg","image/bmp","image/png", "image/gif", "image/jpeg"]
34
+ self.image_dimensions_height = 90
35
+ self.image_dimensions_width = 728
9
36
  end
@@ -7,7 +7,7 @@ module AdMan
7
7
  end
8
8
 
9
9
  def add_routes
10
- route("mount AdMan::Engine => "/ad_man")
10
+ route("mount AdMan::Engine => /ad_man")
11
11
  end
12
12
 
13
13
  def install_migrations
data/test/ad_man_test.rb CHANGED
@@ -4,4 +4,16 @@ class AdManTest < ActiveSupport::TestCase
4
4
  test "truth" do
5
5
  assert_kind_of Module, AdMan
6
6
  end
7
+
8
+ test "default configs" do
9
+ assert_equal "728X90", AdMan.leaderboard_size.upcase
10
+ assert_equal "468X60", AdMan.banner_size.upcase
11
+ assert_equal "320X50", AdMan.mobile_leaderboard_size.upcase
12
+ assert_equal "250X250", AdMan.square_size.upcase
13
+ assert_equal "200X200", AdMan.small_square_size.upcase
14
+ assert_equal "336X280", AdMan.large_rectangle_size.upcase
15
+ assert_equal "300X250", AdMan.inline_rectangle_size.upcase
16
+ assert_equal "120X600", AdMan.skyscraper_size.upcase
17
+ assert_equal "160X600", AdMan.wide_skyscraper_size.upcase
18
+ end
7
19
  end
@@ -9,8 +9,8 @@
9
9
  <script>
10
10
  // showAd(keyword)
11
11
  <% if AdMan::Keyword.first %>
12
- AdMan.showAd('<%= AdMan::Keyword.first.name %>', 'banner', 'advertisement1'); //
13
- AdMan.showAd('<%= AdMan::Keyword.last.name %>', 'leaderboard', 'advertisement2');
12
+ AdMan.showAd('advertisement1', '<%= AdMan::Keyword.first.name %>', 'banner'); //
13
+ AdMan.showAd('advertisement2', '<%= AdMan::Keyword.last.name %>', 'leaderboard');
14
14
  <% end %>
15
15
  </script>
16
16
 
Binary file