rails_adserver 1.0.0

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.
Files changed (173) hide show
  1. data/MIT-LICENSE +20 -0
  2. data/README.rdoc +0 -0
  3. data/Rakefile +40 -0
  4. data/app/assets/javascripts/rails_adserver/adspaces.js +2 -0
  5. data/app/assets/javascripts/rails_adserver/advertisements.js +2 -0
  6. data/app/assets/javascripts/rails_adserver/application.js +15 -0
  7. data/app/assets/javascripts/rails_adserver/rails_adserver_form.js.coffee +47 -0
  8. data/app/assets/stylesheets/rails_adserver/adspaces.css +4 -0
  9. data/app/assets/stylesheets/rails_adserver/advertisements.css +4 -0
  10. data/app/assets/stylesheets/rails_adserver/application.css +13 -0
  11. data/app/assets/stylesheets/rails_adserver/bootstrap-responsive.css +581 -0
  12. data/app/assets/stylesheets/rails_adserver/bootstrap.css +3496 -0
  13. data/app/assets/stylesheets/rails_adserver/pages.css +16 -0
  14. data/app/controllers/rails_adserver/adspaces_controller.rb +88 -0
  15. data/app/controllers/rails_adserver/advertisements_controller.rb +113 -0
  16. data/app/controllers/rails_adserver/application_controller.rb +25 -0
  17. data/app/controllers/rails_adserver/pages_controller.rb +9 -0
  18. data/app/helpers/rails_adserver/adspaces_helper.rb +4 -0
  19. data/app/helpers/rails_adserver/advertisements_helper.rb +4 -0
  20. data/app/helpers/rails_adserver/application_helper.rb +4 -0
  21. data/app/helpers/rails_adserver/pages_helper.rb +5 -0
  22. data/app/models/rails_adserver/adspace.rb +6 -0
  23. data/app/models/rails_adserver/advertisement.rb +110 -0
  24. data/app/models/rails_adserver/click.rb +5 -0
  25. data/app/uploaders/rails_adserver/advertisement_uploader.rb +56 -0
  26. data/app/views/layouts/rails_adserver/_sidebar.html.haml +21 -0
  27. data/app/views/layouts/rails_adserver/_topbar.html.haml +15 -0
  28. data/app/views/layouts/rails_adserver/advertisement.html.haml +3 -0
  29. data/app/views/layouts/rails_adserver/application.html.haml +25 -0
  30. data/app/views/rails_adserver/adspaces/_form.html.haml +16 -0
  31. data/app/views/rails_adserver/adspaces/edit.html.haml +1 -0
  32. data/app/views/rails_adserver/adspaces/index.html.haml +17 -0
  33. data/app/views/rails_adserver/adspaces/new.html.haml +1 -0
  34. data/app/views/rails_adserver/adspaces/show.html.haml +0 -0
  35. data/app/views/rails_adserver/advertisements/_advertisement.html.haml +7 -0
  36. data/app/views/rails_adserver/advertisements/_advertisements_table.html.haml +38 -0
  37. data/app/views/rails_adserver/advertisements/_form.html.haml +103 -0
  38. data/app/views/rails_adserver/advertisements/edit.html.haml +1 -0
  39. data/app/views/rails_adserver/advertisements/index.html.haml +2 -0
  40. data/app/views/rails_adserver/advertisements/new.html.haml +1 -0
  41. data/app/views/rails_adserver/advertisements/show.html.haml +5 -0
  42. data/app/views/rails_adserver/pages/home.html.haml +9 -0
  43. data/config/initializers/geokit.rb +1 -0
  44. data/config/initializers/haml.rb +2 -0
  45. data/config/routes.rb +10 -0
  46. data/db/migrate/20120227014859_create_rails_adserver_advertisements.rb +13 -0
  47. data/db/migrate/20120227014945_create_rails_adserver_clicks.rb +9 -0
  48. data/db/migrate/20120228000410_add_param_restriction_to_advertisement.rb +5 -0
  49. data/db/migrate/20120228000647_add_name_of_param_restriction_to_advertisement.rb +5 -0
  50. data/db/migrate/20120228010151_create_rails_adserver_adspaces.rb +8 -0
  51. data/db/migrate/20120228010315_add_name_to_adspace.rb +5 -0
  52. data/db/migrate/20120228043946_add_adspace_id_to_advertisement.rb +6 -0
  53. data/db/migrate/20120305034458_add_ad_type_to_advertisement.rb +6 -0
  54. data/db/migrate/20120305040026_add_parameter_restriction_boolean_to_advertisement.rb +6 -0
  55. data/db/migrate/20120305044238_add_more_options_to_advertisement.rb +7 -0
  56. data/db/migrate/20120305054319_add_image_to_advertisement.rb +5 -0
  57. data/db/migrate/20120305195421_add_max_clicks_to_advertisement.rb +6 -0
  58. data/db/migrate/20120305203049_add_indexes.rb +8 -0
  59. data/db/migrate/20120305212451_change_indexes.rb +11 -0
  60. data/db/migrate/20120305214753_add_click_count_to_advertisement.rb +6 -0
  61. data/db/migrate/20120306023105_geolocation.rb +5 -0
  62. data/db/migrate/20120306052705_add_geolocation_names_to_advertisements.rb +7 -0
  63. data/db/migrate/20120306065447_add_advertisement_indexes.rb +8 -0
  64. data/db/migrate/20120323174313_add_backup_boolean_to_ads.rb +5 -0
  65. data/db/migrate/20120328043354_add_view_count_to_ads.rb +6 -0
  66. data/db/migrate/20120328043651_add_views_to_ads.rb +6 -0
  67. data/lib/rails_adserver.rb +13 -0
  68. data/lib/rails_adserver/config.rb +13 -0
  69. data/lib/rails_adserver/engine.rb +5 -0
  70. data/lib/rails_adserver/version.rb +3 -0
  71. data/lib/tasks/rails_adserver_tasks.rake +4 -0
  72. data/test/dummy/README.rdoc +261 -0
  73. data/test/dummy/Rakefile +7 -0
  74. data/test/dummy/app/assets/javascripts/application.js +15 -0
  75. data/test/dummy/app/assets/javascripts/page.js +5 -0
  76. data/test/dummy/app/assets/stylesheets/application.css +13 -0
  77. data/test/dummy/app/assets/stylesheets/page.css +4 -0
  78. data/test/dummy/app/controllers/application_controller.rb +3 -0
  79. data/test/dummy/app/controllers/page_controller.rb +4 -0
  80. data/test/dummy/app/helpers/application_helper.rb +2 -0
  81. data/test/dummy/app/helpers/page_helper.rb +2 -0
  82. data/test/dummy/app/models/user.rb +9 -0
  83. data/test/dummy/app/views/layouts/application.html.erb +14 -0
  84. data/test/dummy/app/views/page/home.html.haml +1 -0
  85. data/test/dummy/config.ru +4 -0
  86. data/test/dummy/config/application.rb +57 -0
  87. data/test/dummy/config/boot.rb +10 -0
  88. data/test/dummy/config/database.yml +25 -0
  89. data/test/dummy/config/environment.rb +5 -0
  90. data/test/dummy/config/environments/development.rb +37 -0
  91. data/test/dummy/config/environments/production.rb +67 -0
  92. data/test/dummy/config/environments/test.rb +37 -0
  93. data/test/dummy/config/initializers/backtrace_silencers.rb +7 -0
  94. data/test/dummy/config/initializers/carrierwave.rb +4 -0
  95. data/test/dummy/config/initializers/devise.rb +223 -0
  96. data/test/dummy/config/initializers/inflections.rb +15 -0
  97. data/test/dummy/config/initializers/mime_types.rb +5 -0
  98. data/test/dummy/config/initializers/rails_adserver.rb +5 -0
  99. data/test/dummy/config/initializers/secret_token.rb +7 -0
  100. data/test/dummy/config/initializers/session_store.rb +8 -0
  101. data/test/dummy/config/initializers/wrap_parameters.rb +14 -0
  102. data/test/dummy/config/locales/devise.en.yml +57 -0
  103. data/test/dummy/config/locales/en.yml +5 -0
  104. data/test/dummy/config/routes.rb +10 -0
  105. data/test/dummy/db/development.sqlite3 +0 -0
  106. data/test/dummy/db/migrate/20120227204751_devise_create_users.rb +49 -0
  107. data/test/dummy/db/migrate/20120307204255_add_can_manage_ads_to_users.rb +6 -0
  108. data/test/dummy/db/schema.rb +84 -0
  109. data/test/dummy/db/test.sqlite3 +0 -0
  110. data/test/dummy/log/development.log +26491 -0
  111. data/test/dummy/public/404.html +26 -0
  112. data/test/dummy/public/422.html +26 -0
  113. data/test/dummy/public/500.html +25 -0
  114. data/test/dummy/public/favicon.ico +0 -0
  115. data/test/dummy/public/public/uploads/rails_adserver/advertisement/image/1/uszgP.jpg +0 -0
  116. data/test/dummy/script/rails +6 -0
  117. data/test/dummy/test/fixtures/users.yml +11 -0
  118. data/test/dummy/test/functional/page_controller_test.rb +9 -0
  119. data/test/dummy/test/unit/helpers/page_helper_test.rb +4 -0
  120. data/test/dummy/test/unit/user_test.rb +7 -0
  121. data/test/dummy/tmp/cache/assets/C8F/860/sprockets%2Fd57276033f66173927e782e5c5b90c7b +0 -0
  122. data/test/dummy/tmp/cache/assets/C9E/E90/sprockets%2F4cebc1ca866a787736432410406a1b50 +0 -0
  123. data/test/dummy/tmp/cache/assets/CA6/990/sprockets%2F379e6655f2bcbb2380bc62b313314727 +0 -0
  124. data/test/dummy/tmp/cache/assets/CA7/ED0/sprockets%2F1e7b5a8a1137789918c115c01224bf4e +0 -0
  125. data/test/dummy/tmp/cache/assets/CC5/850/sprockets%2F7744952a67b1f4545bee9716f198c19b +0 -0
  126. data/test/dummy/tmp/cache/assets/CD8/370/sprockets%2F357970feca3ac29060c1e3861e2c0953 +0 -0
  127. data/test/dummy/tmp/cache/assets/CE6/0F0/sprockets%2Ff173f2af55165a9415194d3e854c85da +0 -0
  128. data/test/dummy/tmp/cache/assets/CE7/DA0/sprockets%2F8ed8b29fe6a806301c31c79881a90c09 +0 -0
  129. data/test/dummy/tmp/cache/assets/CF2/CD0/sprockets%2Fda5995b74493c93c586f584b54c74a0b +0 -0
  130. data/test/dummy/tmp/cache/assets/CF3/920/sprockets%2F55f039ac18775d9358bdc75406f1e8f5 +0 -0
  131. data/test/dummy/tmp/cache/assets/D11/7F0/sprockets%2F9bcb57444f3287a8fa6fc45404e414c2 +0 -0
  132. data/test/dummy/tmp/cache/assets/D32/A10/sprockets%2F13fe41fee1fe35b49d145bcc06610705 +0 -0
  133. data/test/dummy/tmp/cache/assets/D35/D40/sprockets%2F75eff8f38359ea04cb0101ae2b91d702 +0 -0
  134. data/test/dummy/tmp/cache/assets/D3C/710/sprockets%2Fe62ab8b4376ed759a9cb72a62b0651e0 +0 -0
  135. data/test/dummy/tmp/cache/assets/D3D/A90/sprockets%2Fb9991dccd27b48a625b6a0146717ade3 +0 -0
  136. data/test/dummy/tmp/cache/assets/D3E/910/sprockets%2F5fdb0e602ada6a930583809f853d39bb +0 -0
  137. data/test/dummy/tmp/cache/assets/D3F/D00/sprockets%2Fbe9a1d851c3b30e4a710983eda7f7196 +0 -0
  138. data/test/dummy/tmp/cache/assets/D42/E30/sprockets%2F261c172e1fdf9b39a4678a48371eaad6 +0 -0
  139. data/test/dummy/tmp/cache/assets/D4D/2F0/sprockets%2Fd7dd6367378df15e4f0bb6d93fb41529 +0 -0
  140. data/test/dummy/tmp/cache/assets/D4E/1B0/sprockets%2Ff7cbd26ba1d28d48de824f0e94586655 +0 -0
  141. data/test/dummy/tmp/cache/assets/D5A/EA0/sprockets%2Fd771ace226fc8215a3572e0aa35bb0d6 +0 -0
  142. data/test/dummy/tmp/cache/assets/D5C/210/sprockets%2Fc78ac0bb1ca02e0ac1a566663840f8d6 +0 -0
  143. data/test/dummy/tmp/cache/assets/D5D/040/sprockets%2F539152cca8a2a9422e2a3ffa2a285d2d +0 -0
  144. data/test/dummy/tmp/cache/assets/D6D/670/sprockets%2F6ca4a9214539aeaf6f8401d3b77af16f +0 -0
  145. data/test/dummy/tmp/cache/assets/D73/BD0/sprockets%2Fac1f8d241dad59f05983cc1039ff4c58 +0 -0
  146. data/test/dummy/tmp/cache/assets/D7B/EA0/sprockets%2F0faa78844d169df84da0f122c89eb4f9 +0 -0
  147. data/test/dummy/tmp/cache/assets/D93/220/sprockets%2Fc0dcb0c6b055384fbd88d5b529c0da08 +0 -0
  148. data/test/dummy/tmp/cache/assets/DA0/180/sprockets%2F399fd2be6e4cf00a819a2630f8dd7ea2 +0 -0
  149. data/test/dummy/tmp/cache/assets/DB3/D90/sprockets%2F13d110dd2bde3bcd20b72f882330feae +0 -0
  150. data/test/dummy/tmp/cache/assets/DBA/2C0/sprockets%2F3879aa153bb0fe0de0fa0281f8cba2f2 +0 -0
  151. data/test/dummy/tmp/cache/assets/DCD/700/sprockets%2F57ee5a1f5e64e611b990eeadb75b14cb +0 -0
  152. data/test/dummy/tmp/cache/assets/DDC/400/sprockets%2Fcffd775d018f68ce5dba1ee0d951a994 +0 -0
  153. data/test/dummy/tmp/cache/assets/DDD/700/sprockets%2F78da8de4fc4dba2a5e7fa624ff518973 +0 -0
  154. data/test/dummy/tmp/cache/assets/E04/890/sprockets%2F2f5173deea6c795b8fdde723bb4b63af +0 -0
  155. data/test/dummy/tmp/cache/assets/E06/950/sprockets%2Fbc8b0eff6fc13759f0c069b4f8bc3e6c +0 -0
  156. data/test/dummy/tmp/cache/assets/EB3/120/sprockets%2Fbaadea6fabac9ad5d1215ef8d3bf67a6 +0 -0
  157. data/test/fixtures/rails_adserver/adspaces.yml +11 -0
  158. data/test/fixtures/rails_adserver/advertisements.yml +15 -0
  159. data/test/fixtures/rails_adserver/clicks.yml +7 -0
  160. data/test/functional/rails_adserver/adspaces_controller_test.rb +51 -0
  161. data/test/functional/rails_adserver/advertisements_controller_test.rb +51 -0
  162. data/test/functional/rails_adserver/pages_controller_test.rb +9 -0
  163. data/test/integration/navigation_test.rb +10 -0
  164. data/test/rails_adserver_test.rb +7 -0
  165. data/test/test_helper.rb +10 -0
  166. data/test/unit/helpers/rails_adserver/adspaces_helper_test.rb +6 -0
  167. data/test/unit/helpers/rails_adserver/advertisements_helper_test.rb +6 -0
  168. data/test/unit/helpers/rails_adserver/pages_helper_test.rb +6 -0
  169. data/test/unit/rails_adserver/adspace_test.rb +9 -0
  170. data/test/unit/rails_adserver/advertisement_test.rb +9 -0
  171. data/test/unit/rails_adserver/click_test.rb +9 -0
  172. data/test/unit/rails_adserver/clicks_test.rb +9 -0
  173. metadata +401 -0
