banner_lite 0.0.3 → 0.0.4
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 +4 -4
- data/Rakefile +9 -0
- data/app/controllers/banner_lite/{banners_controller.rb → image_banners_controller.rb} +9 -9
- data/app/controllers/banner_lite/text_banners_controller.rb +53 -0
- data/app/helpers/banner_lite/{banners_helper.rb → image_banners_helper.rb} +3 -3
- data/app/helpers/banner_lite/text_banners_helper.rb +12 -0
- data/app/models/banner_lite/banner.rb +0 -29
- data/app/models/banner_lite/image_banner.rb +32 -0
- data/app/models/banner_lite/text_banner.rb +5 -0
- data/app/views/banner_lite/{banners → image_banners}/_form.html.erb +0 -0
- data/app/views/banner_lite/{banners → image_banners}/edit.html.erb +1 -1
- data/app/views/banner_lite/{banners → image_banners}/index.html.erb +2 -2
- data/app/views/banner_lite/{banners → image_banners}/new.html.erb +1 -1
- data/app/views/banner_lite/image_banners/preview.html.erb +1 -0
- data/app/views/banner_lite/{banners → image_banners}/show.html.erb +2 -2
- data/app/views/banner_lite/text_banners/_form.html.erb +33 -0
- data/app/views/banner_lite/text_banners/edit.html.erb +6 -0
- data/app/views/banner_lite/text_banners/index.html.erb +31 -0
- data/app/views/banner_lite/text_banners/new.html.erb +5 -0
- data/app/views/banner_lite/text_banners/preview.html.erb +1 -0
- data/app/views/banner_lite/text_banners/show.html.erb +24 -0
- data/config/routes.rb +6 -1
- data/db/migrate/20140901033058_add_banner_text_to_banner_lite_banners.rb +13 -0
- data/lib/banner_lite/engine.rb +2 -1
- data/lib/banner_lite/version.rb +1 -1
- data/spec/controllers/banner_lite/image_banners_controller_spec.rb +141 -0
- data/spec/controllers/banner_lite/text_banners_controller_spec.rb +138 -0
- data/spec/factories/image_banners.rb +8 -0
- data/spec/factories/text_banners.rb +8 -0
- data/spec/features/image_banners_spec.rb +18 -0
- data/spec/fixtures/files/dummy.png +0 -0
- data/spec/helpers/banner_lite/image_banners_helper_spec.rb +6 -0
- data/spec/helpers/banner_lite/text_banners_helper_spec.rb +6 -0
- data/spec/models/banner_lite/image_banner_spec.rb +15 -0
- data/spec/models/banner_lite/text_banner_spec.rb +15 -0
- data/spec/spec_helper.rb +50 -0
- data/spec/test_app/README.rdoc +28 -0
- data/spec/test_app/Rakefile +6 -0
- data/spec/test_app/app/assets/javascripts/application.js +13 -0
- data/spec/test_app/app/assets/stylesheets/application.css +15 -0
- data/spec/test_app/app/controllers/application_controller.rb +5 -0
- data/spec/test_app/app/helpers/application_helper.rb +2 -0
- data/spec/test_app/app/views/layouts/application.html.erb +14 -0
- data/spec/test_app/bin/bundle +3 -0
- data/spec/test_app/bin/rails +4 -0
- data/spec/test_app/bin/rake +4 -0
- data/spec/test_app/config/application.rb +29 -0
- data/spec/test_app/config/boot.rb +5 -0
- data/spec/test_app/config/database.yml +25 -0
- data/spec/test_app/config/environment.rb +5 -0
- data/spec/test_app/config/environments/development.rb +29 -0
- data/spec/test_app/config/environments/production.rb +80 -0
- data/spec/test_app/config/environments/test.rb +36 -0
- data/spec/test_app/config/initializers/backtrace_silencers.rb +7 -0
- data/spec/test_app/config/initializers/filter_parameter_logging.rb +4 -0
- data/spec/test_app/config/initializers/inflections.rb +16 -0
- data/spec/test_app/config/initializers/mime_types.rb +5 -0
- data/spec/test_app/config/initializers/session_store.rb +3 -0
- data/spec/test_app/config/initializers/wrap_parameters.rb +14 -0
- data/spec/test_app/config/locales/en.yml +23 -0
- data/spec/test_app/config/routes.rb +4 -0
- data/spec/test_app/config/secrets.yml +20 -0
- data/spec/test_app/config.ru +4 -0
- data/spec/test_app/db/development.sqlite3 +0 -0
- data/spec/test_app/db/schema.rb +25 -0
- data/spec/test_app/db/test.sqlite3 +0 -0
- data/spec/test_app/log/development.log +2022 -0
- data/spec/test_app/log/test.log +2944 -0
- data/spec/test_app/public/404.html +67 -0
- data/spec/test_app/public/422.html +67 -0
- data/spec/test_app/public/500.html +66 -0
- data/spec/test_app/public/favicon.ico +0 -0
- data/spec/test_app/spec/fixtures/files/image.png +0 -0
- data/spec/test_app/tmp/cache/assets/development/sprockets/003a38e9fd7ca25c13cedf53bf372ae6 +0 -0
- data/spec/test_app/tmp/cache/assets/development/sprockets/03ac7af390932302330c5edf40f1a0c4 +0 -0
- data/spec/test_app/tmp/cache/assets/development/sprockets/04407df44edd603d47fc64d43aba1105 +0 -0
- data/spec/test_app/tmp/cache/assets/development/sprockets/10a0a05683e0182480089f585e73d994 +0 -0
- data/spec/test_app/tmp/cache/assets/development/sprockets/168e239e81a66290e62ea7b88ae0a6f0 +0 -0
- data/spec/test_app/tmp/cache/assets/development/sprockets/5c7aaccf5c3cfe31473143cad225e0a3 +0 -0
- data/spec/test_app/tmp/cache/assets/development/sprockets/63b2a7b060b4143f09c1f65fa4d05cec +0 -0
- data/spec/test_app/tmp/cache/assets/development/sprockets/6b6316f40abcc8e662f825828fb86a60 +0 -0
- data/spec/test_app/tmp/cache/assets/development/sprockets/6e59c9d94357e0bad4932c0d6e08aae4 +0 -0
- data/spec/test_app/tmp/cache/assets/development/sprockets/8473b4217b725147b48cc7c35a5613f1 +0 -0
- data/spec/test_app/tmp/cache/assets/development/sprockets/9a37adb41b90d5a705ad5ac5b36908a5 +0 -0
- data/spec/test_app/tmp/cache/assets/development/sprockets/a282da187ba14975a311bdee34282b68 +0 -0
- data/spec/test_app/tmp/cache/assets/development/sprockets/b140558c17c5a6a0b4d0db1aa9eec7d9 +0 -0
- data/spec/test_app/tmp/cache/assets/development/sprockets/bd2620ba816de25a2d516af4f4d3d9fa +0 -0
- data/spec/test_app/tmp/cache/assets/development/sprockets/bd7f920a6fb16d903905510c1b54ac58 +0 -0
- data/spec/test_app/tmp/cache/assets/development/sprockets/dad42ce6da98af2bb068880ecf0c4e3b +0 -0
- data/spec/test_app/tmp/cache/assets/development/sprockets/f1ea951eed23da8d08839fed76489094 +0 -0
- data/spec/test_app/tmp/cache/assets/development/sprockets/f8d343216bb921b4b9f3ff80a279ade1 +0 -0
- data/spec/test_app/tmp/cache/assets/test/sprockets/003a38e9fd7ca25c13cedf53bf372ae6 +0 -0
- data/spec/test_app/tmp/cache/assets/test/sprockets/03ac7af390932302330c5edf40f1a0c4 +0 -0
- data/spec/test_app/tmp/cache/assets/test/sprockets/04407df44edd603d47fc64d43aba1105 +0 -0
- data/spec/test_app/tmp/cache/assets/test/sprockets/10a0a05683e0182480089f585e73d994 +0 -0
- data/spec/test_app/tmp/cache/assets/test/sprockets/168e239e81a66290e62ea7b88ae0a6f0 +0 -0
- data/spec/test_app/tmp/cache/assets/test/sprockets/28d0637a096857502bb280f6159054d5 +0 -0
- data/spec/test_app/tmp/cache/assets/test/sprockets/3061646d05a58b102019803c24a45bfb +0 -0
- data/spec/test_app/tmp/cache/assets/test/sprockets/3bf4f025073a083e355b74670ab85dad +0 -0
- data/spec/test_app/tmp/cache/assets/test/sprockets/5c7aaccf5c3cfe31473143cad225e0a3 +0 -0
- data/spec/test_app/tmp/cache/assets/test/sprockets/63b2a7b060b4143f09c1f65fa4d05cec +0 -0
- data/spec/test_app/tmp/cache/assets/test/sprockets/6b6316f40abcc8e662f825828fb86a60 +0 -0
- data/spec/test_app/tmp/cache/assets/test/sprockets/6e59c9d94357e0bad4932c0d6e08aae4 +0 -0
- data/spec/test_app/tmp/cache/assets/test/sprockets/8473b4217b725147b48cc7c35a5613f1 +0 -0
- data/spec/test_app/tmp/cache/assets/test/sprockets/9a37adb41b90d5a705ad5ac5b36908a5 +0 -0
- data/spec/test_app/tmp/cache/assets/test/sprockets/a282da187ba14975a311bdee34282b68 +0 -0
- data/spec/test_app/tmp/cache/assets/test/sprockets/bd7f920a6fb16d903905510c1b54ac58 +0 -0
- data/spec/test_app/tmp/cache/assets/test/sprockets/dad42ce6da98af2bb068880ecf0c4e3b +0 -0
- data/spec/test_app/tmp/cache/assets/test/sprockets/e1fd1402695e7f441a0b016d610e5a01 +0 -0
- data/spec/test_app/tmp/cache/assets/test/sprockets/f1ea951eed23da8d08839fed76489094 +0 -0
- data/spec/test_app/tmp/cache/assets/test/sprockets/f8d343216bb921b4b9f3ff80a279ade1 +0 -0
- metadata +209 -12
- data/app/views/banner_lite/banners/preview.html.erb +0 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: e1e3a85fef15acb781582d7b034bf9d88c879425
|
4
|
+
data.tar.gz: e4883b046f7482c366ea74cf1f7d8907481a36e5
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 623b459d9d000dafcd2040557a75e175106f95dca3b70d1c9cd86235bb7a44ff2ce0909b876a4a290771577ba9e44facf929bd85594c2dde74669c6448eda173
|
7
|
+
data.tar.gz: d89b2caa71352bd2667b7443dc7b392bdfc8fc4d9c9aee5f4846df7f1ce5beee213bbefd46e22f6dd3dd2cdf972d810d221b1c740f6a22f4415227c40cf805f8
|
data/Rakefile
CHANGED
@@ -21,3 +21,12 @@ load 'rails/tasks/engine.rake'
|
|
21
21
|
|
22
22
|
Bundler::GemHelper.install_tasks
|
23
23
|
|
24
|
+
Dir[File.join(File.dirname(__FILE__), 'tasks/**/*.rake')].each {|f| load f }
|
25
|
+
|
26
|
+
require 'rspec/core'
|
27
|
+
require 'rspec/core/rake_task'
|
28
|
+
|
29
|
+
desc "Run all specs in spec directory (excluding plugin specs)"
|
30
|
+
RSpec::Core::RakeTask.new(:spec => 'app:db:test:prepare')
|
31
|
+
|
32
|
+
task :default => :spec
|
@@ -1,28 +1,28 @@
|
|
1
1
|
require_dependency "banner_lite/application_controller"
|
2
2
|
|
3
3
|
module BannerLite
|
4
|
-
class
|
4
|
+
class ImageBannersController < ApplicationController
|
5
5
|
before_action :set_banner, only: [:show, :edit, :update, :destroy]
|
6
6
|
|
7
7
|
def index
|
8
|
-
@banners =
|
8
|
+
@banners = ImageBanner.all
|
9
9
|
end
|
10
10
|
|
11
11
|
def show
|
12
12
|
end
|
13
13
|
|
14
14
|
def new
|
15
|
-
@banner =
|
15
|
+
@banner = ImageBanner.new
|
16
16
|
end
|
17
17
|
|
18
18
|
def edit
|
19
19
|
end
|
20
20
|
|
21
21
|
def create
|
22
|
-
@banner =
|
22
|
+
@banner = ImageBanner.new(banner_params)
|
23
23
|
|
24
24
|
if @banner.save
|
25
|
-
redirect_to @banner, notice: '
|
25
|
+
redirect_to @banner, notice: 'ImageBanner was successfully created.'
|
26
26
|
else
|
27
27
|
render action: 'new'
|
28
28
|
end
|
@@ -30,7 +30,7 @@ module BannerLite
|
|
30
30
|
|
31
31
|
def update
|
32
32
|
if @banner.update(banner_params)
|
33
|
-
redirect_to @banner, notice: '
|
33
|
+
redirect_to @banner, notice: 'ImageBanner was successfully updated.'
|
34
34
|
else
|
35
35
|
render action: 'edit'
|
36
36
|
end
|
@@ -38,16 +38,16 @@ module BannerLite
|
|
38
38
|
|
39
39
|
def destroy
|
40
40
|
@banner.destroy
|
41
|
-
redirect_to
|
41
|
+
redirect_to image_banners_url, notice: 'ImageBanner was successfully destroyed.'
|
42
42
|
end
|
43
43
|
|
44
44
|
private
|
45
45
|
def set_banner
|
46
|
-
@banner =
|
46
|
+
@banner = ImageBanner.find(params[:id])
|
47
47
|
end
|
48
48
|
|
49
49
|
def banner_params
|
50
|
-
params.require(:
|
50
|
+
params.require(:image_banner).permit(:url, :file, :active_from, :active_until)
|
51
51
|
end
|
52
52
|
end
|
53
53
|
end
|
@@ -0,0 +1,53 @@
|
|
1
|
+
require_dependency "banner_lite/application_controller"
|
2
|
+
|
3
|
+
module BannerLite
|
4
|
+
class TextBannersController < ApplicationController
|
5
|
+
before_action :set_text_banner, only: [:show, :edit, :update, :destroy]
|
6
|
+
|
7
|
+
def index
|
8
|
+
@text_banners = TextBanner.all
|
9
|
+
end
|
10
|
+
|
11
|
+
def show
|
12
|
+
end
|
13
|
+
|
14
|
+
def new
|
15
|
+
@text_banner = TextBanner.new
|
16
|
+
end
|
17
|
+
|
18
|
+
def edit
|
19
|
+
end
|
20
|
+
|
21
|
+
def create
|
22
|
+
@text_banner = TextBanner.new(text_banner_params)
|
23
|
+
|
24
|
+
if @text_banner.save
|
25
|
+
redirect_to @text_banner, notice: 'Text banner was successfully created.'
|
26
|
+
else
|
27
|
+
render :new
|
28
|
+
end
|
29
|
+
end
|
30
|
+
|
31
|
+
def update
|
32
|
+
if @text_banner.update(text_banner_params)
|
33
|
+
redirect_to @text_banner, notice: 'Text banner was successfully updated.'
|
34
|
+
else
|
35
|
+
render :edit
|
36
|
+
end
|
37
|
+
end
|
38
|
+
|
39
|
+
def destroy
|
40
|
+
@text_banner.destroy
|
41
|
+
redirect_to text_banners_url, notice: 'Text banner was successfully destroyed.'
|
42
|
+
end
|
43
|
+
|
44
|
+
private
|
45
|
+
def set_text_banner
|
46
|
+
@text_banner = TextBanner.find(params[:id])
|
47
|
+
end
|
48
|
+
|
49
|
+
def text_banner_params
|
50
|
+
params.require(:text_banner).permit(:url, :active_from, :active_until, :text)
|
51
|
+
end
|
52
|
+
end
|
53
|
+
end
|
@@ -1,35 +1,6 @@
|
|
1
1
|
module BannerLite
|
2
2
|
class Banner < ActiveRecord::Base
|
3
|
-
attr_accessor :file
|
4
3
|
validates :url, presence: true
|
5
|
-
validates :file, presence: true, if: ->(b){ b.file_name.blank? }
|
6
|
-
|
7
|
-
before_save :fill_file_name, if: :file
|
8
|
-
after_save :save_file, if: :file
|
9
|
-
after_destroy :remove_file
|
10
|
-
|
11
4
|
scope :active, ->{ now = Time.zone.now; where(arel_table[:active_from].lteq(now).and(arel_table[:active_until].gt(now))) }
|
12
|
-
|
13
|
-
def src
|
14
|
-
"/system/#{id}/#{file_name}"
|
15
|
-
end
|
16
|
-
|
17
|
-
private
|
18
|
-
def base_dir
|
19
|
-
@base_dir ||= Rails.root.join('public', 'system', id.to_s)
|
20
|
-
end
|
21
|
-
|
22
|
-
def fill_file_name
|
23
|
-
self.file_name = file.original_filename
|
24
|
-
end
|
25
|
-
|
26
|
-
def remove_file
|
27
|
-
FileUtils.rm_rf(base_dir)
|
28
|
-
end
|
29
|
-
|
30
|
-
def save_file
|
31
|
-
FileUtils.mkdir(base_dir) unless File.directory?(base_dir)
|
32
|
-
File.open(base_dir + file_name, 'wb'){|f| f.write(file.read) }
|
33
|
-
end
|
34
5
|
end
|
35
6
|
end
|
@@ -0,0 +1,32 @@
|
|
1
|
+
module BannerLite
|
2
|
+
class ImageBanner < Banner
|
3
|
+
attr_accessor :file
|
4
|
+
validates :file, presence: true, if: ->(b){ b.file_name.blank? }
|
5
|
+
|
6
|
+
before_save :fill_file_name, if: :file
|
7
|
+
after_save :save_file, if: :file
|
8
|
+
after_destroy :remove_file
|
9
|
+
|
10
|
+
def src
|
11
|
+
"/system/#{id}/#{file_name}"
|
12
|
+
end
|
13
|
+
|
14
|
+
private
|
15
|
+
def base_dir
|
16
|
+
@base_dir ||= Rails.root.join('public', 'system', id.to_s)
|
17
|
+
end
|
18
|
+
|
19
|
+
def fill_file_name
|
20
|
+
self.file_name = file.original_filename
|
21
|
+
end
|
22
|
+
|
23
|
+
def remove_file
|
24
|
+
FileUtils.rm_rf(base_dir)
|
25
|
+
end
|
26
|
+
|
27
|
+
def save_file
|
28
|
+
FileUtils.mkdir(base_dir) unless File.directory?(base_dir)
|
29
|
+
File.open(base_dir + file_name, 'wb'){|f| f.write(file.read) }
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
File without changes
|
@@ -19,7 +19,7 @@
|
|
19
19
|
<td><%= banner.active_from %></td>
|
20
20
|
<td><%= banner.active_until %></td>
|
21
21
|
<td><%= link_to 'Show', banner %></td>
|
22
|
-
<td><%= link_to 'Edit',
|
22
|
+
<td><%= link_to 'Edit', edit_image_banner_path(banner) %></td>
|
23
23
|
<td><%= link_to 'Destroy', banner, method: :delete, data: { confirm: 'Are you sure?' } %></td>
|
24
24
|
</tr>
|
25
25
|
<% end %>
|
@@ -28,4 +28,4 @@
|
|
28
28
|
|
29
29
|
<br>
|
30
30
|
|
31
|
-
<%= link_to 'New Banner',
|
31
|
+
<%= link_to 'New Banner', new_image_banner_path %>
|
@@ -0,0 +1 @@
|
|
1
|
+
<%= image_banners %>
|
@@ -0,0 +1,33 @@
|
|
1
|
+
<%= form_for(@text_banner) do |f| %>
|
2
|
+
<% if @text_banner.errors.any? %>
|
3
|
+
<div id="error_explanation">
|
4
|
+
<h2><%= pluralize(@text_banner.errors.count, "error") %> prohibited this text_banner from being saved:</h2>
|
5
|
+
|
6
|
+
<ul>
|
7
|
+
<% @text_banner.errors.full_messages.each do |message| %>
|
8
|
+
<li><%= message %></li>
|
9
|
+
<% end %>
|
10
|
+
</ul>
|
11
|
+
</div>
|
12
|
+
<% end %>
|
13
|
+
|
14
|
+
<div class="field">
|
15
|
+
<%= f.label :url %><br>
|
16
|
+
<%= f.text_field :url %>
|
17
|
+
</div>
|
18
|
+
<div class="field">
|
19
|
+
<%= f.label :active_from %><br>
|
20
|
+
<%= f.datetime_select :active_from %>
|
21
|
+
</div>
|
22
|
+
<div class="field">
|
23
|
+
<%= f.label :active_until %><br>
|
24
|
+
<%= f.datetime_select :active_until %>
|
25
|
+
</div>
|
26
|
+
<div class="field">
|
27
|
+
<%= f.label :text %><br>
|
28
|
+
<%= f.text_field :text %>
|
29
|
+
</div>
|
30
|
+
<div class="actions">
|
31
|
+
<%= f.submit %>
|
32
|
+
</div>
|
33
|
+
<% end %>
|
@@ -0,0 +1,31 @@
|
|
1
|
+
<h1>Listing text_banners</h1>
|
2
|
+
|
3
|
+
<table>
|
4
|
+
<thead>
|
5
|
+
<tr>
|
6
|
+
<th>Url</th>
|
7
|
+
<th>Active from</th>
|
8
|
+
<th>Active until</th>
|
9
|
+
<th>Text</th>
|
10
|
+
<th colspan="3"></th>
|
11
|
+
</tr>
|
12
|
+
</thead>
|
13
|
+
|
14
|
+
<tbody>
|
15
|
+
<% @text_banners.each do |text_banner| %>
|
16
|
+
<tr>
|
17
|
+
<td><%= text_banner.url %></td>
|
18
|
+
<td><%= text_banner.active_from %></td>
|
19
|
+
<td><%= text_banner.active_until %></td>
|
20
|
+
<td><%= text_banner.text %></td>
|
21
|
+
<td><%= link_to 'Show', text_banner %></td>
|
22
|
+
<td><%= link_to 'Edit', edit_text_banner_path(text_banner) %></td>
|
23
|
+
<td><%= link_to 'Destroy', text_banner, method: :delete, data: { confirm: 'Are you sure?' } %></td>
|
24
|
+
</tr>
|
25
|
+
<% end %>
|
26
|
+
</tbody>
|
27
|
+
</table>
|
28
|
+
|
29
|
+
<br>
|
30
|
+
|
31
|
+
<%= link_to 'New Text banner', new_text_banner_path %>
|
@@ -0,0 +1 @@
|
|
1
|
+
<%= text_banners %>
|
@@ -0,0 +1,24 @@
|
|
1
|
+
<p id="notice"><%= notice %></p>
|
2
|
+
|
3
|
+
<p>
|
4
|
+
<strong>Url:</strong>
|
5
|
+
<%= @text_banner.url %>
|
6
|
+
</p>
|
7
|
+
|
8
|
+
<p>
|
9
|
+
<strong>Active from:</strong>
|
10
|
+
<%= @text_banner.active_from %>
|
11
|
+
</p>
|
12
|
+
|
13
|
+
<p>
|
14
|
+
<strong>Active until:</strong>
|
15
|
+
<%= @text_banner.active_until %>
|
16
|
+
</p>
|
17
|
+
|
18
|
+
<p>
|
19
|
+
<strong>Banner text:</strong>
|
20
|
+
<%= @text_banner.text %>
|
21
|
+
</p>
|
22
|
+
|
23
|
+
<%= link_to 'Edit', edit_text_banner_path(@text_banner) %> |
|
24
|
+
<%= link_to 'Back', text_banners_path %>
|
data/config/routes.rb
CHANGED
@@ -0,0 +1,13 @@
|
|
1
|
+
class AddBannerTextToBannerLiteBanners < ActiveRecord::Migration
|
2
|
+
def up
|
3
|
+
add_column :banner_lite_banners, :text, :string
|
4
|
+
add_column :banner_lite_banners, :type, :string
|
5
|
+
|
6
|
+
::BannerLite::Banner.update_all(type: 'BannerLite::ImageBanner')
|
7
|
+
end
|
8
|
+
|
9
|
+
def down
|
10
|
+
remove_column :banner_lite_banners, :text
|
11
|
+
remove_column :banner_lite_banners, :type
|
12
|
+
end
|
13
|
+
end
|
data/lib/banner_lite/engine.rb
CHANGED
data/lib/banner_lite/version.rb
CHANGED
@@ -0,0 +1,141 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
module BannerLite
|
4
|
+
describe ImageBannersController do
|
5
|
+
routes { BannerLite::Engine.routes }
|
6
|
+
|
7
|
+
let(:valid_attributes) { {
|
8
|
+
"url" => "MyString",
|
9
|
+
"file" => Rack::Test::UploadedFile.new(File.expand_path('../../../fixtures/files/dummy.png', __FILE__), 'image/jpeg'),
|
10
|
+
} }
|
11
|
+
let(:valid_session) { {} }
|
12
|
+
|
13
|
+
describe "GET index" do
|
14
|
+
it "assigns all banners as @banners" do
|
15
|
+
banner = ImageBanner.create! valid_attributes
|
16
|
+
get :index, {}, valid_session
|
17
|
+
assigns(:banners).should eq([banner])
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
21
|
+
describe "GET show" do
|
22
|
+
it "assigns the requested banner as @banner" do
|
23
|
+
banner = ImageBanner.create! valid_attributes
|
24
|
+
get :show, {:id => banner.to_param}, valid_session
|
25
|
+
assigns(:banner).should eq(banner)
|
26
|
+
end
|
27
|
+
end
|
28
|
+
|
29
|
+
describe "GET new" do
|
30
|
+
it "assigns a new banner as @banner" do
|
31
|
+
get :new, {}, valid_session
|
32
|
+
assigns(:banner).should be_a_new(ImageBanner)
|
33
|
+
end
|
34
|
+
end
|
35
|
+
|
36
|
+
describe "GET edit" do
|
37
|
+
it "assigns the requested banner as @banner" do
|
38
|
+
banner = ImageBanner.create! valid_attributes
|
39
|
+
get :edit, {:id => banner.to_param}, valid_session
|
40
|
+
assigns(:banner).should eq(banner)
|
41
|
+
end
|
42
|
+
end
|
43
|
+
|
44
|
+
describe "POST create" do
|
45
|
+
describe "with valid params" do
|
46
|
+
it "creates a new ImageBanner" do
|
47
|
+
expect {
|
48
|
+
post :create, {:image_banner => valid_attributes}, valid_session
|
49
|
+
}.to change(ImageBanner, :count).by(1)
|
50
|
+
end
|
51
|
+
|
52
|
+
it "assigns a newly created banner as @banner" do
|
53
|
+
post :create, {:image_banner => valid_attributes}, valid_session
|
54
|
+
assigns(:banner).should be_a(ImageBanner)
|
55
|
+
assigns(:banner).should be_persisted
|
56
|
+
end
|
57
|
+
|
58
|
+
it "redirects to the created banner" do
|
59
|
+
post :create, {:image_banner => valid_attributes}, valid_session
|
60
|
+
response.should redirect_to(ImageBanner.last)
|
61
|
+
end
|
62
|
+
end
|
63
|
+
|
64
|
+
describe "with invalid params" do
|
65
|
+
it "assigns a newly created but unsaved banner as @banner" do
|
66
|
+
# Trigger the behavior that occurs when invalid params are submitted
|
67
|
+
ImageBanner.any_instance.stub(:save).and_return(false)
|
68
|
+
post :create, {:image_banner => { "url" => "invalid value" }}, valid_session
|
69
|
+
assigns(:banner).should be_a_new(ImageBanner)
|
70
|
+
end
|
71
|
+
|
72
|
+
it "re-renders the 'new' template" do
|
73
|
+
# Trigger the behavior that occurs when invalid params are submitted
|
74
|
+
ImageBanner.any_instance.stub(:save).and_return(false)
|
75
|
+
post :create, {:image_banner => { "url" => "invalid value" }}, valid_session
|
76
|
+
response.should render_template("new")
|
77
|
+
end
|
78
|
+
end
|
79
|
+
end
|
80
|
+
|
81
|
+
describe "PUT update" do
|
82
|
+
describe "with valid params" do
|
83
|
+
it "updates the requested banner" do
|
84
|
+
banner = ImageBanner.create! valid_attributes
|
85
|
+
# Assuming there are no other banners in the database, this
|
86
|
+
# specifies that the ImageBanner created on the previous line
|
87
|
+
# receives the :update_attributes message with whatever params are
|
88
|
+
# submitted in the request.
|
89
|
+
ImageBanner.any_instance.should_receive(:update).with({ "url" => "MyString" })
|
90
|
+
put :update, {:id => banner.to_param, :image_banner => { "url" => "MyString" }}, valid_session
|
91
|
+
end
|
92
|
+
|
93
|
+
it "assigns the requested banner as @banner" do
|
94
|
+
banner = ImageBanner.create! valid_attributes
|
95
|
+
put :update, {:id => banner.to_param, :image_banner => valid_attributes}, valid_session
|
96
|
+
assigns(:banner).should eq(banner)
|
97
|
+
end
|
98
|
+
|
99
|
+
it "redirects to the banner" do
|
100
|
+
banner = ImageBanner.create! valid_attributes
|
101
|
+
put :update, {:id => banner.to_param, :image_banner => valid_attributes}, valid_session
|
102
|
+
response.should redirect_to(banner)
|
103
|
+
end
|
104
|
+
end
|
105
|
+
|
106
|
+
describe "with invalid params" do
|
107
|
+
it "assigns the banner as @banner" do
|
108
|
+
banner = ImageBanner.create! valid_attributes
|
109
|
+
# Trigger the behavior that occurs when invalid params are submitted
|
110
|
+
ImageBanner.any_instance.stub(:save).and_return(false)
|
111
|
+
put :update, {:id => banner.to_param, :image_banner => { "url" => "invalid value" }}, valid_session
|
112
|
+
assigns(:banner).should eq(banner)
|
113
|
+
end
|
114
|
+
|
115
|
+
it "re-renders the 'edit' template" do
|
116
|
+
banner = ImageBanner.create! valid_attributes
|
117
|
+
# Trigger the behavior that occurs when invalid params are submitted
|
118
|
+
ImageBanner.any_instance.stub(:save).and_return(false)
|
119
|
+
put :update, {:id => banner.to_param, :image_banner => { "url" => "invalid value" }}, valid_session
|
120
|
+
response.should render_template("edit")
|
121
|
+
end
|
122
|
+
end
|
123
|
+
end
|
124
|
+
|
125
|
+
describe "DELETE destroy" do
|
126
|
+
it "destroys the requested banner" do
|
127
|
+
banner = ImageBanner.create! valid_attributes
|
128
|
+
expect {
|
129
|
+
delete :destroy, {:id => banner.to_param}, valid_session
|
130
|
+
}.to change(ImageBanner, :count).by(-1)
|
131
|
+
end
|
132
|
+
|
133
|
+
it "redirects to the banners list" do
|
134
|
+
banner = ImageBanner.create! valid_attributes
|
135
|
+
delete :destroy, {:id => banner.to_param}, valid_session
|
136
|
+
response.should redirect_to(image_banners_url)
|
137
|
+
end
|
138
|
+
end
|
139
|
+
|
140
|
+
end
|
141
|
+
end
|