manuscript 0.1.6 → 0.1.7

Sign up to get free protection for your applications and to get access to all the features.
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.1.6
1
+ 0.1.7
@@ -1,15 +1,16 @@
1
- module Manuscript
2
- class Base < Sinatra::Base
1
+ module Manuscript
2
+ class Base < Sinatra::Base
3
3
  get "/:page_name" do
4
+ @user = session[:sso].nil? ? nil : User.new(session[:sso])
4
5
  @page = Page.find_by_name(params[:page_name])
5
6
  raise Sinatra::NotFound unless @page
6
- @page.to_html
7
+ @page.to_html(@user)
7
8
  end
8
9
 
9
10
  get "/" do
10
11
  @page = Page.find_by_name('index')
11
12
  raise Sinatra::NotFound unless @page
12
- @page.to_html
13
+ @page.to_html(@user)
13
14
  end
14
15
  end
15
16
  end
@@ -7,10 +7,11 @@ module Manuscript
7
7
 
8
8
  validates_presence_of :name
9
9
  validates_uniqueness_of :name
10
+ validates_format_of :name, :with => /^[-a-zA-Z0-9]+$/
10
11
 
11
- def to_html
12
+ def to_html(user = nil)
12
13
  if template
13
- template.render({'contents' => RDiscount.new(contents).to_html})
14
+ template.render({'current_user' => user, 'contents' => RDiscount.new(contents).to_html})
14
15
  else
15
16
  RDiscount.new(contents).to_html
16
17
  end
@@ -4,7 +4,7 @@ module Manuscript
4
4
 
5
5
  def render(options)
6
6
  if layout
7
- layout.render({ 'contents' => super(options) })
7
+ layout.render({ 'current_user' => options['current_user'], 'contents' => super(options) })
8
8
  else
9
9
  super(options)
10
10
  end
@@ -0,0 +1,19 @@
1
+ module Manuscript
2
+ class User
3
+ def initialize(attributes)
4
+ @attributes = attributes
5
+ end
6
+
7
+ def id
8
+ @attributes[:user_id]
9
+ end
10
+
11
+ def email
12
+ @attributes[:email]
13
+ end
14
+
15
+ def to_liquid
16
+ {'id' => id, 'email' => email}
17
+ end
18
+ end
19
+ end
data/lib/manuscript.rb CHANGED
@@ -18,6 +18,7 @@ require 'manuscript/layout_template'
18
18
  require 'manuscript/template_manager'
19
19
  require 'manuscript/template_file'
20
20
  require 'manuscript/template_file_manager'
21
+ require 'manuscript/user'
21
22
 
22
23
  ActiveRecord::Base.logger = Logger.new(STDERR)
23
24
 
data/manuscript.gemspec CHANGED
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{manuscript}
8
- s.version = "0.1.6"
8
+ s.version = "0.1.7"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["hotink"]
12
- s.date = %q{2010-01-14}
12
+ s.date = %q{2010-01-16}
13
13
  s.description = %q{A gem for publishing a small Hot Ink authenticated site}
14
14
  s.email = %q{chris@hotink.net}
15
15
  s.extra_rdoc_files = [
@@ -40,6 +40,7 @@ Gem::Specification.new do |s|
40
40
  "lib/manuscript/template_file.rb",
41
41
  "lib/manuscript/template_file_manager.rb",
42
42
  "lib/manuscript/template_manager.rb",
43
+ "lib/manuscript/user.rb",
43
44
  "manuscript.gemspec",
44
45
  "public/css/base.css",
45
46
  "spec/manuscript/base_spec.rb",
@@ -50,6 +51,7 @@ Gem::Specification.new do |s|
50
51
  "spec/manuscript/template_file_manager_spec.rb",
51
52
  "spec/manuscript/template_file_spec.rb",
52
53
  "spec/manuscript/template_manager_spec.rb",
54
+ "spec/manuscript/user_spec.rb",
53
55
  "spec/spec.opts",
54
56
  "spec/spec_helper.rb",
55
57
  "views/edit_template_file.haml",
@@ -76,6 +78,7 @@ Gem::Specification.new do |s|
76
78
  "spec/manuscript/template_file_manager_spec.rb",
77
79
  "spec/manuscript/template_file_spec.rb",
78
80
  "spec/manuscript/template_manager_spec.rb",
81
+ "spec/manuscript/user_spec.rb",
79
82
  "spec/spec_helper.rb"
80
83
  ]
