chiver 0.0.0 → 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (5) hide show
  1. data/Gemfile +9 -5
  2. data/VERSION +1 -1
  3. data/lib/chiver/app.rb +60 -0
  4. metadata +2 -2
  5. data/lib/chiver.rb +0 -0
data/Gemfile CHANGED
@@ -1,13 +1,17 @@
1
1
  source "http://rubygems.org"
2
- # Add dependencies required to use your gem here.
3
- # Example:
4
- # gem "activesupport", ">= 2.3.5"
5
2
 
6
- # Add dependencies to develop your gem here.
7
- # Include everything needed to run rake, tests, features, etc.
3
+ gem "sinatra", :require => "sinatra/base"
4
+ gem "sinatra_more", :require => "sinatra_more/markup_plugin"
5
+ gem "i18n"
6
+ gem "haml"
7
+ gem "sass"
8
+ gem "redcarpet"
9
+ gem "nokogiri"
10
+
8
11
  group :development do
9
12
  gem "shoulda", ">= 0"
10
13
  gem "bundler", "~> 1.0.0"
11
14
  gem "jeweler", "~> 1.6.2"
12
15
  gem "rcov", ">= 0"
16
+ gem "awesome_print"
13
17
  end
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.0.0
1
+ 0.0.1
@@ -0,0 +1,60 @@
1
+ require "date"
2
+ require "rubygems"
3
+ require "bundler/setup"
4
+ Bundler.require
5
+
6
+ module Chiver
7
+ class App < Sinatra::Base
8
+ register SinatraMore::MarkupPlugin
9
+ set :root, Dir.pwd
10
+ set :pages, File.join(root, "pages")
11
+ set :haml, :format => :html5
12
+ set :sass, :views => "#{root}/public/stylesheets"
13
+ set :title, "Chiver"
14
+ set :ext, ".md"
15
+
16
+ helpers do
17
+ def convert(name)
18
+ filename = File::basename(name) + settings.ext
19
+ text = File.read(File.join(settings.pages, filename))
20
+ text = Markdown.new(text, :fenced_code, :autolink, :generate_toc, :lax_htmlblock, :tables, :hard_wrap).to_html
21
+ html = Nokogiri::HTML(text)
22
+ before = html.css("code").to_s
23
+ after = before.gsub("\n", "<br>")
24
+ html.to_s.gsub(before, after)
25
+ end
26
+ end
27
+
28
+ before do
29
+ @title = settings.title
30
+ end
31
+
32
+ error { haml :error } unless development?
33
+
34
+ get "/stylesheets/:name.css" do
35
+ content_type "text/css", :charset => "utf-8"
36
+ sass params[:name].to_sym
37
+ end
38
+
39
+ get "/javascripts/:js.css" do
40
+ content_type "application/x-javascript", :charset => "utf-8"
41
+ "#{settings.root}/public/js/#{params[:name]}"
42
+ end
43
+
44
+ get "/" do
45
+ @entries = Dir::glob("#{settings.pages}/*#{settings.ext}")\
46
+ .sort{|a, b| b<=>a }\
47
+ .map{|file|
48
+ y, m, d, name = File::basename(file).split("-")
49
+ next unless [y, m, d, name].all?
50
+ { :date => Date.new(y.to_i, m.to_i, d.to_i), :name => name.split(".").first }
51
+ }
52
+ haml :index
53
+ end
54
+
55
+ get /^.([^\.]+).*$/ do
56
+ @text = convert(params[:captures][0])
57
+ haml :page
58
+ end
59
+ end
60
+ end
metadata CHANGED
@@ -2,7 +2,7 @@
2
2
  name: chiver
3
3
  version: !ruby/object:Gem::Version
4
4
  prerelease:
5
- version: 0.0.0
5
+ version: 0.0.1
6
6
  platform: ruby
7
7
  authors:
8
8
  - Ryo NAKAMURA
@@ -73,7 +73,7 @@ files:
73
73
  - README.rdoc
74
74
  - Rakefile
75
75
  - VERSION
76
- - lib/chiver.rb
76
+ - lib/chiver/app.rb
77
77
  - test/helper.rb
78
78
  - test/test_chiver.rb
79
79
  has_rdoc: true
File without changes