Skip to content

Commit

Permalink
more mongomatic updates
Browse files Browse the repository at this point in the history
  • Loading branch information
Dusty committed May 18, 2011
1 parent 7d86fbb commit c13533f
Show file tree
Hide file tree
Showing 31 changed files with 570 additions and 518 deletions.
2 changes: 1 addition & 1 deletion app/admin.rb
@@ -1,5 +1,5 @@
module Roam
class Admin < App
class AdminApp < App

register Mustache::Sinatra

Expand Down
4 changes: 2 additions & 2 deletions app/user.rb
@@ -1,5 +1,5 @@
module Roam
class User < App
class UserApp < App

# Require mustache views
Dir["views/user/*.rb"].sort.each {|req| require req}
Expand Down Expand Up @@ -44,7 +44,7 @@ def cache
#
# The site variable is added automatically as it is required
# mustache(:page, :page => page)
# UserApp::Views::Page.new(:site => site, :page => page).render
# User::Views::Page.new(:site => site, :page => page).render
def mustache(template, args={}, layout=true)
args = args.update(:site => site, :site_tags => tags)
layout_class = UserApp::Views::Layout
Expand Down
4 changes: 2 additions & 2 deletions config.ru
Expand Up @@ -2,6 +2,6 @@ $: << File.join(File.dirname(__FILE__))
require 'init'

run Rack::URLMap.new(
'/' => Roam::User.new,
'/admin' => Roam::Admin.new
'/' => Roam::UserApp.new,
'/admin' => Roam::AdminApp.new
)
26 changes: 14 additions & 12 deletions models/post.rb
Expand Up @@ -95,28 +95,20 @@ def self.tags

matic_accessor :title, :body, :author, :slug, :published_at, :tags

def tags
self[:tags].to_a
end

def validate
%w{ title author body}.each do |attr|
errors.add(attr, 'is required') if self[attr].blank?
end
end

def before_insert_or_update
split_tags
generate_slug
parse_published
end

def tags=(list)
list = list.split(%r{,\s*}).uniq if list.is_a?(String)
self[:tags] = list
end

def published_at=(publish)
publish = Chronic.parse(publish) if publish.is_a?(String)
self[:published_at] = publish.utc if publish.is_a?(Time)
def tags
self[:tags].to_a
end

def html
Expand All @@ -133,11 +125,21 @@ def active?

protected

def split_tags
list = self[:tags].split(%r{,\s*}).uniq if self[:tags].is_a?(String)
self[:tags] = list
end

def generate_slug
return nil if title.empty?
date = published_at.is_a?(Time) ? published_at : Time.now.in_time_zone
prefix = date.strftime("%Y%m%d")
self.slug = "#{prefix}-#{title.slugize}"
end

def parse_published
publish = Chronic.parse(self[:published_at]) if self[:published_at].is_a?(String)
self[:published_at] = publish.is_a?(Time) ? publish.utc : nil
end

end
2 changes: 1 addition & 1 deletion models/site.rb
Expand Up @@ -31,7 +31,7 @@ def design

def design=(design)
self.design_id = design.id.to_s
save
update
end

protected
Expand Down
2 changes: 1 addition & 1 deletion models/user.rb
Expand Up @@ -48,7 +48,7 @@ def before_insert_or_update

def record_login
self.login_at = Time.now.utc
save
update
end

protected
Expand Down
48 changes: 25 additions & 23 deletions views/admin/design.rb
@@ -1,33 +1,35 @@
class AdminApp
module Views
class Design < Layout
module Roam
class AdminApp
module Views
class Design < Layout

def page_header
new_design ? "New Design" : design_name
end
def page_header
new_design ? "New Design" : design_name
end

def page_action
new_design ? "/admin/designs" : "/admin/designs/#{design_id}"
end
def page_action
new_design ? "/admin/designs" : "/admin/designs/#{design_id}"
end

def page_method
new_design ? "post" : "put"
end
def page_method
new_design ? "post" : "put"
end

def new_design
@design.new_record?
end
def new_design
@design.new_record?
end

def design_id
@design.id
end
def design_id
@design.id
end

def initialize
create_getters_and_errors('design', %w{ name description layout blog home page
post feed missing error style script })
end

def initialize
create_getters_and_errors('design', %w{ name description layout blog home page
post feed missing error style script })
end

end

end
end
end
62 changes: 32 additions & 30 deletions views/admin/designs.rb
@@ -1,44 +1,46 @@
class AdminApp
module Views
class Designs < Layout
module Roam
class AdminApp
module Views
class Designs < Layout

def designs
@_designs.map do |design|
{
:design_name => get_design_name(design),
:design_status => get_design_status(design),
:design_description => design.description,
:design_copy => get_design_copy(design),
:design_updated => get_short_date(design.updated_at)
}
def designs
@_designs.map do |design|
{
:design_name => get_design_name(design),
:design_status => get_design_status(design),
:design_description => design.description,
:design_copy => get_design_copy(design),
:design_updated => get_short_date(design.updated_at)
}
end
end
end

private
def get_design_name(design)
<<-EOD
private
def get_design_name(design)
<<-EOD
<a href="/admin/designs/#{design.id}">#{design.name}</a>
EOD
end
EOD
end

def get_design_status(design)
if site.design == design
"<strong>Active</strong>"
else
<<-EOD
def get_design_status(design)
if site.design == design
"<strong>Active</strong>"
else
<<-EOD
<a href="/admin/designs/#{design.id}" class="post_prompt"
rel="Make this design active?">Set Active</a>
EOD
EOD
end
end
end

def get_design_copy(design)
<<-EOD
def get_design_copy(design)
<<-EOD
<a href="/admin/designs/new?copy=#{design.id}" class="get_prompt"
rel="Copy the #{design.name} design?">Copy</a>
EOD
end
EOD
end

end
end
end
end
end
10 changes: 6 additions & 4 deletions views/admin/error.rb
@@ -1,6 +1,8 @@
class AdminApp
module Views
class Error < Layout
module Roam
class AdminApp
module Views
class Error < Layout
end
end
end
end
end
8 changes: 5 additions & 3 deletions views/admin/home.rb
@@ -1,6 +1,8 @@
class AdminApp
module Views
class Home < Layout
module Roam
class AdminApp
module Views
class Home < Layout
end
end
end
end

0 comments on commit c13533f

Please sign in to comment.