@@ -0,0 +1,21 @@
1
+ .span3
2
+ .well.sidebar-nav
3
+ %ul.nav.nav-list
4
+ %li.nav-header Navigation
5
+ %li
6
+ %a{:href => root_path}
7
+ Overview
8
+ %li.nav-header Ad-Spaces
9
+ %li
10
+ %a{:href => adspaces_path}
11
+ Ad-Spaces
12
+ %li
13
+ %a{:href => new_adspace_path}
14
+ New Ad-Space
15
+ %li.nav-header Advertisements
16
+ %li
17
+ %a{:href => advertisements_path}
18
+ Advertisements
19
+ %li
20
+ %a{:href => new_advertisement_path}
21
+ New Advertisement
@@ -0,0 +1,15 @@
1
+ .navbar.navbar-fixed-top
2
+ .navbar-inner
3
+ .container-fluid
4
+ %a.btn.btn-navbar{"data-target" => ".nav-collapse", "data-toggle" => "collapse"}
5
+ %span.icon-bar
6
+ %span.icon-bar
7
+ %span.icon-bar
8
+ %a.brand{:href => root_path}= "#{_application_name} Adserver"
9
+ .nav-collapse
10
+ %ul.nav
11
+ %li
12
+ %a{:href => "/"} Application
13
+ %p.navbar-text.pull-right
14
+ Logged in as
15
+ %a{:href => "#"}= "#{_current_user.email}"
@@ -0,0 +1,3 @@
1
+ !!! 5
2
+ %html
3
+ = yield
@@ -0,0 +1,25 @@
1
+ !!! 5
2
+ %html
3
+ %head
4
+ %title= "Adserver | #{@title}"
5
+ = stylesheet_link_tag "rails_adserver/application", :media => "all"
6
+ = javascript_include_tag "rails_adserver/application"
7
+ = csrf_meta_tags
8
+ :css
9
+ body {
10
+ padding-top: 60px;
11
+ padding-bottom: 40px;
12
+ }
13
+ .sidebar-nav {
14
+ padding: 9px 0;
15
+ }
16
+ %body
17
+ = render 'layouts/rails_adserver/topbar'
18
+ .container-fluid
19
+ .row-fluid
20
+ = render 'layouts/rails_adserver/sidebar'
21
+ .span9
22
+ = yield
23
+
24
+ %footer
25
+ %p © Rails Adserver 2012
@@ -0,0 +1,16 @@
1
+ = form_for(@adspace, :html => {:class => 'form-horizontal'}) do |f|
2
+ - if @adspace.errors.any?
3
+ #error_explanation
4
+ %h2
5
+ = pluralize(@adspace.errors.count, "error")
6
+ prohibited this adspace from being saved:
7
+ %ul
8
+ - @adspace.errors.full_messages.each do |msg|
9
+ %li= msg
10
+ %legend= @title
11
+ .control-group
12
+ = f.label :name, :class => 'control-label'
13
+ .controls
14
+ = f.text_field :name
15
+ .form-actions
16
+ = f.submit "Submit", :class => 'btn btn-primary'
@@ -0,0 +1 @@
1
+ = render 'form'
@@ -0,0 +1,17 @@
1
+ %h1= @title
2
+ %table.table.table-striped
3
+ %tr
4
+ %th Id
5
+ %th Name
6
+ %th
7
+ %th
8
+ %th
9
+ - @adspaces.each do |adspace|
10
+ %tr
11
+ %td= adspace.id
12
+ %td= adspace.name
13
+ %td= link_to 'Show', adspace
14
+ %td= link_to 'Edit', edit_adspace_path(adspace)
15
+ %td= link_to 'Destroy', adspace, confirm: 'Are you sure?', method: :delete
16
+ %br/
17
+ = link_to 'New Adspace', new_adspace_path
@@ -0,0 +1 @@
1
+ = render 'form'
File without changes
@@ -0,0 +1,7 @@
1
+ .advertisement{:style=>'text-align:center'}
2
+ - unless @advertisement == nil
3
+ - if @advertisement.ad_type == 'ad_service'
4
+ = @advertisement.ad_text.html_safe
5
+ - elsif @advertisement.ad_type == 'image_link'
6
+ %a{:href => rails_adserver.ad_click_path(@advertisement.id), :rel => "nofollow"}
7
+ = image_tag @advertisement.image_url, :size => "#{@advertisement.width}x#{@advertisement.height}"
@@ -0,0 +1,38 @@
1
+ %table.table.table-striped
2
+ %tr
3
+ %th Title
4
+ %th Active?
5
+ %th Max Clicks
6
+ %th Clicks
7
+ %th Max Impressions
8
+ %th Impressions
9
+ %th
10
+ %th
11
+ %th
12
+ - @advertisements.each do |advertisement|
13
+ %tr
14
+ %td= advertisement.title
15
+ %td= advertisement.is_active
16
+ %td
17
+ - if advertisement.max_clicks == 0 || advertisement.max_clicks == nil
18
+ Unlimited
19
+ - else
20
+ = advertisement.max_clicks
21
+ %td
22
+ - if advertisement.clicks == []
23
+ None
24
+ -else
25
+ = advertisement.clicks
26
+ %td
27
+ - if advertisement.max_impressions == 0 || advertisement.max_impressions == nil
28
+ Unlimited
29
+ - else
30
+ = advertisement.max_impressions
31
+ %td
32
+ - if advertisement.impressions_count == []
33
+ None
34
+ -else
35
+ = advertisement.impressions_count
36
+ %td= link_to 'Show', advertisement
37
+ %td= link_to 'Edit', edit_advertisement_path(advertisement)
38
+ %td= link_to 'Destroy', advertisement, confirm: 'Are you sure?', method: :delete
@@ -0,0 +1,103 @@
1
+ = form_for(@advertisement, :html => {:class => 'form-horizontal', :multipart => true}) do |f|
2
+ - if @advertisement.errors.any?
3
+ #error_explanation
4
+ %h2
5
+ = pluralize(@advertisement.errors.count, "error")
6
+ prohibited this advertisement from being saved:
7
+ %ul
8
+ - @advertisement.errors.full_messages.each do |msg|
9
+ %li= msg
10
+ %legend= @title
11
+ .control-group
12
+ = f.label :title, :class => "control-label"
13
+ .controls
14
+ = f.text_field :title
15
+ .control-group
16
+ = f.label :adspace, :class => "control-label"
17
+ .controls
18
+ = f.collection_select :adspace_id, RailsAdserver::Adspace.all, :id, :name, :prompt => true
19
+ .control-group
20
+ = f.label :ad_type, :class => "control-label"
21
+ .controls
22
+ %label.radio
23
+ = f.radio_button(:ad_type, "ad_service")
24
+ Script Ad
25
+ %label.radio
26
+ = f.radio_button(:ad_type, "image_link")
27
+ Image Link
28
+ .control-group
29
+ = f.label "Backup Ad", :class => 'control-label'
30
+ .controls
31
+ = f.check_box :backup
32
+ .control-group
33
+ = f.label :ad_text, :class => "control-label", :id => "ad_text"
34
+ .controls
35
+ = f.text_area :ad_text, :rows => "5"
36
+ .control-group
37
+ = f.label :ad_image, :class => 'control-label', :id => 'image'
38
+ .controls
39
+ = f.file_field :image, :class => "input-file"
40
+ .control-group
41
+ = f.label :width, :class => "control-label", :id => "width"
42
+ .controls
43
+ = f.number_field :width
44
+ .control-group
45
+ = f.label :height, :class => "control-label", :id => "height"
46
+ .controls
47
+ = f.number_field :height
48
+ .control-group
49
+ = f.label :url, :class => "control-label", :id => "url"
50
+ .controls
51
+ = f.text_field :url
52
+ .control-group
53
+ = f.label :max_clicks, :class => "control-label"
54
+ .controls
55
+ = f.number_field :max_clicks
56
+ %p.help-block Use 0 or blank for infinite clicks.
57
+ .control-group
58
+ = f.label "Max Impressions", :class => "control-label"
59
+ .controls
60
+ = f.number_field :max_impressions
61
+ %p.help-block Use 0 or blank for infinite impressions.
62
+ .control-group
63
+ = f.label "Parameter Restriction?", :class => "control-label"
64
+ .controls
65
+ %label.radio
66
+ = f.radio_button(:parameter_restriction_boolean, false)
67
+ False
68
+ %label.radio
69
+ = f.radio_button(:parameter_restriction_boolean, true)
70
+ True
71
+ .control-group
72
+ = f.label :param_restriction_name, :class => "control-label", :id => "param_name"
73
+ .controls
74
+ %select{:id => "advertisement_param_restriction_name", :name => "advertisement[param_restriction_name]"}
75
+ - ActiveRecord::Base.descendants.each do |model|
76
+ - unless model.name == "RailsAdserver::Advertisement" or model.name == "RailsAdserver::Adspace"
77
+ %optgroup{:label => "#{model.name}"}
78
+ - model.column_names.each do |name|
79
+ %option{:value => "#{name}"}= name
80
+ %p.help-block Optional, Name for Reference
81
+ .control-group
82
+ = f.label :param_restriction, :class => "control-label", :id => "param_restriction_value"
83
+ .controls
84
+ = f.text_field :param_restriction
85
+ .control-group
86
+ = f.label :geolocation?, :class => "control-label", :id => "geo"
87
+ .controls
88
+ %label.radio
89
+ = f.radio_button(:geolocation_boolean, false)
90
+ False
91
+ %label.radio
92
+ = f.radio_button(:geolocation_boolean, true)
93
+ True
94
+ .control-group
95
+ = f.label :geolocation_location, :class => "control-label", :id => "geo_location"
96
+ .controls
97
+ = f.text_field :geolocation_location
98
+ .control-group
99
+ = f.label :active, :class => "control-label"
100
+ .controls
101
+ = f.check_box :is_active
102
+ .form-actions
103
+ = f.submit "Submit", :class => "btn btn-primary"
@@ -0,0 +1 @@
1
+ = render 'form'
@@ -0,0 +1,2 @@
1
+ %h1 Listing advertisements
2
+ = render 'rails_adserver/advertisements/advertisements_table', :locals => { :object => @advertisements }
@@ -0,0 +1 @@
1
+ = render 'form'
@@ -0,0 +1,5 @@
1
+ - if @advertisement.ad_type == 'ad_service'
2
+ = @advertisement.ad_text.html_safe
3
+ - if @advertisement.ad_type == 'image_link'
4
+ %a{:href => @advertisement.url}
5
+ = image_tag @advertisement.image_url, :size => "#{@advertisement.width}x#{@advertisement.height}"
@@ -0,0 +1,9 @@
1
+ - @adspaces.each do |space|
2
+ %h1= "#{space.name} Active Ads:"
3
+ - @advertisements = space.advertisements.where('is_active = ?',true)
4
+ - unless @advertisements == []
5
+ = render 'rails_adserver/advertisements/advertisements_table', :locals => { :object => @advertisements }
6
+ - else
7
+ No Active Ads
8
+ %br/
9
+ %br/
@@ -0,0 +1 @@
1
+ require 'geokit'
@@ -0,0 +1,2 @@
1
+ require "haml"
2
+ Haml::Template.options[:ugly] = true
data/config/routes.rb ADDED
@@ -0,0 +1,10 @@
1
+ RailsAdserver::Engine.routes.draw do
2
+ resources :adspaces
3
+
4
+ resources :advertisements
5
+ root :to => 'pages#home'
6
+ match '/ad_rotator/:id', :to => 'pages#rotator'
7
+ match '/click/:id', :to => 'advertisements#click', :as => 'ad_click'
8
+ match '/ad/space/:adspace_id/param/:id', :to => 'advertisements#ad_param'
9
+ match '/ad/space/:adspace_id', :to => 'advertisements#ad_space'
10
+ end
@@ -0,0 +1,13 @@
1
+ class CreateRailsAdserverAdvertisements < ActiveRecord::Migration
2
+ def change
3
+ create_table :rails_adserver_advertisements do |t|
4
+ t.string :title
5
+ t.text :content
6
+ t.integer :width
7
+ t.integer :height
8
+ t.boolean :is_active
9
+
10
+ t.timestamps
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,9 @@
1
+ class CreateRailsAdserverClicks < ActiveRecord::Migration
2
+ def change
3
+ create_table :rails_adserver_clicks do |t|
4
+ t.string :ip_address
5
+
6
+ t.timestamps
7
+ end
8
+ end
9
+ end
@@ -0,0 +1,5 @@
1
+ class AddParamRestrictionToAdvertisement < ActiveRecord::Migration
2
+ def change
3
+ add_column :rails_adserver_advertisements, :param_restriction, :string
4
+ end
5
+ end
@@ -0,0 +1,5 @@
1
+ class AddNameOfParamRestrictionToAdvertisement < ActiveRecord::Migration
2
+ def change
3
+ add_column :rails_adserver_advertisements, :param_restriction_name, :string
4
+ end
5
+ end
@@ -0,0 +1,8 @@
1
+ class CreateRailsAdserverAdspaces < ActiveRecord::Migration
2
+ def change
3
+ create_table :rails_adserver_adspaces do |t|
4
+
5
+ t.timestamps
6
+ end
7
+ end
8
+ end
@@ -0,0 +1,5 @@
1
+ class AddNameToAdspace < ActiveRecord::Migration
2
+ def change
3
+ add_column :rails_adserver_adspaces, :name, :string
4
+ end
5
+ end
@@ -0,0 +1,6 @@
1
+ class AddAdspaceIdToAdvertisement < ActiveRecord::Migration
2
+ def change
3
+ add_column :rails_adserver_advertisements, :adspace_id, :integer
4
+ add_index :rails_adserver_advertisements, :adspace_id
5
+ end
6
+ end
@@ -0,0 +1,6 @@
1
+ class AddAdTypeToAdvertisement < ActiveRecord::Migration
2
+ def change
3
+ add_column :rails_adserver_advertisements, :ad_type, :string
4
+
5
+ end
6
+ end
@@ -0,0 +1,6 @@
1
+ class AddParameterRestrictionBooleanToAdvertisement < ActiveRecord::Migration
2
+ def change
3
+ add_column :rails_adserver_advertisements, :parameter_restriction_boolean, :boolean
4
+
5
+ end
6
+ end
@@ -0,0 +1,7 @@
1
+ class AddMoreOptionsToAdvertisement < ActiveRecord::Migration
2
+ def change
3
+ add_column :rails_adserver_advertisements, :ad_text, :text
4
+ add_column :rails_adserver_advertisements, :url, :string
5
+ add_column :rails_adserver_advertisements, :geolocation_boolean, :boolean
6
+ end
7
+ end
@@ -0,0 +1,5 @@
1
+ class AddImageToAdvertisement < ActiveRecord::Migration
2
+ def change
3
+ add_column :rails_adserver_advertisements, :image, :string
4
+ end
5
+ end
@@ -0,0 +1,6 @@
1
+ class AddMaxClicksToAdvertisement < ActiveRecord::Migration
2
+ def change
3
+ add_column :rails_adserver_advertisements, :max_clicks, :integer
4
+ add_column :rails_adserver_advertisements, :clicks, :integer
5
+ end
6
+ end
@@ -0,0 +1,8 @@
1
+ class AddIndexes < ActiveRecord::Migration
2
+ def change
3
+ add_column :rails_adserver_clicks, :rails_adserver_advertisement_id, :integer
4
+ add_index :rails_adserver_clicks, :rails_adserver_advertisement_id, :name => 'rails_adserver_clicks_ad_id_index'
5
+ add_column :rails_adserver_advertisements, :rails_adserver_adspace_id, :integer
6
+ add_index :rails_adserver_advertisements, :rails_adserver_adspace_id, :name => 'rails_adserver_clicks_adspace_id_index'
7
+ end
8
+ end
@@ -0,0 +1,11 @@
1
+ class ChangeIndexes < ActiveRecord::Migration
2
+ def change
3
+ remove_index :rails_adserver_clicks, :name => 'rails_adserver_clicks_ad_id_index'
4
+ remove_index :rails_adserver_advertisements, :name => 'rails_adserver_clicks_adspace_id_index'
5
+ remove_column :rails_adserver_clicks, :rails_adserver_advertisement_id
6
+ remove_column :rails_adserver_advertisements, :rails_adserver_adspace_id
7
+
8
+ add_column :rails_adserver_clicks, :advertisement_id, :integer
9
+ add_index :rails_adserver_clicks, :advertisement_id
10
+ end
11
+ end