Socket
Book a DemoInstallSign in
Socket

sinatra-mapping

Package Overview
Dependencies
Maintainers
1
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

sinatra-mapping

1.2.0
bundlerRubygems
Version published
Maintainers
1
Created
Source

= Sinatra::Mapping

Map easily URLs in your Web applications.

  • {Homepage}[http://sinatra-mapping.rubyforge.org/]
  • {Repository}[http://github.com/hallison/sinatra-mapping]
  • {Project}[http://rubyforge.org/projects/sinatra-mapping]
  • {Issues}[http://github.com/hallison/sinatra-mapping/issues]

The extension Sinatra::Mapping is a minimal module that is useful for create map names for {Ruby}[http://www.ruby-lang.org] {Sinatra}[http://www.sinatrarb.com] web applications.

== Getting start

Install stable version gem from {RubyForge.org}[http://www.rubyforge.org/]:

gem install sinatra-mapping

Or, install development version gem from {GitHub.com}[http://github.com/]:

gem install hallison-sinatra-mapping --source http://gems.github.com

== How to use

Sinatra implements REST routes:

get '/' do .. show something .. end

post '/' do .. create something .. end

put '/' do .. update something .. end

delete '/' do .. annihilate something .. end

For improve this routes use extension by registered method in the main source of application. To better understand, copy and paste the following example in {Ruby}[http://www.ruby-lang.org] source file +weblog.rb+:

#!/usr/bin/env ruby require 'rubygems' require 'sinatra' require 'sinatra/mapping' # only this line for use mapping!

map :root, "blog" # /blog/ map :entries, "posts" # /blog/posts map :tags, "labels" # /blog/labels

mapping :entry => "posts/:entry_id", # /blog/posts/id-for-post :entry_comments => "posts/:entry_id/comments", # /blog/posts/id-for-post/comments :tagged_entries => "labels/:tag_id/entries" # /blog/labels/id-for-tag/entries

/blog/

get root_path do <<-end_content

Welcome to Foo Web Application

  • #{link_to title_path(:entries), :entries, :title => title_path(:entries)}
  • #{link_to title_path(:tags), :tags, :title => title_path(:tags)}
end_content end

/blog/entries

get entries_path do <<-end_content

Welcome to Foo Web Application

#{title_path(:entries)}

  • #{link_to "Testing new entry ...", :entries, "testing-new-entry"}
  • #{link_to "Testing old entry ...", :entries, "testing-old-entry"}

#{link_to "Back", :root}

end_content end

/blog/labels/tag-id-for-show-content

get tags_path do <<-end_content

Welcome to Foo Web Application

#{title_path(:tags)}

  • #{link_to "Ruby", :tags, "ruby", "entries"}
  • #{link_to "Sinatra", :tags, "sinatra", "entries"}
  • #{link_to "Mapping", :tags, "mapping", "entries"}

#{link_to "Back", :root}

end_content end

/blog/entries/entry-id-for-show-content

get entry_path do |entry_id| title = entry_id.gsub('-',' ').capitalize <<-end_content

Welcome to Foo Web Application

#{title}

It works!

#{link_to "Back", :root} | #{link_to "Comments", :entries, entry_id, 'comments'}

end_content end

/blog/entries/entry-id-for-show-content/comments

get entry_comments_path do |entry_id| title = entry_id.gsub('-',' ').capitalize <<-end_content

Welcome to Foo Web Application

#{title}

It works and show comments for "#{title}".

#{link_to "Back", :root}

end_content end

get tagged_entries_path do |tag_id| <<-end_content

Welcome to Foo Web Application

#{tag_id.capitalize}

It works and show all entries tagged with "#{tag_id}".

#{link_to "Back", :root}

end_content end

Run:

$ ruby weblog.rb -p 3000

Open Web browser http://localhost:3000/blog/ and look ... it works!

== Copyright

:include:LICENSE

FAQs

Package last updated on 23 Sep 2009

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

About

Packages

Stay in touch

Get open source security insights delivered straight into your inbox.

  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc

U.S. Patent No. 12,346,443 & 12,314,394. Other pending.