81
84
 
data/public/css/base.css CHANGED
@@ -1,10 +1,20 @@
1
- body { font-size: 16px; line-height: 1.1em; font-family: "Helvetica Neue", verdana, tahoma, arial, sans-serif; }
2
- div#page_container { width: 960px; }
1
+ body { font-size: 16px; color: #222; line-height: 1.1em; margin:0; font-family: "Helvetica Neue", verdana, tahoma, arial, sans-serif; }
2
+ div#page_container { width: 960px; margin: 5px 10px; }
3
3
 
4
- ol.menu { list-style: none; padding-left: 0; }
4
+ ol.menu { list-style: none; padding: 5px; margin-top: 0; background-color: #FFF6DD; }
5
5
  ol.menu li { display: inline; margin: 0 10px; }
6
+ ol.menu li a { text-decoration: none; }
7
+ ol.menu li a.current { font-weight: bold; text-decoration: underline; }
8
+
9
+ ol#pages { list-style: none; font-size: 20px; margin: 30px 0; }
10
+ ol#pages li { margin: 15px 0;}
6
11
 
7
12
  form label { display:block; padding: 10px 0; }
8
- form input[type="text"] { font-size: 18px; width: 600px;}
9
- form textarea { font-family: "andale mono", courier, tahoma, mono; font-size: 15px; width: 940px; height: 500px; }
10
- form input[type="submit"] { float: right; }
13
+ form input[type="text"] { font-size: 20px; width: 600px; border: 1px solid #AAA; padding: 3px; }
14
+ form textarea { font-family: "andale mono", courier, tahoma, mono; padding: 5px; font-size: 15px; width: 940px; height: 500px; }
15
+ form input[type="submit"] { float: right; }
16
+
17
+ .button_link { text-decoration: none; outline: none; font-size: 12px; padding: 3px; color: black; background-color: #FFF6DD; border: 1px solid #333;-moz-border-radius: 3px; -webkit-border-radius: 3px; }
18
+ .button_link:visited { color: black; }
19
+ .button_link:hover { background-color: #CEE4F3; }
20
+ .button_link:active { background-color: #EEF4FF; }
@@ -8,6 +8,14 @@ describe Manuscript::Page do
8
8
  it { should validate_uniqueness_of(:name) }
9
9
  it { should belong_to(:template) }
10
10
 
11
+ it "should restrict names to uri-friendly strings" do
12
+ should allow_value('page-name').for(:name)
13
+ should allow_value('page1name').for(:name)
14
+ should_not allow_value('page#name').for(:name)
15
+ should_not allow_value('page name').for(:name)
16
+ should_not allow_value('page/name').for(:name)
17
+ end
18
+
11
19
  describe "rendering a page as HTML" do
12
20
  before do
13
21
  @page = Manuscript::Page.create!(:name => 'words', :contents => 'we **got** em')
@@ -0,0 +1,15 @@
1
+ require File.expand_path(File.dirname(__FILE__) + '/../spec_helper')
2
+
3
+ describe Manuscript::User do
4
+
5
+ it "should make options from initialization hash" do
6
+ user = Manuscript::User.new({:user_id => 2, :email => "test@testaddress.com"})
7
+ user.id.should == 2
8
+ user.email.should == "test@testaddress.com"
9
+ end
10
+
11
+ it "should expose it's details to Liquid" do
12
+ user = Manuscript::User.new({:user_id => 2, :email => "test@testaddress.com"})
13
+ user.to_liquid.should == {'id' => 2, 'email' => "test@testaddress.com"}
14
+ end
15
+ end
data/views/layout.haml CHANGED
@@ -3,7 +3,7 @@
3
3
  %title Manuscript, simple content management
4
4
  %link{ :rel=>'stylesheet', :href=>'/css/base.css', :type=>'text/css', :media=>'screen' }
5
5
  %body
6
+ = haml(:menu, :layout => false)
6
7
  #page_container
7
- = haml(:menu, :layout => false)
8
8
  = yield
9
9
 
data/views/menu.haml CHANGED
@@ -1,7 +1,16 @@
1
1
  %ol.menu
2
2
  %li
3
- %a{:href => "/admin/pages"} Pages
3
+ - if request.path_info =~ /^\/admin\/pages/
4
+ %a.current{:href => "/admin/pages"} Pages
5
+ - else
6
+ %a{:href => "/admin/pages"} Pages
4
7
  %li
5
- %a{:href => "/admin/templates"} Templates
8
+ - if (request.path_info =~ /^\/admin\/templates/) || (request.path_info =~ /^\/admin\/layouts/)
9
+ %a.current{:href => "/admin/templates"} Templates
10
+ - else
11
+ %a{:href => "/admin/templates"} Templates
6
12
  %li
7
- %a{:href => "/admin/template_files"} Files
13
+ - if request.path_info =~ /^\/admin\/template_files/
14
+ %a.current{:href => "/admin/template_files"} Files
15
+ - else
16
+ %a{:href => "/admin/template_files"} Files
data/views/pages.haml CHANGED
@@ -1,7 +1,8 @@
1
1
  %h1 Pages
2
- %ol
2
+ %ol#pages
3
3
  - @pages.each do |page|
4
4
  %li
5
5
  %a{:href => "/admin/pages/#{page.id}/edit"}
6
- = page.name
7
- %a{ :href => "/admin/pages/new" } New page
6
+ = "/#{page.name}"
7
+
8
+ %a.button_link{ :href => "/admin/pages/new" } New page
@@ -6,4 +6,4 @@
6
6
  %small
7
7
  %a{:href => "/admin/template_files/#{file.id}/edit"} edit
8
8
  %a{ :onclick => "if(confirm('You are about to delete a template file. Click OK to delete or Cancel to return to the page.')) { var f = document.createElement('form'); f.style.display = 'none'; this.parentNode.appendChild(f); { f.method = 'POST'; f.action = this.href;var m = document.createElement('input'); m.setAttribute('type', 'hidden'); m.setAttribute('name', '_method'); m.setAttribute('value', 'delete'); f.appendChild(m);f.submit(); } } return false;", :href => "/admin/template_files/#{file.id}" } delete
9
- %a{ :href => "/admin/template_files/new" } Upload a file
9
+ %a.button_link{ :href => "/admin/template_files/new" } Upload a file
data/views/templates.haml CHANGED
@@ -4,7 +4,7 @@
4
4
  %li
5
5
  %a{:href => "/admin/templates/#{template.id}/edit"}
6
6
  = template.name
7
- %a{ :href => "/admin/templates/new" } New template
7
+ %a.button_link{ :href => "/admin/templates/new" } New template
8
8
 
9
9
  %h1 Layouts
10
10
  %ol
@@ -12,4 +12,4 @@
12
12
  %li
13
13
  %a{:href => "/admin/templates/#{template.id}/edit"}
14
14
  = template.name
15
- %a{ :href => "/admin/layouts/new" } New layout
15
+ %a.button_link{ :href => "/admin/layouts/new" } New layout
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: manuscript
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.6
4
+ version: 0.1.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - hotink
@@ -9,7 +9,7 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2010-01-14 00:00:00 -05:00
12
+ date: 2010-01-16 00:00:00 -05:00
13
13
  default_executable:
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
@@ -125,6 +125,7 @@ files:
125
125
  - lib/manuscript/template_file.rb
126
126
  - lib/manuscript/template_file_manager.rb
127
127
  - lib/manuscript/template_manager.rb
128
+ - lib/manuscript/user.rb
128
129
  - manuscript.gemspec
129
130
  - public/css/base.css
130
131
  - spec/manuscript/base_spec.rb
@@ -135,6 +136,7 @@ files:
135
136
  - spec/manuscript/template_file_manager_spec.rb
136
137
  - spec/manuscript/template_file_spec.rb
137
138
  - spec/manuscript/template_manager_spec.rb
139
+ - spec/manuscript/user_spec.rb
138
140
  - spec/spec.opts
139
141
  - spec/spec_helper.rb
140
142
  - views/edit_template_file.haml
@@ -183,4 +185,5 @@ test_files:
183
185
  - spec/manuscript/template_file_manager_spec.rb
184
186
  - spec/manuscript/template_file_spec.rb
185
187
  - spec/manuscript/template_manager_spec.rb
188
+ - spec/manuscript/user_spec.rb
186
189
  - spec/spec_helper.rb