Sha256: 6169996f5f8d65ff06c48339d4828422434c10987cecf222d37355233935cc67

Contents?: true

Size: 1.23 KB

Versions: 14

Compression:

Stored size: 1.23 KB

Contents

require 'orange-more/administration/cartons/site_carton'
require 'dm-is-awesome_set'

class OrangeRoute < Orange::SiteCarton
  id
  admin do
    text :slug, :display_name => "Search Engine Friendly Page URL", :length => 255
    text :link_text, :length => 255
    text :reroute_to, :length => 255
    boolean :show_in_nav, :default => false, :display_name => 'Show in Navigation?'
  end
  orange do
    string :resource
    string :resource_id
    string :resource_action
    boolean :accept_args, :default => true
  end
  include DataMapper::Transaction::Resource # Make sure Transactions are included (for awesome_set)
  is :awesome_set, :scope => [:orange_site_id]

  def full_path
    self_and_ancestors.inject('') do |path, part| 
      if part.parent # Check if this is a child
        path = path + part.slug + '/' 
      else  # The root slug is just the initial '/'
        path = path + '/' 
      end
    end
  end

  def self.home_for_site(site_id)
    root(:orange_site_id => site_id) 
  end


  def self.create_home_for_site(site_id, opts = {})
    opts = opts.with_defaults({:orange_site_id => site_id, :slug => '_index_', :accept_args => false, :link_text => 'Home'})
    home = self.new(opts)
    home.move(:root)
    home.save
    home
  end
end

Version data entries

14 entries across 14 versions & 1 rubygems

Version Path
orange-0.5.5 lib/orange-more/sitemap/cartons/route.rb
orange-0.5.4 lib/orange-more/sitemap/cartons/route.rb
orange-0.5.3 lib/orange-more/sitemap/cartons/route.rb
orange-0.5.2 lib/orange-more/sitemap/cartons/route.rb
orange-0.5.1 lib/orange-more/sitemap/cartons/route.rb
orange-0.4.0 lib/orange-more/sitemap/cartons/route.rb
orange-0.3.9 lib/orange-more/sitemap/cartons/route.rb
orange-0.3.8 lib/orange-more/sitemap/cartons/route.rb
orange-0.3.7 lib/orange-more/sitemap/cartons/route.rb
orange-0.3.6 lib/orange-more/sitemap/cartons/route.rb
orange-0.3.5 lib/orange-more/sitemap/cartons/route.rb
orange-0.3.4 lib/orange-more/sitemap/cartons/route.rb
orange-0.3.3 lib/orange-more/sitemap/cartons/route.rb
orange-0.3.2 lib/orange-more/sitemap/cartons/route.rb