radiant-index_page-extension 1.0.1
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.
- data/LICENSE +21 -0
- data/README.markdown +84 -0
- data/Rakefile +117 -0
- data/app/models/index_archive_page.rb +11 -0
- data/app/models/index_page.rb +11 -0
- data/cucumber.yml +1 -0
- data/features/support/env.rb +16 -0
- data/features/support/paths.rb +14 -0
- data/index_page_extension.rb +13 -0
- data/lib/index_page_methods.rb +11 -0
- data/lib/radiant-index_page-extension.rb +2 -0
- data/lib/radiant-index_page-extension/version.rb +3 -0
- data/lib/tasks/index_page_extension_tasks.rake +55 -0
- data/radiant-index_page-extension.gemspec +24 -0
- data/spec/spec.opts +6 -0
- data/spec/spec_helper.rb +36 -0
- data/test/functional/index_page_extension_test.rb +15 -0
- data/test/test_helper.rb +19 -0
- metadata +90 -0
data/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
== MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2008-2011, Benny Degezelle, Michael Kessler.
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
data/README.markdown
ADDED
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
Radiant *Index Page* Extension
|
|
2
|
+
==============================
|
|
3
|
+
|
|
4
|
+
<table>
|
|
5
|
+
<tr>
|
|
6
|
+
<td>Author</td>
|
|
7
|
+
<td>Benny Degezelle - <a href="http://www.gorilla-webdesign.be">Gorilla Webdesign</a></td>
|
|
8
|
+
</tr>
|
|
9
|
+
<tr>
|
|
10
|
+
<td>Version</td>
|
|
11
|
+
<td>0.1.0</td>
|
|
12
|
+
</tr>
|
|
13
|
+
<tr>
|
|
14
|
+
<td>Contact:</td>
|
|
15
|
+
<td>benny AT gorilla-webdesign DOT be</td>
|
|
16
|
+
</tr>
|
|
17
|
+
</table>
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
About
|
|
21
|
+
-----
|
|
22
|
+
|
|
23
|
+
This is for indexes that have no content for themselve.
|
|
24
|
+
|
|
25
|
+
For example, a site may be structured like so to keep things organised and clean:
|
|
26
|
+
|
|
27
|
+
/about
|
|
28
|
+
/about/history
|
|
29
|
+
/about/team
|
|
30
|
+
/about/objective
|
|
31
|
+
|
|
32
|
+
Now it is very possible that there is no content for the 'index' page on /about.
|
|
33
|
+
|
|
34
|
+
With this extension you just make the page on /about an IndexPage, which will...
|
|
35
|
+
|
|
36
|
+
* redirect your visitors to it's first published child (default setting)
|
|
37
|
+
* renders the content of the first published child under the parent url
|
|
38
|
+
|
|
39
|
+
Settings
|
|
40
|
+
--------
|
|
41
|
+
|
|
42
|
+
Per default an index page redirects to it's first published child.
|
|
43
|
+
|
|
44
|
+
The above example with the default setting:
|
|
45
|
+
|
|
46
|
+
/about -> Redirect to /about/history and thus show history page
|
|
47
|
+
/about/history -> Show history page
|
|
48
|
+
/about/team -> Show team page
|
|
49
|
+
/about/objective -> Show objective page
|
|
50
|
+
|
|
51
|
+
You can change this behaviour by setting the 'index.page' configuration to 'include'.
|
|
52
|
+
|
|
53
|
+
Radiant::Config["index.page"] = 'include'
|
|
54
|
+
|
|
55
|
+
This renders the first published child under
|
|
56
|
+
|
|
57
|
+
* its own url
|
|
58
|
+
* under the url of its parent
|
|
59
|
+
|
|
60
|
+
The above example with the default setting:
|
|
61
|
+
|
|
62
|
+
/about -> Show history page
|
|
63
|
+
/about/history -> Show history page
|
|
64
|
+
/about/team -> Show team page
|
|
65
|
+
/about/objective -> Show objective page
|
|
66
|
+
|
|
67
|
+
Contributors
|
|
68
|
+
------------
|
|
69
|
+
|
|
70
|
+
* [Michael Kessler](http://blog.netzpiraten.ch/)
|
|
71
|
+
|
|
72
|
+
Sponsors
|
|
73
|
+
--------
|
|
74
|
+
|
|
75
|
+
Some work has been kindly sponsored by:
|
|
76
|
+
|
|
77
|
+
* [Gorilla Webdesign](http://www.gorilla-webdesign.be)
|
|
78
|
+
* [Screen Concept](http://www.screenconcept.ch)
|
|
79
|
+
|
|
80
|
+
License
|
|
81
|
+
-------
|
|
82
|
+
|
|
83
|
+
This extension is released under the MIT license, see the [LICENSE](master/LICENSE) for more
|
|
84
|
+
information.
|
data/Rakefile
ADDED
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
# Determine where the RSpec plugin is by loading the boot
|
|
2
|
+
unless defined? RADIANT_ROOT
|
|
3
|
+
ENV["RAILS_ENV"] = "test"
|
|
4
|
+
case
|
|
5
|
+
when ENV["RADIANT_ENV_FILE"]
|
|
6
|
+
require File.dirname(ENV["RADIANT_ENV_FILE"]) + "/boot"
|
|
7
|
+
when File.dirname(__FILE__) =~ %r{vendor/radiant/vendor/extensions}
|
|
8
|
+
require "#{File.expand_path(File.dirname(__FILE__) + "/../../../../../")}/config/boot"
|
|
9
|
+
else
|
|
10
|
+
require "#{File.expand_path(File.dirname(__FILE__) + "/../../../")}/config/boot"
|
|
11
|
+
end
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
require 'rake'
|
|
15
|
+
require 'rake/rdoctask'
|
|
16
|
+
require 'rake/testtask'
|
|
17
|
+
|
|
18
|
+
rspec_base = File.expand_path(RADIANT_ROOT + '/vendor/plugins/rspec/lib')
|
|
19
|
+
$LOAD_PATH.unshift(rspec_base) if File.exist?(rspec_base)
|
|
20
|
+
require 'spec/rake/spectask'
|
|
21
|
+
require 'cucumber'
|
|
22
|
+
require 'cucumber/rake/task'
|
|
23
|
+
|
|
24
|
+
# Cleanup the RADIANT_ROOT constant so specs will load the environment
|
|
25
|
+
Object.send(:remove_const, :RADIANT_ROOT)
|
|
26
|
+
|
|
27
|
+
extension_root = File.expand_path(File.dirname(__FILE__))
|
|
28
|
+
|
|
29
|
+
task :default => :spec
|
|
30
|
+
task :stats => "spec:statsetup"
|
|
31
|
+
|
|
32
|
+
desc "Run all specs in spec directory"
|
|
33
|
+
Spec::Rake::SpecTask.new(:spec) do |t|
|
|
34
|
+
t.spec_opts = ['--options', "\"#{extension_root}/spec/spec.opts\""]
|
|
35
|
+
t.spec_files = FileList['spec/**/*_spec.rb']
|
|
36
|
+
end
|
|
37
|
+
|
|
38
|
+
task :features => 'spec:integration'
|
|
39
|
+
|
|
40
|
+
namespace :spec do
|
|
41
|
+
desc "Run all specs in spec directory with RCov"
|
|
42
|
+
Spec::Rake::SpecTask.new(:rcov) do |t|
|
|
43
|
+
t.spec_opts = ['--options', "\"#{extension_root}/spec/spec.opts\""]
|
|
44
|
+
t.spec_files = FileList['spec/**/*_spec.rb']
|
|
45
|
+
t.rcov = true
|
|
46
|
+
t.rcov_opts = ['--exclude', 'spec', '--rails']
|
|
47
|
+
end
|
|
48
|
+
|
|
49
|
+
desc "Print Specdoc for all specs"
|
|
50
|
+
Spec::Rake::SpecTask.new(:doc) do |t|
|
|
51
|
+
t.spec_opts = ["--format", "specdoc", "--dry-run"]
|
|
52
|
+
t.spec_files = FileList['spec/**/*_spec.rb']
|
|
53
|
+
end
|
|
54
|
+
|
|
55
|
+
[:models, :controllers, :views, :helpers].each do |sub|
|
|
56
|
+
desc "Run the specs under spec/#{sub}"
|
|
57
|
+
Spec::Rake::SpecTask.new(sub) do |t|
|
|
58
|
+
t.spec_opts = ['--options', "\"#{extension_root}/spec/spec.opts\""]
|
|
59
|
+
t.spec_files = FileList["spec/#{sub}/**/*_spec.rb"]
|
|
60
|
+
end
|
|
61
|
+
end
|
|
62
|
+
|
|
63
|
+
desc "Run the Cucumber features"
|
|
64
|
+
Cucumber::Rake::Task.new(:integration) do |t|
|
|
65
|
+
t.fork = true
|
|
66
|
+
t.cucumber_opts = ['--format', (ENV['CUCUMBER_FORMAT'] || 'pretty')]
|
|
67
|
+
# t.feature_pattern = "#{extension_root}/features/**/*.feature"
|
|
68
|
+
t.profile = "default"
|
|
69
|
+
end
|
|
70
|
+
|
|
71
|
+
# Setup specs for stats
|
|
72
|
+
task :statsetup do
|
|
73
|
+
require 'code_statistics'
|
|
74
|
+
::STATS_DIRECTORIES << %w(Model\ specs spec/models)
|
|
75
|
+
::STATS_DIRECTORIES << %w(View\ specs spec/views)
|
|
76
|
+
::STATS_DIRECTORIES << %w(Controller\ specs spec/controllers)
|
|
77
|
+
::STATS_DIRECTORIES << %w(Helper\ specs spec/views)
|
|
78
|
+
::CodeStatistics::TEST_TYPES << "Model specs"
|
|
79
|
+
::CodeStatistics::TEST_TYPES << "View specs"
|
|
80
|
+
::CodeStatistics::TEST_TYPES << "Controller specs"
|
|
81
|
+
::CodeStatistics::TEST_TYPES << "Helper specs"
|
|
82
|
+
::STATS_DIRECTORIES.delete_if {|a| a[0] =~ /test/}
|
|
83
|
+
end
|
|
84
|
+
|
|
85
|
+
namespace :db do
|
|
86
|
+
namespace :fixtures do
|
|
87
|
+
desc "Load fixtures (from spec/fixtures) into the current environment's database. Load specific fixtures using FIXTURES=x,y"
|
|
88
|
+
task :load => :environment do
|
|
89
|
+
require 'active_record/fixtures'
|
|
90
|
+
ActiveRecord::Base.establish_connection(RAILS_ENV.to_sym)
|
|
91
|
+
(ENV['FIXTURES'] ? ENV['FIXTURES'].split(/,/) : Dir.glob(File.join(RAILS_ROOT, 'spec', 'fixtures', '*.{yml,csv}'))).each do |fixture_file|
|
|
92
|
+
Fixtures.create_fixtures('spec/fixtures', File.basename(fixture_file, '.*'))
|
|
93
|
+
end
|
|
94
|
+
end
|
|
95
|
+
end
|
|
96
|
+
end
|
|
97
|
+
end
|
|
98
|
+
|
|
99
|
+
desc 'Generate documentation for the index_page extension.'
|
|
100
|
+
Rake::RDocTask.new(:rdoc) do |rdoc|
|
|
101
|
+
rdoc.rdoc_dir = 'rdoc'
|
|
102
|
+
rdoc.title = 'IndexPageExtension'
|
|
103
|
+
rdoc.options << '--line-numbers' << '--inline-source'
|
|
104
|
+
rdoc.rdoc_files.include('README')
|
|
105
|
+
rdoc.rdoc_files.include('lib/**/*.rb')
|
|
106
|
+
end
|
|
107
|
+
|
|
108
|
+
# For extensions that are in transition
|
|
109
|
+
desc 'Test the index_page extension.'
|
|
110
|
+
Rake::TestTask.new(:test) do |t|
|
|
111
|
+
t.libs << 'lib'
|
|
112
|
+
t.pattern = 'test/**/*_test.rb'
|
|
113
|
+
t.verbose = true
|
|
114
|
+
end
|
|
115
|
+
|
|
116
|
+
# Load any custom rakefiles for extension
|
|
117
|
+
Dir[File.dirname(__FILE__) + '/tasks/*.rake'].sort.each { |f| require f }
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
class IndexArchivePage < ArchivePage
|
|
2
|
+
def render
|
|
3
|
+
first_published_child = children.find_by_status_id("100", :order => 'published_at DESC', :conditions => ["published_at <= ?", Time.current])
|
|
4
|
+
super if first_published_child.nil?
|
|
5
|
+
if include_index?
|
|
6
|
+
first_published_child.render
|
|
7
|
+
else
|
|
8
|
+
response.redirect first_published_child.url, 302
|
|
9
|
+
end
|
|
10
|
+
end
|
|
11
|
+
end
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
class IndexPage < Page
|
|
2
|
+
def render
|
|
3
|
+
first_published_child = children.find_by_status_id("100", :conditions => ["published_at <= ?", Time.current])
|
|
4
|
+
super if first_published_child.nil?
|
|
5
|
+
if include_index?
|
|
6
|
+
first_published_child.render
|
|
7
|
+
else
|
|
8
|
+
response.redirect first_published_child.url, 302
|
|
9
|
+
end
|
|
10
|
+
end
|
|
11
|
+
end
|
data/cucumber.yml
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
default: --format progress features --tags ~@proposed,~@in_progress
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
# Sets up the Rails environment for Cucumber
|
|
2
|
+
ENV["RAILS_ENV"] = "test"
|
|
3
|
+
# Extension root
|
|
4
|
+
extension_env = File.expand_path(File.dirname(__FILE__) + '/../../../../../config/environment')
|
|
5
|
+
require extension_env+'.rb'
|
|
6
|
+
|
|
7
|
+
Dir.glob(File.join(RADIANT_ROOT, "features", "**", "*.rb")).each {|step| require step}
|
|
8
|
+
|
|
9
|
+
Cucumber::Rails::World.class_eval do
|
|
10
|
+
include Dataset
|
|
11
|
+
datasets_directory "#{RADIANT_ROOT}/spec/datasets"
|
|
12
|
+
Dataset::Resolver.default = Dataset::DirectoryResolver.new("#{RADIANT_ROOT}/spec/datasets", File.dirname(__FILE__) + '/../../spec/datasets', File.dirname(__FILE__) + '/../datasets')
|
|
13
|
+
self.datasets_database_dump_path = "#{Rails.root}/tmp/dataset"
|
|
14
|
+
|
|
15
|
+
# dataset :index_page
|
|
16
|
+
end
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
# Uncomment this if you reference any of your controllers in activate
|
|
2
|
+
# require_dependency 'application_controller'
|
|
3
|
+
require 'radiant-index_page-extension/version'
|
|
4
|
+
class IndexPageExtension < Radiant::Extension
|
|
5
|
+
version RadiantIndexPageExtension::VERSION
|
|
6
|
+
description "Adds the ability to let a 'blank' parent page redirect to it's first child"
|
|
7
|
+
url "http://github.com/jomz/radiant-index-page-extension"
|
|
8
|
+
|
|
9
|
+
def activate
|
|
10
|
+
IndexPage.send :include, IndexPageMethods
|
|
11
|
+
IndexArchivePage.send :include, IndexPageMethods
|
|
12
|
+
end
|
|
13
|
+
end
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
namespace :radiant do
|
|
2
|
+
namespace :extensions do
|
|
3
|
+
namespace :index_page do
|
|
4
|
+
|
|
5
|
+
desc "Runs the migration of the Index Page extension"
|
|
6
|
+
task :migrate => :environment do
|
|
7
|
+
require 'radiant/extension_migrator'
|
|
8
|
+
if ENV["VERSION"]
|
|
9
|
+
IndexPageExtension.migrator.migrate(ENV["VERSION"].to_i)
|
|
10
|
+
Rake::Task['db:schema:dump'].invoke
|
|
11
|
+
else
|
|
12
|
+
IndexPageExtension.migrator.migrate
|
|
13
|
+
Rake::Task['db:schema:dump'].invoke
|
|
14
|
+
end
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
desc "Copies public assets of the Index Page to the instance public/ directory."
|
|
18
|
+
task :update => :environment do
|
|
19
|
+
is_svn_or_dir = proc {|path| path =~ /\.svn/ || File.directory?(path) }
|
|
20
|
+
puts "Copying assets from IndexPageExtension"
|
|
21
|
+
Dir[IndexPageExtension.root + "/public/**/*"].reject(&is_svn_or_dir).each do |file|
|
|
22
|
+
path = file.sub(IndexPageExtension.root, '')
|
|
23
|
+
directory = File.dirname(path)
|
|
24
|
+
mkdir_p RAILS_ROOT + directory, :verbose => false
|
|
25
|
+
cp file, RAILS_ROOT + path, :verbose => false
|
|
26
|
+
end
|
|
27
|
+
unless IndexPageExtension.root.starts_with? RAILS_ROOT # don't need to copy vendored tasks
|
|
28
|
+
puts "Copying rake tasks from IndexPageExtension"
|
|
29
|
+
local_tasks_path = File.join(RAILS_ROOT, %w(lib tasks))
|
|
30
|
+
mkdir_p local_tasks_path, :verbose => false
|
|
31
|
+
Dir[File.join IndexPageExtension.root, %w(lib tasks *.rake)].each do |file|
|
|
32
|
+
cp file, local_tasks_path, :verbose => false
|
|
33
|
+
end
|
|
34
|
+
end
|
|
35
|
+
end
|
|
36
|
+
|
|
37
|
+
desc "Syncs all available translations for this ext to the English ext master"
|
|
38
|
+
task :sync => :environment do
|
|
39
|
+
# The main translation root, basically where English is kept
|
|
40
|
+
language_root = IndexPageExtension.root + "/config/locales"
|
|
41
|
+
words = TranslationSupport.get_translation_keys(language_root)
|
|
42
|
+
|
|
43
|
+
Dir["#{language_root}/*.yml"].each do |filename|
|
|
44
|
+
next if filename.match('_available_tags')
|
|
45
|
+
basename = File.basename(filename, '.yml')
|
|
46
|
+
puts "Syncing #{basename}"
|
|
47
|
+
(comments, other) = TranslationSupport.read_file(filename, basename)
|
|
48
|
+
words.each { |k,v| other[k] ||= words[k] } # Initializing hash variable as empty if it does not exist
|
|
49
|
+
other.delete_if { |k,v| !words[k] } # Remove if not defined in en.yml
|
|
50
|
+
TranslationSupport.write_file(filename, basename, comments, other)
|
|
51
|
+
end
|
|
52
|
+
end
|
|
53
|
+
end
|
|
54
|
+
end
|
|
55
|
+
end
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
|
2
|
+
$:.push File.expand_path("../lib", __FILE__)
|
|
3
|
+
require "radiant-index_page-extension/version"
|
|
4
|
+
|
|
5
|
+
Gem::Specification.new do |s|
|
|
6
|
+
s.name = "radiant-index_page-extension"
|
|
7
|
+
s.version = RadiantIndexPageExtension::VERSION
|
|
8
|
+
s.platform = Gem::Platform::RUBY
|
|
9
|
+
s.authors = ["Benny Degezelle"]
|
|
10
|
+
s.email = ["benny@gorilla-webdesign.be"]
|
|
11
|
+
s.homepage = "http://github.com/jomz/radiant-index-page-extension"
|
|
12
|
+
s.summary = %q{Index Page for Radiant CMS}
|
|
13
|
+
s.description = %q{Makes Radiant better by adding index_page!}
|
|
14
|
+
|
|
15
|
+
s.files = `git ls-files`.split("\n")
|
|
16
|
+
s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
|
|
17
|
+
s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
|
|
18
|
+
s.require_paths = ["lib"]
|
|
19
|
+
|
|
20
|
+
s.post_install_message = %{
|
|
21
|
+
Add this to your radiant project with:
|
|
22
|
+
config.gem 'radiant-index_page-extension', :version => '#{RadiantIndexPageExtension::VERSION}'
|
|
23
|
+
}
|
|
24
|
+
end
|
data/spec/spec.opts
ADDED
data/spec/spec_helper.rb
ADDED
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
unless defined? RADIANT_ROOT
|
|
2
|
+
ENV["RAILS_ENV"] = "test"
|
|
3
|
+
case
|
|
4
|
+
when ENV["RADIANT_ENV_FILE"]
|
|
5
|
+
require ENV["RADIANT_ENV_FILE"]
|
|
6
|
+
when File.dirname(__FILE__) =~ %r{vendor/radiant/vendor/extensions}
|
|
7
|
+
require "#{File.expand_path(File.dirname(__FILE__) + "/../../../../../../")}/config/environment"
|
|
8
|
+
else
|
|
9
|
+
require "#{File.expand_path(File.dirname(__FILE__) + "/../../../../")}/config/environment"
|
|
10
|
+
end
|
|
11
|
+
end
|
|
12
|
+
require "#{RADIANT_ROOT}/spec/spec_helper"
|
|
13
|
+
|
|
14
|
+
Dataset::Resolver.default << (File.dirname(__FILE__) + "/datasets")
|
|
15
|
+
|
|
16
|
+
if File.directory?(File.dirname(__FILE__) + "/matchers")
|
|
17
|
+
Dir[File.dirname(__FILE__) + "/matchers/*.rb"].each {|file| require file }
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
Spec::Runner.configure do |config|
|
|
21
|
+
# config.use_transactional_fixtures = true
|
|
22
|
+
# config.use_instantiated_fixtures = false
|
|
23
|
+
# config.fixture_path = RAILS_ROOT + '/spec/fixtures'
|
|
24
|
+
|
|
25
|
+
# You can declare fixtures for each behaviour like this:
|
|
26
|
+
# describe "...." do
|
|
27
|
+
# fixtures :table_a, :table_b
|
|
28
|
+
#
|
|
29
|
+
# Alternatively, if you prefer to declare them only once, you can
|
|
30
|
+
# do so here, like so ...
|
|
31
|
+
#
|
|
32
|
+
# config.global_fixtures = :table_a, :table_b
|
|
33
|
+
#
|
|
34
|
+
# If you declare global fixtures, be aware that they will be declared
|
|
35
|
+
# for all of your examples, even those that don't use them.
|
|
36
|
+
end
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
require File.dirname(__FILE__) + '/../test_helper'
|
|
2
|
+
|
|
3
|
+
class IndexPageExtensionTest < Test::Unit::TestCase
|
|
4
|
+
|
|
5
|
+
# Replace this with your real tests.
|
|
6
|
+
def test_this_extension
|
|
7
|
+
flunk
|
|
8
|
+
end
|
|
9
|
+
|
|
10
|
+
def test_initialization
|
|
11
|
+
assert_equal File.join(File.expand_path(RAILS_ROOT), 'vendor', 'extensions', 'index_page'), IndexPageExtension.root
|
|
12
|
+
assert_equal 'Index Page', IndexPageExtension.extension_name
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
end
|
data/test/test_helper.rb
ADDED
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
require 'test/unit'
|
|
2
|
+
# # Load the environment
|
|
3
|
+
unless defined? RADIANT_ROOT
|
|
4
|
+
ENV["RAILS_ENV"] = "test"
|
|
5
|
+
require "#{File.expand_path(File.dirname(__FILE__) + "/../../../../")}/config/environment"
|
|
6
|
+
end
|
|
7
|
+
require "#{RADIANT_ROOT}/test/test_helper"
|
|
8
|
+
|
|
9
|
+
class Test::Unit::TestCase
|
|
10
|
+
|
|
11
|
+
# Include a helper to make testing Radius tags easier
|
|
12
|
+
test_helper :extension_tags
|
|
13
|
+
|
|
14
|
+
# Add the fixture directory to the fixture path
|
|
15
|
+
self.fixture_path << File.dirname(__FILE__) + "/fixtures"
|
|
16
|
+
|
|
17
|
+
# Add more helper methods to be used by all extension tests here...
|
|
18
|
+
|
|
19
|
+
end
|
metadata
ADDED
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
|
2
|
+
name: radiant-index_page-extension
|
|
3
|
+
version: !ruby/object:Gem::Version
|
|
4
|
+
hash: 21
|
|
5
|
+
prerelease: false
|
|
6
|
+
segments:
|
|
7
|
+
- 1
|
|
8
|
+
- 0
|
|
9
|
+
- 1
|
|
10
|
+
version: 1.0.1
|
|
11
|
+
platform: ruby
|
|
12
|
+
authors:
|
|
13
|
+
- Benny Degezelle
|
|
14
|
+
autorequire:
|
|
15
|
+
bindir: bin
|
|
16
|
+
cert_chain: []
|
|
17
|
+
|
|
18
|
+
date: 2011-02-15 00:00:00 +01:00
|
|
19
|
+
default_executable:
|
|
20
|
+
dependencies: []
|
|
21
|
+
|
|
22
|
+
description: Makes Radiant better by adding index_page!
|
|
23
|
+
email:
|
|
24
|
+
- benny@gorilla-webdesign.be
|
|
25
|
+
executables: []
|
|
26
|
+
|
|
27
|
+
extensions: []
|
|
28
|
+
|
|
29
|
+
extra_rdoc_files: []
|
|
30
|
+
|
|
31
|
+
files:
|
|
32
|
+
- LICENSE
|
|
33
|
+
- README.markdown
|
|
34
|
+
- Rakefile
|
|
35
|
+
- app/models/index_archive_page.rb
|
|
36
|
+
- app/models/index_page.rb
|
|
37
|
+
- cucumber.yml
|
|
38
|
+
- features/support/env.rb
|
|
39
|
+
- features/support/paths.rb
|
|
40
|
+
- index_page_extension.rb
|
|
41
|
+
- lib/index_page_methods.rb
|
|
42
|
+
- lib/radiant-index_page-extension.rb
|
|
43
|
+
- lib/radiant-index_page-extension/version.rb
|
|
44
|
+
- lib/tasks/index_page_extension_tasks.rake
|
|
45
|
+
- radiant-index_page-extension.gemspec
|
|
46
|
+
- spec/spec.opts
|
|
47
|
+
- spec/spec_helper.rb
|
|
48
|
+
- test/functional/index_page_extension_test.rb
|
|
49
|
+
- test/test_helper.rb
|
|
50
|
+
has_rdoc: true
|
|
51
|
+
homepage: http://github.com/jomz/radiant-index-page-extension
|
|
52
|
+
licenses: []
|
|
53
|
+
|
|
54
|
+
post_install_message: "\n Add this to your radiant project with:\n config.gem 'radiant-index_page-extension', :version => '1.0.1'\n "
|
|
55
|
+
rdoc_options: []
|
|
56
|
+
|
|
57
|
+
require_paths:
|
|
58
|
+
- lib
|
|
59
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
|
60
|
+
none: false
|
|
61
|
+
requirements:
|
|
62
|
+
- - ">="
|
|
63
|
+
- !ruby/object:Gem::Version
|
|
64
|
+
hash: 3
|
|
65
|
+
segments:
|
|
66
|
+
- 0
|
|
67
|
+
version: "0"
|
|
68
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
69
|
+
none: false
|
|
70
|
+
requirements:
|
|
71
|
+
- - ">="
|
|
72
|
+
- !ruby/object:Gem::Version
|
|
73
|
+
hash: 3
|
|
74
|
+
segments:
|
|
75
|
+
- 0
|
|
76
|
+
version: "0"
|
|
77
|
+
requirements: []
|
|
78
|
+
|
|
79
|
+
rubyforge_project:
|
|
80
|
+
rubygems_version: 1.3.7
|
|
81
|
+
signing_key:
|
|
82
|
+
specification_version: 3
|
|
83
|
+
summary: Index Page for Radiant CMS
|
|
84
|
+
test_files:
|
|
85
|
+
- features/support/env.rb
|
|
86
|
+
- features/support/paths.rb
|
|
87
|
+
- spec/spec.opts
|
|
88
|
+
- spec/spec_helper.rb
|
|
89
|
+
- test/functional/index_page_extension_test.rb
|
|
90
|
+
- test/test_helper.rb
|