simple-pages 0.1.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.
- data/Rakefile +53 -0
- data/VERSION +1 -0
- data/generators/simple_pages/simple_pages_generator.rb +49 -0
- data/generators/simple_pages/templates/simple_pages_controller.rb +3 -0
- data/lib/simple-pages.rb +9 -0
- data/lib/simple_pages/controller_methods.rb +24 -0
- data/spec/lib/simple-pages_spec.rb +23 -0
- data/spec/lib/simple_pages/controller_methods_spec.rb +33 -0
- data/spec/spec_helper.rb +12 -0
- metadata +75 -0
data/Rakefile
ADDED
@@ -0,0 +1,53 @@
|
|
1
|
+
require 'rake'
|
2
|
+
require 'spec/rake/spectask'
|
3
|
+
require 'rake/rdoctask'
|
4
|
+
|
5
|
+
desc 'Default: run specs.'
|
6
|
+
task :default => :spec
|
7
|
+
|
8
|
+
desc 'Run the specs'
|
9
|
+
Spec::Rake::SpecTask.new(:spec) do |t|
|
10
|
+
t.spec_opts = ['--colour --format progress --loadby mtime --reverse']
|
11
|
+
t.spec_files = FileList['spec/**/*_spec.rb']
|
12
|
+
end
|
13
|
+
|
14
|
+
namespace :spec do
|
15
|
+
desc "Run all specs with RCov"
|
16
|
+
Spec::Rake::SpecTask.new(:rcov) do |t|
|
17
|
+
t.spec_opts = ['--colour --format progress --loadby mtime --reverse']
|
18
|
+
t.spec_files = FileList['spec/**/*_spec.rb']
|
19
|
+
t.rcov = true
|
20
|
+
t.rcov_opts = ['--exclude', 'spec,/Users/']
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
24
|
+
desc 'Generate documentation for the simple_navigation plugin.'
|
25
|
+
Rake::RDocTask.new(:rdoc) do |rdoc|
|
26
|
+
rdoc.rdoc_dir = 'rdoc'
|
27
|
+
rdoc.title = 'Simple Pages'
|
28
|
+
rdoc.options << '--line-numbers' << '--inline-source'
|
29
|
+
rdoc.rdoc_files.include('README')
|
30
|
+
rdoc.rdoc_files.include('lib/**/*.rb')
|
31
|
+
end
|
32
|
+
|
33
|
+
begin
|
34
|
+
require 'jeweler'
|
35
|
+
Jeweler::Tasks.new do |gemspec|
|
36
|
+
gemspec.name = "simple-pages"
|
37
|
+
gemspec.summary = "simple-pages is a ruby library to easily render static pages in your Ruby on Rails application."
|
38
|
+
gemspec.email = "andreas.schacke@gmail.com"
|
39
|
+
gemspec.homepage = "http://github.com/andi/simple-navigation"
|
40
|
+
gemspec.description = "simple-pages is a ruby library to easily render static pages in your Ruby on Rails application."
|
41
|
+
gemspec.add_development_dependency('rspec', '>= 1.2.8')
|
42
|
+
gemspec.authors = ["Andi Schacke"]
|
43
|
+
gemspec.rdoc_options = ["--inline-source", "--charset=UTF-8"]
|
44
|
+
gemspec.files = FileList["[A-Z]*", "{lib,spec,rails,generators}/**/*"] - FileList["**/*.log"]
|
45
|
+
# gemspec.rubyforge_project = 'andi'
|
46
|
+
end
|
47
|
+
Jeweler::GemcutterTasks.new
|
48
|
+
# Jeweler::RubyforgeTasks.new do |rubyforge|
|
49
|
+
# rubyforge.doc_task = "rdoc"
|
50
|
+
# end
|
51
|
+
rescue LoadError => e
|
52
|
+
puts "Jeweler not available (#{e}). Install it with: sudo gem install technicalpickles-jeweler -s http://gems.github.com"
|
53
|
+
end
|
data/VERSION
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
0.1.0
|
@@ -0,0 +1,49 @@
|
|
1
|
+
class SimplePagesGenerator < Rails::Generator::Base
|
2
|
+
|
3
|
+
def manifest
|
4
|
+
|
5
|
+
if options[:add_route]
|
6
|
+
add_to_file "config/routes.rb", "ActionController::Routing::Routes.draw do |map|", "\n SimplePages.add_route(map, '#{route_name}')\n"
|
7
|
+
end
|
8
|
+
|
9
|
+
record do |m|
|
10
|
+
m.directory File.join(%w(app controllers))
|
11
|
+
m.directory File.join(%w(app views simple_pages))
|
12
|
+
m.file "simple_pages_controller.rb", File.join(%w(app controllers simple_pages_controller.rb))
|
13
|
+
end
|
14
|
+
end
|
15
|
+
|
16
|
+
protected
|
17
|
+
|
18
|
+
def add_to_file(filename, after_line, new_line)
|
19
|
+
filename = File.join(RAILS_ROOT, filename)
|
20
|
+
src = File.read filename
|
21
|
+
unless src.include? new_line
|
22
|
+
src.sub!(after_line, after_line + "\n" + new_line)
|
23
|
+
File.open(filename, 'w') {|f| f.write(src) }
|
24
|
+
end
|
25
|
+
end
|
26
|
+
|
27
|
+
def banner
|
28
|
+
"Usage: #{$0} #{spec.name} [--add-route] [--route-name NAME]"
|
29
|
+
end
|
30
|
+
|
31
|
+
def add_options!(opt)
|
32
|
+
opt.separator ''
|
33
|
+
opt.separator 'Options:'
|
34
|
+
opt.on("--add-route",
|
35
|
+
"Add simple-pages route to config/routes.rb") { |v| options[:add_route] = v }
|
36
|
+
opt.on("--route-name NAME ",
|
37
|
+
"name for the simple-pages route in config/routes.rb") { |v| options[:route_name] = v }
|
38
|
+
end
|
39
|
+
|
40
|
+
def route_name
|
41
|
+
options[:route_name] || "pages"
|
42
|
+
end
|
43
|
+
|
44
|
+
|
45
|
+
end
|
46
|
+
|
47
|
+
|
48
|
+
|
49
|
+
|
data/lib/simple-pages.rb
ADDED
@@ -0,0 +1,24 @@
|
|
1
|
+
module SimplePages
|
2
|
+
|
3
|
+
module ControllerMethods
|
4
|
+
|
5
|
+
def self.included(base)
|
6
|
+
base.class_eval do
|
7
|
+
include InstanceMethods
|
8
|
+
end
|
9
|
+
end
|
10
|
+
|
11
|
+
module InstanceMethods
|
12
|
+
|
13
|
+
def show_page
|
14
|
+
target = params[:page]
|
15
|
+
render_options = {:template => "simple_pages/#{target.to_s}"}
|
16
|
+
render_options[:layout] = params[:layout] if params[:layout]
|
17
|
+
render(render_options)
|
18
|
+
end
|
19
|
+
|
20
|
+
end
|
21
|
+
|
22
|
+
end
|
23
|
+
|
24
|
+
end
|
@@ -0,0 +1,23 @@
|
|
1
|
+
require File.dirname(__FILE__) + '/../spec_helper'
|
2
|
+
|
3
|
+
describe SimplePages do
|
4
|
+
|
5
|
+
describe 'self.add_route' do
|
6
|
+
before(:each) do
|
7
|
+
@map = stub :map
|
8
|
+
end
|
9
|
+
it "should call route_name on map with correct params" do
|
10
|
+
@map.should_receive('pages').with("pages/:page", :controller => 'simple_pages', :action => 'show_page')
|
11
|
+
end
|
12
|
+
after(:each) do
|
13
|
+
SimplePages.add_route(@map, 'pages')
|
14
|
+
end
|
15
|
+
end
|
16
|
+
|
17
|
+
|
18
|
+
def self.add_route(map, route_name)
|
19
|
+
map.send(route_name, "#{route_name}/:page", :controller => 'simple_pages', :action => 'show_page')
|
20
|
+
end
|
21
|
+
|
22
|
+
|
23
|
+
end
|
@@ -0,0 +1,33 @@
|
|
1
|
+
require File.dirname(__FILE__) + '/../../spec_helper'
|
2
|
+
|
3
|
+
describe SimplePages::ControllerMethods do
|
4
|
+
|
5
|
+
before(:each) do
|
6
|
+
@controller = Class.new {include SimplePages::ControllerMethods}.new
|
7
|
+
end
|
8
|
+
|
9
|
+
describe 'inclusion of module' do
|
10
|
+
it "should have the show_page action" do
|
11
|
+
@controller.should respond_to(:show_page)
|
12
|
+
end
|
13
|
+
end
|
14
|
+
|
15
|
+
describe 'show_page' do
|
16
|
+
context 'without layout specified' do
|
17
|
+
before(:each) do
|
18
|
+
@controller.stub!(:params => {:page => 'my_page'})
|
19
|
+
end
|
20
|
+
it {@controller.should_receive(:render).with(:template => 'simple_pages/my_page')}
|
21
|
+
end
|
22
|
+
context 'with layout specified' do
|
23
|
+
before(:each) do
|
24
|
+
@controller.stub!(:params => {:page => 'my_page', :layout => 'my_layout'})
|
25
|
+
end
|
26
|
+
it {@controller.should_receive(:render).with(:template => 'simple_pages/my_page', :layout => 'my_layout')}
|
27
|
+
end
|
28
|
+
after(:each) do
|
29
|
+
@controller.show_page
|
30
|
+
end
|
31
|
+
end
|
32
|
+
|
33
|
+
end
|
data/spec/spec_helper.rb
ADDED
@@ -0,0 +1,12 @@
|
|
1
|
+
ENV["RAILS_ENV"] = "test"
|
2
|
+
require 'rubygems'
|
3
|
+
require 'spec'
|
4
|
+
|
5
|
+
$:.unshift File.dirname(__FILE__)
|
6
|
+
$:.unshift File.join(File.dirname(__FILE__), '../lib')
|
7
|
+
|
8
|
+
require 'simple-pages'
|
9
|
+
|
10
|
+
# Spec::Runner.configure do |config|
|
11
|
+
# no special config
|
12
|
+
# endx
|
metadata
ADDED
@@ -0,0 +1,75 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: simple-pages
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.1.0
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Andi Schacke
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
|
12
|
+
date: 2010-03-21 00:00:00 +01:00
|
13
|
+
default_executable:
|
14
|
+
dependencies:
|
15
|
+
- !ruby/object:Gem::Dependency
|
16
|
+
name: rspec
|
17
|
+
type: :development
|
18
|
+
version_requirement:
|
19
|
+
version_requirements: !ruby/object:Gem::Requirement
|
20
|
+
requirements:
|
21
|
+
- - ">="
|
22
|
+
- !ruby/object:Gem::Version
|
23
|
+
version: 1.2.8
|
24
|
+
version:
|
25
|
+
description: simple-pages is a ruby library to easily render static pages in your Ruby on Rails application.
|
26
|
+
email: andreas.schacke@gmail.com
|
27
|
+
executables: []
|
28
|
+
|
29
|
+
extensions: []
|
30
|
+
|
31
|
+
extra_rdoc_files: []
|
32
|
+
|
33
|
+
files:
|
34
|
+
- Rakefile
|
35
|
+
- VERSION
|
36
|
+
- generators/simple_pages/simple_pages_generator.rb
|
37
|
+
- generators/simple_pages/templates/simple_pages_controller.rb
|
38
|
+
- lib/simple-pages.rb
|
39
|
+
- lib/simple_pages/controller_methods.rb
|
40
|
+
- spec/lib/simple-pages_spec.rb
|
41
|
+
- spec/lib/simple_pages/controller_methods_spec.rb
|
42
|
+
- spec/spec_helper.rb
|
43
|
+
has_rdoc: true
|
44
|
+
homepage: http://github.com/andi/simple-navigation
|
45
|
+
licenses: []
|
46
|
+
|
47
|
+
post_install_message:
|
48
|
+
rdoc_options:
|
49
|
+
- --inline-source
|
50
|
+
- --charset=UTF-8
|
51
|
+
require_paths:
|
52
|
+
- lib
|
53
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
54
|
+
requirements:
|
55
|
+
- - ">="
|
56
|
+
- !ruby/object:Gem::Version
|
57
|
+
version: "0"
|
58
|
+
version:
|
59
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
60
|
+
requirements:
|
61
|
+
- - ">="
|
62
|
+
- !ruby/object:Gem::Version
|
63
|
+
version: "0"
|
64
|
+
version:
|
65
|
+
requirements: []
|
66
|
+
|
67
|
+
rubyforge_project:
|
68
|
+
rubygems_version: 1.3.5
|
69
|
+
signing_key:
|
70
|
+
specification_version: 3
|
71
|
+
summary: simple-pages is a ruby library to easily render static pages in your Ruby on Rails application.
|
72
|
+
test_files:
|
73
|
+
- spec/lib/simple-pages_spec.rb
|
74
|
+
- spec/lib/simple_pages/controller_methods_spec.rb
|
75
|
+
- spec/spec_helper.rb
|