refinerycms-sl-videos 2.0.0
Sign up to get free protection for your applications and to get access to all the features.
- data/Gemfile +71 -0
- data/Gemfile.lock +289 -0
- data/Guardfile +27 -0
- data/Rakefile +22 -0
- data/app/controllers/refinery/videos/admin/videos_controller.rb +12 -0
- data/app/controllers/refinery/videos/videos_controller.rb +34 -0
- data/app/models/refinery/videos/video.rb +64 -0
- data/app/views/refinery/videos/admin/shared/_locale_picker.html.erb +11 -0
- data/app/views/refinery/videos/admin/videos/_actions.html.erb +25 -0
- data/app/views/refinery/videos/admin/videos/_form.html.erb +44 -0
- data/app/views/refinery/videos/admin/videos/_records.html.erb +18 -0
- data/app/views/refinery/videos/admin/videos/_sortable_list.html.erb +5 -0
- data/app/views/refinery/videos/admin/videos/_video.html.erb +33 -0
- data/app/views/refinery/videos/admin/videos/_videos.html.erb +2 -0
- data/app/views/refinery/videos/admin/videos/edit.html.erb +1 -0
- data/app/views/refinery/videos/admin/videos/index.html.erb +7 -0
- data/app/views/refinery/videos/admin/videos/new.html.erb +1 -0
- data/app/views/refinery/videos/videos/index.html.erb +11 -0
- data/app/views/refinery/videos/videos/show.html.erb +25 -0
- data/config/locales/en.yml +34 -0
- data/config/locales/es.yml +35 -0
- data/config/routes.rb +19 -0
- data/db/migrate/1_create_videos_videos.rb +31 -0
- data/db/migrate/2_create_videos_translations.rb +17 -0
- data/db/migrate/3_add_dimensions_to_videos.rb +13 -0
- data/db/seeds.rb +25 -0
- data/lib/generators/refinery/videos_generator.rb +19 -0
- data/lib/refinery/videos/engine.rb +26 -0
- data/lib/refinery/videos/version.rb +18 -0
- data/lib/refinery/videos.rb +22 -0
- data/lib/refinerycms-sl-videos.rb +1 -0
- data/lib/tasks/refinery/videos.rake +13 -0
- data/readme.md +43 -0
- data/refinerycms-sl-videos.gemspec +23 -0
- data/script/rails +10 -0
- data/spec/models/refinery/videos/video_spec.rb +18 -0
- data/spec/requests/refinery/videos/admin/videos_spec.rb +101 -0
- data/spec/spec_helper.rb +61 -0
- data/spec/support/factories/refinery/videos.rb +7 -0
- data/tasks/rspec.rake +6 -0
- data/tasks/testing.rake +8 -0
- metadata +112 -0
@@ -0,0 +1,25 @@
|
|
1
|
+
<% content_for :body_content_title do %>
|
2
|
+
<%= @video.title %>
|
3
|
+
<% end %>
|
4
|
+
|
5
|
+
<% content_for :body do %>
|
6
|
+
<section>
|
7
|
+
<%= raw @video.embed_html_with_dimensions %>
|
8
|
+
<div id="video-text"><%= raw @video.video_text %></div>
|
9
|
+
</section>
|
10
|
+
<% end %>
|
11
|
+
|
12
|
+
<% content_for :side_body do %>
|
13
|
+
<aside>
|
14
|
+
<h2><%= t('.other') %></h2>
|
15
|
+
<ul id="videos">
|
16
|
+
<% @videos.each do |video| %>
|
17
|
+
<li>
|
18
|
+
<%= link_to video.title, refinery.videos_video_path(video) %>
|
19
|
+
</li>
|
20
|
+
<% end %>
|
21
|
+
</ul>
|
22
|
+
</aside>
|
23
|
+
<% end %>
|
24
|
+
|
25
|
+
<%= render '/refinery/content_page' %>
|
@@ -0,0 +1,34 @@
|
|
1
|
+
en:
|
2
|
+
refinery:
|
3
|
+
plugins:
|
4
|
+
videos:
|
5
|
+
title: Videos
|
6
|
+
videos:
|
7
|
+
admin:
|
8
|
+
videos:
|
9
|
+
actions:
|
10
|
+
create_new: Add New Video
|
11
|
+
reorder: Reorder Videos
|
12
|
+
reorder_done: Done Reordering Videos
|
13
|
+
records:
|
14
|
+
title: Videos
|
15
|
+
sorry_no_results: Sorry! There are no results found.
|
16
|
+
no_items_yet: There are no Videos yet. Click "Add New Video" to add your first video.
|
17
|
+
video:
|
18
|
+
view_live_html: View this video live <br/><em>(opens in a new window)</em>
|
19
|
+
edit: Edit this video
|
20
|
+
delete: Remove this video forever
|
21
|
+
form:
|
22
|
+
title_description: Leave blank to set title from video
|
23
|
+
videos:
|
24
|
+
show:
|
25
|
+
other: Other Videos
|
26
|
+
activerecord:
|
27
|
+
attributes:
|
28
|
+
'refinery/videos/video':
|
29
|
+
title: Title
|
30
|
+
video_url: Video url
|
31
|
+
video_text: Video text
|
32
|
+
custom_url: Custom url
|
33
|
+
height: Height
|
34
|
+
width: Width
|
@@ -0,0 +1,35 @@
|
|
1
|
+
es:
|
2
|
+
refinery:
|
3
|
+
plugins:
|
4
|
+
videos:
|
5
|
+
title: Vídeos
|
6
|
+
# article: masculino/femenino
|
7
|
+
videos:
|
8
|
+
admin:
|
9
|
+
videos:
|
10
|
+
actions:
|
11
|
+
create_new: Crear nuevo video
|
12
|
+
reorder: Reordenar vídeos
|
13
|
+
reorder_done: Reordenación de vídeos completada
|
14
|
+
records:
|
15
|
+
title: Vídeos
|
16
|
+
sorry_no_results: Lo siento, no hay resultados
|
17
|
+
no_items_yet: No hay vídeos todavía. Pulsa en "Crear nuevo Video" para crear tu primer video.
|
18
|
+
video:
|
19
|
+
view_live_html: Ver este video como abierto al público <br/><em>(abre en ventana nueva)</em>
|
20
|
+
edit: Editar este video
|
21
|
+
delete: Borrar este video para siempre
|
22
|
+
form:
|
23
|
+
title_description: Dejar vacío para recoger el título del vídeo
|
24
|
+
videos:
|
25
|
+
show:
|
26
|
+
other: Otros vídeos
|
27
|
+
activerecord:
|
28
|
+
attributes:
|
29
|
+
'refinery/videos/video':
|
30
|
+
title: Título
|
31
|
+
video_url: Url del video
|
32
|
+
video_text: Texto del vídeo
|
33
|
+
custom_url: Url personalizada
|
34
|
+
height: Alto
|
35
|
+
width: Ancho
|
data/config/routes.rb
ADDED
@@ -0,0 +1,19 @@
|
|
1
|
+
Refinery::Core::Engine.routes.append do
|
2
|
+
|
3
|
+
# Frontend routes
|
4
|
+
namespace :videos do
|
5
|
+
resources :videos, :path => '', :only => [:index, :show]
|
6
|
+
end
|
7
|
+
|
8
|
+
# Admin routes
|
9
|
+
namespace :videos, :path => '' do
|
10
|
+
namespace :admin, :path => 'refinery' do
|
11
|
+
resources :videos, :except => :show do
|
12
|
+
collection do
|
13
|
+
post :update_positions
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
18
|
+
|
19
|
+
end
|
@@ -0,0 +1,31 @@
|
|
1
|
+
class CreateVideosVideos < ActiveRecord::Migration
|
2
|
+
|
3
|
+
def up
|
4
|
+
create_table Refinery::Videos::Video.table_name do |t|
|
5
|
+
t.string :title
|
6
|
+
t.string :video_text
|
7
|
+
t.string :video_url
|
8
|
+
t.string :custom_url
|
9
|
+
t.integer :position
|
10
|
+
t.string :slug
|
11
|
+
|
12
|
+
t.timestamps
|
13
|
+
end
|
14
|
+
|
15
|
+
add_index Refinery::Videos::Video.table_name, :slug
|
16
|
+
end
|
17
|
+
|
18
|
+
def down
|
19
|
+
if defined?(::Refinery::UserPlugin)
|
20
|
+
::Refinery::UserPlugin.destroy_all({:name => "refinerycms-videos"})
|
21
|
+
end
|
22
|
+
|
23
|
+
if defined?(::Refinery::Page)
|
24
|
+
::Refinery::Page.delete_all({:link_url => "/videos/videos"})
|
25
|
+
end
|
26
|
+
|
27
|
+
drop_table Refinery::Videos::Video.table_name
|
28
|
+
|
29
|
+
end
|
30
|
+
|
31
|
+
end
|
@@ -0,0 +1,17 @@
|
|
1
|
+
class CreateVideosTranslations < ActiveRecord::Migration
|
2
|
+
def up
|
3
|
+
Refinery::Videos::Video.create_translation_table!({
|
4
|
+
:title => :string,
|
5
|
+
:video_text => :text,
|
6
|
+
:video_url => :string,
|
7
|
+
:custom_url => :string,
|
8
|
+
:slug => :string
|
9
|
+
}, {
|
10
|
+
:migrate_data => true
|
11
|
+
})
|
12
|
+
end
|
13
|
+
|
14
|
+
def down
|
15
|
+
Refinery::Videos::Video.drop_translation_table! :migrate_data => true
|
16
|
+
end
|
17
|
+
end
|
@@ -0,0 +1,13 @@
|
|
1
|
+
class AddDimensionsToVideos < ActiveRecord::Migration
|
2
|
+
|
3
|
+
def up
|
4
|
+
add_column Refinery::Videos::Video.table_name, :width, :integer
|
5
|
+
add_column Refinery::Videos::Video.table_name, :height, :integer
|
6
|
+
end
|
7
|
+
|
8
|
+
def down
|
9
|
+
remove_column Refinery::Videos::Video.table_name, :width
|
10
|
+
remove_column Refinery::Videos::Video.table_name, :height
|
11
|
+
end
|
12
|
+
|
13
|
+
end
|
data/db/seeds.rb
ADDED
@@ -0,0 +1,25 @@
|
|
1
|
+
(Refinery.i18n_enabled? ? Refinery::I18n.frontend_locales : [:en]).each do |lang|
|
2
|
+
I18n.locale = lang
|
3
|
+
|
4
|
+
if defined?(Refinery::User)
|
5
|
+
Refinery::User.all.each do |user|
|
6
|
+
if user.plugins.where(:name => 'refinerycms-videos').blank?
|
7
|
+
user.plugins.create(:name => 'refinerycms-videos',
|
8
|
+
:position => (user.plugins.maximum(:position) || -1) +1)
|
9
|
+
end
|
10
|
+
end
|
11
|
+
end
|
12
|
+
|
13
|
+
url = "/videos"
|
14
|
+
if defined?(Refinery::Page) && Refinery::Page.where(:link_url => url).empty?
|
15
|
+
page = Refinery::Page.create(
|
16
|
+
:title => 'Videos',
|
17
|
+
:link_url => url,
|
18
|
+
:deletable => false,
|
19
|
+
:menu_match => "^#{url}(\/|\/.+?|)$"
|
20
|
+
)
|
21
|
+
Refinery::Pages.default_parts.each_with_index do |default_page_part, index|
|
22
|
+
page.parts.create(:title => default_page_part, :body => nil, :position => index)
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
@@ -0,0 +1,19 @@
|
|
1
|
+
module Refinery
|
2
|
+
class VideosGenerator < Rails::Generators::Base
|
3
|
+
|
4
|
+
def rake_db
|
5
|
+
rake("refinery_videos:install:migrations")
|
6
|
+
end
|
7
|
+
|
8
|
+
def append_load_seed_data
|
9
|
+
create_file 'db/seeds.rb' unless File.exists?(File.join(destination_root, 'db', 'seeds.rb'))
|
10
|
+
append_file 'db/seeds.rb', :verbose => true do
|
11
|
+
<<-EOH
|
12
|
+
|
13
|
+
# Added by Refinery CMS Videos extension
|
14
|
+
Refinery::Videos::Engine.load_seed
|
15
|
+
EOH
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
@@ -0,0 +1,26 @@
|
|
1
|
+
module Refinery
|
2
|
+
module Videos
|
3
|
+
class Engine < Rails::Engine
|
4
|
+
include Refinery::Engine
|
5
|
+
isolate_namespace Refinery::Videos
|
6
|
+
|
7
|
+
engine_name :refinery_videos
|
8
|
+
|
9
|
+
initializer "register refinerycms_videos plugin" do
|
10
|
+
Refinery::Plugin.register do |plugin|
|
11
|
+
plugin.name = "videos"
|
12
|
+
plugin.url = proc { Refinery::Core::Engine.routes.url_helpers.videos_admin_videos_path }
|
13
|
+
plugin.pathname = root
|
14
|
+
plugin.activity = {
|
15
|
+
:class_name => :'refinery/videos/video'
|
16
|
+
}
|
17
|
+
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
21
|
+
config.after_initialize do
|
22
|
+
Refinery.register_extension(Refinery::Videos)
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
@@ -0,0 +1,18 @@
|
|
1
|
+
module Refinery
|
2
|
+
module Videos
|
3
|
+
class Version
|
4
|
+
@major = 2
|
5
|
+
@minor = 0
|
6
|
+
@tiny = 0
|
7
|
+
@build = nil
|
8
|
+
|
9
|
+
class << self
|
10
|
+
attr_reader :major, :minor, :tiny, :build
|
11
|
+
|
12
|
+
def to_s
|
13
|
+
[@major, @minor, @tiny, @build].compact.join('.')
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
@@ -0,0 +1,22 @@
|
|
1
|
+
require 'refinerycms-core'
|
2
|
+
require 'acts_as_unvlogable'
|
3
|
+
|
4
|
+
module Refinery
|
5
|
+
autoload :VideosGenerator, 'generators/refinery/videos_generator'
|
6
|
+
|
7
|
+
module Videos
|
8
|
+
require 'refinery/videos/engine'
|
9
|
+
|
10
|
+
class << self
|
11
|
+
attr_writer :root
|
12
|
+
|
13
|
+
def root
|
14
|
+
@root ||= Pathname.new(File.expand_path('../../../', __FILE__))
|
15
|
+
end
|
16
|
+
|
17
|
+
def factory_paths
|
18
|
+
@factory_paths ||= [ root.join('spec', 'factories').to_s ]
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
@@ -0,0 +1 @@
|
|
1
|
+
require 'refinery/videos'
|
data/readme.md
ADDED
@@ -0,0 +1,43 @@
|
|
1
|
+
# Videos extension for Refinery CMS.
|
2
|
+
|
3
|
+
## About
|
4
|
+
|
5
|
+
A page for videos from diferent sources, in a blog format with multilingual support, custom urls and seo.
|
6
|
+
Check supported video formats of [acts\_as\_unvlogable](https://github.com/mamuso/acts_as_unvlogable).
|
7
|
+
|
8
|
+
For RefineryCMS 2.0.0.
|
9
|
+
|
10
|
+
## Requirements
|
11
|
+
|
12
|
+
* [acts\_as\_unvlogable](https://github.com/mamuso/acts_as_unvlogable) gem (>= 1.0.0)
|
13
|
+
|
14
|
+
## TODO
|
15
|
+
|
16
|
+
* Fix SEO (seo data is stored but for some reason data is not in html head)
|
17
|
+
* Build the gem
|
18
|
+
* Documentation
|
19
|
+
* Tests
|
20
|
+
|
21
|
+
## Install
|
22
|
+
|
23
|
+
Add this line to your applications `Gemfile`
|
24
|
+
|
25
|
+
gem 'refinerycms-sl-videos', '~> 2.0.0'
|
26
|
+
|
27
|
+
Next, run
|
28
|
+
|
29
|
+
bundle install
|
30
|
+
rails g refinery:videos
|
31
|
+
rake db:migrate
|
32
|
+
|
33
|
+
## Thanks
|
34
|
+
|
35
|
+
To people from [acts\_as\_unvlogable](https://github.com/mamuso/acts_as_unvlogable), for the great video sources support.
|
36
|
+
|
37
|
+
## How to build this extension as a gem
|
38
|
+
|
39
|
+
gem build refinerycms-sl-videos.gemspec
|
40
|
+
gem install refinerycms-sl-videos.gem
|
41
|
+
|
42
|
+
# Sign up for a http://rubygems.org/ account and publish the gem
|
43
|
+
gem push refinerycms-sl-videos.gem
|
@@ -0,0 +1,23 @@
|
|
1
|
+
# Encoding: UTF-8
|
2
|
+
$:.push File.expand_path('../lib', __FILE__)
|
3
|
+
require 'refinery/videos/version'
|
4
|
+
|
5
|
+
version = Refinery::Videos::Version.to_s
|
6
|
+
|
7
|
+
Gem::Specification.new do |s|
|
8
|
+
s.name = %q{refinerycms-sl-videos}
|
9
|
+
s.version = version
|
10
|
+
s.description = %q{Ruby on Rails Videos extension for Refinery CMS.}
|
11
|
+
s.summary = %q{A page for videos from diferent sources, in a blog format with multilingual support, custom urls and seo.}
|
12
|
+
s.email = %q{simplelogica@simplelogica.net}
|
13
|
+
s.homepage = %q{http://www.github.com/simplelogica/refinerycms-sl-videos}
|
14
|
+
s.authors = ['Simplelógica']
|
15
|
+
s.require_paths = %w(lib)
|
16
|
+
|
17
|
+
s.files = `git ls-files`.split("\n")
|
18
|
+
s.test_files = `git ls-files -- spec/*`.split("\n")
|
19
|
+
|
20
|
+
# Runtime dependencies
|
21
|
+
s.add_dependency 'refinerycms-core', '~> 2.0.0'
|
22
|
+
s.add_dependency 'acts_as_unvlogable', '~> 1.0.0'
|
23
|
+
end
|
data/script/rails
ADDED
@@ -0,0 +1,10 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
# This command will automatically be run when you run "rails" with Rails 3 gems installed from the root of your application.
|
3
|
+
|
4
|
+
ENGINE_PATH = File.expand_path('../..', __FILE__)
|
5
|
+
dummy_rails_path = File.expand_path('../../spec/dummy/script/rails', __FILE__)
|
6
|
+
if File.exist?(dummy_rails_path)
|
7
|
+
load dummy_rails_path
|
8
|
+
else
|
9
|
+
puts "Please first run 'rake refinery:testing:dummy_app' to create a dummy Refinery CMS application."
|
10
|
+
end
|
@@ -0,0 +1,18 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
module Refinery
|
4
|
+
module Videos
|
5
|
+
describe Video do
|
6
|
+
describe "validations" do
|
7
|
+
subject do
|
8
|
+
FactoryGirl.create(:video,
|
9
|
+
:title => "Refinery CMS")
|
10
|
+
end
|
11
|
+
|
12
|
+
it { should be_valid }
|
13
|
+
its(:errors) { should be_empty }
|
14
|
+
its(:title) { should == "Refinery CMS" }
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
@@ -0,0 +1,101 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
require "spec_helper"
|
3
|
+
|
4
|
+
describe Refinery do
|
5
|
+
describe "Videos" do
|
6
|
+
describe "Admin" do
|
7
|
+
describe "videos" do
|
8
|
+
login_refinery_user
|
9
|
+
|
10
|
+
describe "videos list" do
|
11
|
+
before do
|
12
|
+
FactoryGirl.create(:video, :title => "UniqueTitleOne")
|
13
|
+
FactoryGirl.create(:video, :title => "UniqueTitleTwo")
|
14
|
+
end
|
15
|
+
|
16
|
+
it "shows two items" do
|
17
|
+
visit refinery.videos_admin_videos_path
|
18
|
+
page.should have_content("UniqueTitleOne")
|
19
|
+
page.should have_content("UniqueTitleTwo")
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
23
|
+
describe "create" do
|
24
|
+
before do
|
25
|
+
visit refinery.videos_admin_videos_path
|
26
|
+
|
27
|
+
click_link "Add New Video"
|
28
|
+
end
|
29
|
+
|
30
|
+
context "valid data" do
|
31
|
+
it "should succeed" do
|
32
|
+
fill_in "Title", :with => "This is a test of the first string field"
|
33
|
+
click_button "Save"
|
34
|
+
|
35
|
+
page.should have_content("'This is a test of the first string field' was successfully added.")
|
36
|
+
Refinery::Videos::Video.count.should == 1
|
37
|
+
end
|
38
|
+
end
|
39
|
+
|
40
|
+
context "invalid data" do
|
41
|
+
it "should fail" do
|
42
|
+
click_button "Save"
|
43
|
+
|
44
|
+
page.should have_content("Title can't be blank")
|
45
|
+
Refinery::Videos::Video.count.should == 0
|
46
|
+
end
|
47
|
+
end
|
48
|
+
|
49
|
+
context "duplicate" do
|
50
|
+
before { FactoryGirl.create(:video, :title => "UniqueTitle") }
|
51
|
+
|
52
|
+
it "should fail" do
|
53
|
+
visit refinery.videos_admin_videos_path
|
54
|
+
|
55
|
+
click_link "Add New Video"
|
56
|
+
|
57
|
+
fill_in "Title", :with => "UniqueTitle"
|
58
|
+
click_button "Save"
|
59
|
+
|
60
|
+
page.should have_content("There were problems")
|
61
|
+
Refinery::Videos::Video.count.should == 1
|
62
|
+
end
|
63
|
+
end
|
64
|
+
|
65
|
+
end
|
66
|
+
|
67
|
+
describe "edit" do
|
68
|
+
before { FactoryGirl.create(:video, :title => "A title") }
|
69
|
+
|
70
|
+
it "should succeed" do
|
71
|
+
visit refinery.videos_admin_videos_path
|
72
|
+
|
73
|
+
within ".actions" do
|
74
|
+
click_link "Edit this video"
|
75
|
+
end
|
76
|
+
|
77
|
+
fill_in "Title", :with => "A different title"
|
78
|
+
click_button "Save"
|
79
|
+
|
80
|
+
page.should have_content("'A different title' was successfully updated.")
|
81
|
+
page.should have_no_content("A title")
|
82
|
+
end
|
83
|
+
end
|
84
|
+
|
85
|
+
describe "destroy" do
|
86
|
+
before { FactoryGirl.create(:video, :title => "UniqueTitleOne") }
|
87
|
+
|
88
|
+
it "should succeed" do
|
89
|
+
visit refinery.videos_admin_videos_path
|
90
|
+
|
91
|
+
click_link "Remove this video forever"
|
92
|
+
|
93
|
+
page.should have_content("'UniqueTitleOne' was successfully removed.")
|
94
|
+
Refinery::Videos::Video.count.should == 0
|
95
|
+
end
|
96
|
+
end
|
97
|
+
|
98
|
+
end
|
99
|
+
end
|
100
|
+
end
|
101
|
+
end
|
data/spec/spec_helper.rb
ADDED
@@ -0,0 +1,61 @@
|
|
1
|
+
require 'rubygems'
|
2
|
+
|
3
|
+
def setup_environment
|
4
|
+
# Configure Rails Environment
|
5
|
+
ENV["RAILS_ENV"] ||= 'test'
|
6
|
+
|
7
|
+
if File.exist?(dummy_path = File.expand_path('../dummy/config/environment.rb', __FILE__))
|
8
|
+
require dummy_path
|
9
|
+
elsif File.dirname(__FILE__) =~ %r{vendor/extensions}
|
10
|
+
# Require the path to the refinerycms application this is vendored inside.
|
11
|
+
require File.expand_path('../../../../../config/environment', __FILE__)
|
12
|
+
end
|
13
|
+
|
14
|
+
require 'rspec/rails'
|
15
|
+
require 'capybara/rspec'
|
16
|
+
require 'factory_girl_rails'
|
17
|
+
|
18
|
+
Rails.backtrace_cleaner.remove_silencers!
|
19
|
+
|
20
|
+
RSpec.configure do |config|
|
21
|
+
config.mock_with :rspec
|
22
|
+
config.treat_symbols_as_metadata_keys_with_true_values = true
|
23
|
+
config.filter_run :focus => true
|
24
|
+
config.run_all_when_everything_filtered = true
|
25
|
+
end
|
26
|
+
|
27
|
+
# set javascript driver for capybara
|
28
|
+
Capybara.javascript_driver = :selenium
|
29
|
+
end
|
30
|
+
|
31
|
+
def each_run
|
32
|
+
Rails.cache.clear
|
33
|
+
ActiveSupport::Dependencies.clear
|
34
|
+
FactoryGirl.reload
|
35
|
+
|
36
|
+
# Requires supporting files with custom matchers and macros, etc,
|
37
|
+
# in ./support/ and its subdirectories including factories.
|
38
|
+
([Rails.root.to_s] | ::Refinery::Plugins.registered.pathnames).map{|p|
|
39
|
+
Dir[File.join(p, 'spec', 'support', '**', '*.rb').to_s]
|
40
|
+
}.flatten.sort.each do |support_file|
|
41
|
+
require support_file
|
42
|
+
end
|
43
|
+
end
|
44
|
+
|
45
|
+
# If spork is available in the Gemfile it'll be used but we don't force it.
|
46
|
+
unless (begin; require 'spork'; rescue LoadError; nil end).nil?
|
47
|
+
Spork.prefork do
|
48
|
+
# Loading more in this block will cause your tests to run faster. However,
|
49
|
+
# if you change any configuration or code from libraries loaded here, you'll
|
50
|
+
# need to restart spork for it take effect.
|
51
|
+
setup_environment
|
52
|
+
end
|
53
|
+
|
54
|
+
Spork.each_run do
|
55
|
+
# This code will be run each time you run your specs.
|
56
|
+
each_run
|
57
|
+
end
|
58
|
+
else
|
59
|
+
setup_environment
|
60
|
+
each_run
|
61
|
+
end
|
data/tasks/rspec.rake
ADDED
data/tasks/testing.rake
ADDED