vanilla 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/README +52 -0
- data/Rakefile +118 -0
- data/bin/vanilla +9 -0
- data/config.example.yml +5 -0
- data/config.ru +9 -0
- data/lib/defensio.rb +59 -0
- data/lib/tasks/vanilla.rake +178 -0
- data/lib/vanilla/app.rb +87 -0
- data/lib/vanilla/console.rb +3 -0
- data/lib/vanilla/dynasnip.rb +110 -0
- data/lib/vanilla/dynasnips/comments.rb +108 -0
- data/lib/vanilla/dynasnips/current_snip.rb +32 -0
- data/lib/vanilla/dynasnips/debug.rb +13 -0
- data/lib/vanilla/dynasnips/edit.rb +63 -0
- data/lib/vanilla/dynasnips/edit_link.rb +24 -0
- data/lib/vanilla/dynasnips/index.rb +11 -0
- data/lib/vanilla/dynasnips/kind.rb +70 -0
- data/lib/vanilla/dynasnips/link_to.rb +14 -0
- data/lib/vanilla/dynasnips/link_to_current_snip.rb +16 -0
- data/lib/vanilla/dynasnips/login.rb +56 -0
- data/lib/vanilla/dynasnips/new.rb +14 -0
- data/lib/vanilla/dynasnips/notes.rb +42 -0
- data/lib/vanilla/dynasnips/pre.rb +19 -0
- data/lib/vanilla/dynasnips/rand.rb +27 -0
- data/lib/vanilla/dynasnips/raw.rb +19 -0
- data/lib/vanilla/dynasnips/url_to.rb +7 -0
- data/lib/vanilla/renderers/base.rb +78 -0
- data/lib/vanilla/renderers/bold.rb +9 -0
- data/lib/vanilla/renderers/erb.rb +16 -0
- data/lib/vanilla/renderers/markdown.rb +13 -0
- data/lib/vanilla/renderers/raw.rb +9 -0
- data/lib/vanilla/renderers/ruby.rb +35 -0
- data/lib/vanilla/renderers/textile.rb +13 -0
- data/lib/vanilla/request.rb +68 -0
- data/lib/vanilla/routes.rb +29 -0
- data/lib/vanilla/snip_handling.rb +33 -0
- data/lib/vanilla/snips/start.rb +18 -0
- data/lib/vanilla/snips/system.rb +76 -0
- data/lib/vanilla/snips/tutorial.rb +158 -0
- data/lib/vanilla/test_snips.rb +85 -0
- data/lib/vanilla.rb +20 -0
- data/spec/dynasnip_spec.rb +31 -0
- data/spec/renderers/base_renderer_spec.rb +40 -0
- data/spec/renderers/erb_renderer_spec.rb +27 -0
- data/spec/renderers/markdown_renderer_spec.rb +29 -0
- data/spec/renderers/raw_renderer_spec.rb +21 -0
- data/spec/renderers/ruby_renderer_spec.rb +42 -0
- data/spec/renderers/vanilla_app_detecting_renderer_spec.rb +35 -0
- data/spec/soup_test.db +0 -0
- data/spec/spec_helper.rb +64 -0
- data/spec/vanilla_app_spec.rb +38 -0
- data/spec/vanilla_presenting_spec.rb +84 -0
- data/spec/vanilla_request_spec.rb +73 -0
- data/spec/vanilla_snip_finding_spec.rb +28 -0
- metadata +122 -0
@@ -0,0 +1,21 @@
|
|
1
|
+
require File.join(File.dirname(__FILE__), "..", "spec_helper")
|
2
|
+
|
3
|
+
describe Vanilla::Renderers::Raw, "when rendering" do
|
4
|
+
before(:each) do
|
5
|
+
@snip = create_snip(:name => "test", :content => "raw content", :part => "raw part")
|
6
|
+
set_main_template "<tag>{current_snip}</tag>"
|
7
|
+
end
|
8
|
+
|
9
|
+
it "should render the contents part of the snip as it is" do
|
10
|
+
response_body_for("/test.raw").should == "raw content"
|
11
|
+
end
|
12
|
+
|
13
|
+
it "should render the specified part of the snip" do
|
14
|
+
response_body_for("/test/part.raw").should == "raw part"
|
15
|
+
end
|
16
|
+
|
17
|
+
it "should not perform any snip inclusion" do
|
18
|
+
create_snip(:name => "snip_with_inclusions", :content => "loading {another_snip}")
|
19
|
+
response_body_for("/snip_with_inclusions.raw").should == "loading {another_snip}"
|
20
|
+
end
|
21
|
+
end
|
@@ -0,0 +1,42 @@
|
|
1
|
+
require File.join(File.dirname(__FILE__), "..", "spec_helper")
|
2
|
+
|
3
|
+
describe Vanilla::Renderers::Ruby do
|
4
|
+
describe "when rendering normally" do
|
5
|
+
class TestDyna < Dynasnip
|
6
|
+
def handle(*args)
|
7
|
+
'handle called'
|
8
|
+
end
|
9
|
+
end
|
10
|
+
|
11
|
+
before(:each) do
|
12
|
+
@test_dyna = TestDyna.persist!
|
13
|
+
end
|
14
|
+
|
15
|
+
it "should render the result of the handle method" do
|
16
|
+
Vanilla::Test.response_body_for("/test_dyna").should == 'handle called'
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
20
|
+
describe "when responding restfully" do
|
21
|
+
class RestishDyna < Dynasnip
|
22
|
+
def get(*args)
|
23
|
+
'get called'
|
24
|
+
end
|
25
|
+
def post(*args)
|
26
|
+
'post called'
|
27
|
+
end
|
28
|
+
end
|
29
|
+
|
30
|
+
before(:each) do
|
31
|
+
@dyna = RestishDyna.persist!
|
32
|
+
end
|
33
|
+
|
34
|
+
it "should render the result of the get method on GET requests" do
|
35
|
+
Vanilla::Test.response_body_for("/restish_dyna").should == 'get called'
|
36
|
+
end
|
37
|
+
|
38
|
+
it "should render the result of the post method on POST requests" do
|
39
|
+
Vanilla::Test.response_body_for("/restish_dyna?_method=post") == 'post called'
|
40
|
+
end
|
41
|
+
end
|
42
|
+
end
|
@@ -0,0 +1,35 @@
|
|
1
|
+
require File.join(File.dirname(__FILE__), "..", "spec_helper")
|
2
|
+
|
3
|
+
describe "when detecting the snip renderer" do
|
4
|
+
before(:each) do
|
5
|
+
@app = Vanilla::App.new
|
6
|
+
end
|
7
|
+
|
8
|
+
it "should return the constant refered to in the render_as property of the snip" do
|
9
|
+
snip = create_snip(:render_as => "Raw")
|
10
|
+
@app.renderer_for(snip).should == Vanilla::Renderers::Raw
|
11
|
+
end
|
12
|
+
|
13
|
+
it "should return Vanilla::Renderers::Base if no render_as property exists" do
|
14
|
+
snip = create_snip(:name => "blah")
|
15
|
+
@app.renderer_for(snip).should == Vanilla::Renderers::Base
|
16
|
+
end
|
17
|
+
|
18
|
+
it "should return Vanilla::Renderers::Base if the render_as property is blank" do
|
19
|
+
snip = create_snip(:name => "blah", :render_as => '')
|
20
|
+
@app.renderer_for(snip).should == Vanilla::Renderers::Base
|
21
|
+
end
|
22
|
+
|
23
|
+
it "should raise an error if the specified renderer doesn't exist" do
|
24
|
+
snip = create_snip(:render_as => "NonExistentClass")
|
25
|
+
lambda { @app.renderer_for(snip) }.should raise_error
|
26
|
+
end
|
27
|
+
|
28
|
+
it "should load constants outside of the Vanilla::Renderers module" do
|
29
|
+
class ::MyRenderer
|
30
|
+
end
|
31
|
+
|
32
|
+
snip = create_snip(:render_as => "MyRenderer")
|
33
|
+
@app.renderer_for(snip).should == MyRenderer
|
34
|
+
end
|
35
|
+
end
|
data/spec/soup_test.db
ADDED
Binary file
|
data/spec/spec_helper.rb
ADDED
@@ -0,0 +1,64 @@
|
|
1
|
+
$LOAD_PATH.unshift File.join(File.dirname(__FILE__), *%w[.. lib])
|
2
|
+
require "vanilla"
|
3
|
+
require "spec"
|
4
|
+
require "fileutils"
|
5
|
+
require "rack/mock"
|
6
|
+
|
7
|
+
module Vanilla
|
8
|
+
module Test
|
9
|
+
def setup_clean_environment
|
10
|
+
test_soup_config = { :database => File.join(File.dirname(__FILE__), "soup_test.db")}
|
11
|
+
FileUtils.rm(test_soup_config[:database]) if File.exist?(test_soup_config[:database])
|
12
|
+
Soup.base = test_soup_config
|
13
|
+
|
14
|
+
# TODO: this is hard-coded for the AR implementation
|
15
|
+
require "active_record"
|
16
|
+
ActiveRecord::Migration.verbose = false
|
17
|
+
|
18
|
+
Soup.prepare
|
19
|
+
require "vanilla/dynasnips/current_snip"
|
20
|
+
CurrentSnip.persist!
|
21
|
+
create_snip :name => "system", :main_template => "{current_snip}"
|
22
|
+
end
|
23
|
+
|
24
|
+
def response_for(url)
|
25
|
+
Vanilla::App.new.call(mock_env_for_url(url))
|
26
|
+
end
|
27
|
+
|
28
|
+
def response_body_for(url)
|
29
|
+
response_for(url)[2].body[0]
|
30
|
+
end
|
31
|
+
|
32
|
+
def response_code_for(url)
|
33
|
+
response_for(url)[0]
|
34
|
+
end
|
35
|
+
|
36
|
+
def set_main_template(template_content)
|
37
|
+
system = Vanilla.snip("system") || Snip.new(:name => "system")
|
38
|
+
system.main_template = template_content
|
39
|
+
system.save
|
40
|
+
end
|
41
|
+
|
42
|
+
def create_snip(params)
|
43
|
+
s = Snip.new(params)
|
44
|
+
s.save
|
45
|
+
s
|
46
|
+
end
|
47
|
+
|
48
|
+
def mock_env_for_url(url)
|
49
|
+
Rack::MockRequest.env_for(url)
|
50
|
+
end
|
51
|
+
|
52
|
+
def mock_request(url)
|
53
|
+
Rack::Request.new(mock_env_for_url(url))
|
54
|
+
end
|
55
|
+
|
56
|
+
extend self
|
57
|
+
end
|
58
|
+
end
|
59
|
+
|
60
|
+
Spec::Runner.configure do |config|
|
61
|
+
config.include(Vanilla::Test)
|
62
|
+
config.before { Vanilla::Test.setup_clean_environment }
|
63
|
+
end
|
64
|
+
|
@@ -0,0 +1,38 @@
|
|
1
|
+
require File.join(File.dirname(__FILE__), 'spec_helper')
|
2
|
+
|
3
|
+
describe Vanilla::App do
|
4
|
+
describe "when behaving as a Rack application" do
|
5
|
+
it "should return an array of status code, headers and response" do
|
6
|
+
create_snip(:name => "test", :content => "content")
|
7
|
+
result = Vanilla::App.new.call(mock_env_for_url("/test.text"))
|
8
|
+
result.should be_a_kind_of(Array)
|
9
|
+
result[0].should == 200
|
10
|
+
result[1].should be_a_kind_of(Hash)
|
11
|
+
result[2].each{ |output| output.should == "content" }
|
12
|
+
end
|
13
|
+
end
|
14
|
+
|
15
|
+
describe "when being configured" do
|
16
|
+
it "should load a config file from the current working directory by default" do
|
17
|
+
File.should_receive(:open).with("config.yml").and_return(StringIO.new({}.to_yaml))
|
18
|
+
Vanilla::App.new
|
19
|
+
end
|
20
|
+
|
21
|
+
it "should load a config file given" do
|
22
|
+
File.open("/tmp/vanilla_config.yml", "w") { |f| f.write({:hello => true}.to_yaml) }
|
23
|
+
app = Vanilla::App.new("/tmp/vanilla_config.yml")
|
24
|
+
app.config[:hello].should be_true
|
25
|
+
end
|
26
|
+
|
27
|
+
it "should allow saving of configuration to the same file it was loaded from" do
|
28
|
+
config_file = "/tmp/vanilla_config.yml"
|
29
|
+
File.open(config_file, "w") { |f| f.write({:hello => true}.to_yaml) }
|
30
|
+
app = Vanilla::App.new(config_file)
|
31
|
+
app.config[:saved] = true
|
32
|
+
app.config.save!
|
33
|
+
|
34
|
+
config = YAML.load(File.open(config_file))
|
35
|
+
config[:saved].should be_true
|
36
|
+
end
|
37
|
+
end
|
38
|
+
end
|
@@ -0,0 +1,84 @@
|
|
1
|
+
require File.join(File.dirname(__FILE__), "spec_helper")
|
2
|
+
|
3
|
+
describe Vanilla::App do
|
4
|
+
before(:each) do
|
5
|
+
LinkTo.persist!
|
6
|
+
set_main_template "<tag>{current_snip}</tag>"
|
7
|
+
create_snip :name => "test", :content => "blah {other_snip}", :part => 'part content'
|
8
|
+
create_snip :name => "other_snip", :content => "blah!"
|
9
|
+
end
|
10
|
+
|
11
|
+
describe "when presenting as HTML" do
|
12
|
+
it "should render the snip's content in the system template if no format or part is given" do
|
13
|
+
response_body_for("/test").should == "<tag>blah blah!</tag>"
|
14
|
+
end
|
15
|
+
|
16
|
+
it "should render the snip's content in the system template if the HTML format is given" do
|
17
|
+
response_body_for("/test.html").should == "<tag>blah blah!</tag>"
|
18
|
+
end
|
19
|
+
|
20
|
+
it "should render the requested part within the main template when a part is given" do
|
21
|
+
response_body_for("/test/part").should == "<tag>part content</tag>"
|
22
|
+
end
|
23
|
+
|
24
|
+
it "should have a response code of 200" do
|
25
|
+
response_code_for("/test").should == 200
|
26
|
+
response_code_for("/test.html").should == 200
|
27
|
+
response_code_for("/test/part").should == 200
|
28
|
+
response_code_for("/test/part.html").should == 200
|
29
|
+
end
|
30
|
+
end
|
31
|
+
|
32
|
+
describe "when presenting content as text" do
|
33
|
+
it "should render the snip's content outside of the main template with its default renderer" do
|
34
|
+
response_body_for("/test.text").should == "blah blah!"
|
35
|
+
end
|
36
|
+
|
37
|
+
it "should render the snip part outside the main template when a format is given" do
|
38
|
+
response_body_for("/test/part.text").should == "part content"
|
39
|
+
end
|
40
|
+
|
41
|
+
it "should have a response code of 200" do
|
42
|
+
response_code_for("/test.text").should == 200
|
43
|
+
response_code_for("/test/part.text").should == 200
|
44
|
+
end
|
45
|
+
end
|
46
|
+
|
47
|
+
|
48
|
+
describe "when presenting raw content" do
|
49
|
+
it "should render the snips contents exactly as they are" do
|
50
|
+
response_body_for("/test.raw").should == "blah {other_snip}"
|
51
|
+
end
|
52
|
+
|
53
|
+
it "should render the snip content exactly even if a render_as attribute exists" do
|
54
|
+
response_body_for("/current_snip.raw").should == "CurrentSnip"
|
55
|
+
end
|
56
|
+
|
57
|
+
it "should render a snips part if requested" do
|
58
|
+
response_body_for("/test/part.raw").should == "part content"
|
59
|
+
end
|
60
|
+
|
61
|
+
it "should have a response code of 200" do
|
62
|
+
response_code_for("/test.raw").should == 200
|
63
|
+
response_code_for("/test/part.raw").should == 200
|
64
|
+
end
|
65
|
+
end
|
66
|
+
|
67
|
+
|
68
|
+
describe "when a missing snip is requested" do
|
69
|
+
it "should render missing snip content in the main template" do
|
70
|
+
response_body_for("/missing_snip").should == "<tag>Couldn't find snip #{LinkTo.new(nil).handle("missing_snip")}</tag>"
|
71
|
+
end
|
72
|
+
|
73
|
+
it "should have a 404 response code" do
|
74
|
+
response_code_for("/missing_snip").should == 404
|
75
|
+
end
|
76
|
+
end
|
77
|
+
|
78
|
+
|
79
|
+
describe "when requesting an unknown format" do
|
80
|
+
it "should return a 500 status code" do
|
81
|
+
response_code_for("/test.monkey").should == 500
|
82
|
+
end
|
83
|
+
end
|
84
|
+
end
|
@@ -0,0 +1,73 @@
|
|
1
|
+
require File.join(File.dirname(__FILE__), "spec_helper")
|
2
|
+
|
3
|
+
describe Vanilla::Request, "when requesting urls" do
|
4
|
+
before(:each) { @request = Vanilla::Request.new(mock_env_for_url("/snip")) }
|
5
|
+
|
6
|
+
it "should use the first segement as the snip name" do
|
7
|
+
@request.snip_name.should == "snip"
|
8
|
+
end
|
9
|
+
|
10
|
+
it "should try to load the snip based on the snip name" do
|
11
|
+
Vanilla.should_receive(:snip).with('snip').and_return(:snip)
|
12
|
+
@request.snip.should == :snip
|
13
|
+
end
|
14
|
+
|
15
|
+
it "should have no part if the url contains only a single segment" do
|
16
|
+
@request.part.should == nil
|
17
|
+
end
|
18
|
+
|
19
|
+
it "should have a default format of html" do
|
20
|
+
@request.format.should == 'html'
|
21
|
+
end
|
22
|
+
|
23
|
+
it "should determine the request method" do
|
24
|
+
@request.method.should == 'get'
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
28
|
+
describe Vanilla::Request, "when requesting a snip part" do
|
29
|
+
before(:each) { @request = Vanilla::Request.new(mock_env_for_url("/snip/part")) }
|
30
|
+
|
31
|
+
it "should use the first segment as the snip, and the second segment as the part" do
|
32
|
+
@request.snip_name.should == "snip"
|
33
|
+
@request.part.should == "part"
|
34
|
+
end
|
35
|
+
|
36
|
+
it "should have a default format of html" do
|
37
|
+
@request.format.should == "html"
|
38
|
+
end
|
39
|
+
end
|
40
|
+
|
41
|
+
describe Vanilla::Request, "when requesting a snip with a format" do
|
42
|
+
before(:each) { @request = Vanilla::Request.new(mock_env_for_url("/snip.raw")) }
|
43
|
+
|
44
|
+
it "should use the extension as the format" do
|
45
|
+
@request.format.should == "raw"
|
46
|
+
end
|
47
|
+
|
48
|
+
it "should retain the filename part of the path as the snip" do
|
49
|
+
@request.snip_name.should == "snip"
|
50
|
+
end
|
51
|
+
end
|
52
|
+
|
53
|
+
describe Vanilla::Request, "when requesting a snip part with a format" do
|
54
|
+
before(:each) { @request = Vanilla::Request.new(mock_env_for_url("/snip/part.raw")) }
|
55
|
+
|
56
|
+
it "should use the extension as the format" do
|
57
|
+
@request.format.should == "raw"
|
58
|
+
end
|
59
|
+
|
60
|
+
it "should retain the first segment of the path as the snip" do
|
61
|
+
@request.snip_name.should == "snip"
|
62
|
+
end
|
63
|
+
|
64
|
+
it "should use the filename part of the second segment as the snip part" do
|
65
|
+
@request.part.should == "part"
|
66
|
+
end
|
67
|
+
end
|
68
|
+
|
69
|
+
describe Vanilla::Request, "when requested with a _method paramter" do
|
70
|
+
it "should return the method using the parameter" do
|
71
|
+
Vanilla::Request.new(mock_env_for_url("/snip?_method=put")).method.should == 'put'
|
72
|
+
end
|
73
|
+
end
|
@@ -0,0 +1,28 @@
|
|
1
|
+
require File.join(File.dirname(__FILE__), 'spec_helper')
|
2
|
+
|
3
|
+
describe Vanilla, "when loading a snip" do
|
4
|
+
it "should delegate to Soup" do
|
5
|
+
snip = :snip
|
6
|
+
Soup.should_receive(:[]).with('name').and_return(snip)
|
7
|
+
Vanilla.snip('name').should == :snip
|
8
|
+
end
|
9
|
+
|
10
|
+
it "should return nil if the snip cannot be found" do
|
11
|
+
Vanilla.snip('missing').should be_nil
|
12
|
+
end
|
13
|
+
|
14
|
+
it "should raise an exception if the snip cannot be when calling snip!" do
|
15
|
+
lambda { Vanilla.snip!('missing') }.should raise_error(Vanilla::MissingSnipException)
|
16
|
+
end
|
17
|
+
end
|
18
|
+
|
19
|
+
describe Vanilla, "when checking a snip exists" do
|
20
|
+
it "should return true if the snip exists" do
|
21
|
+
create_snip(:name => 'blah')
|
22
|
+
Vanilla.snip_exists?('blah').should be_true
|
23
|
+
end
|
24
|
+
|
25
|
+
it "should return false if the snip does not exist" do
|
26
|
+
Vanilla.snip_exists?('missing').should be_false
|
27
|
+
end
|
28
|
+
end
|
metadata
ADDED
@@ -0,0 +1,122 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: vanilla
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 1.0.0
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- James Adam
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
|
12
|
+
date: 2009-04-09 00:00:00 +01:00
|
13
|
+
default_executable:
|
14
|
+
dependencies:
|
15
|
+
- !ruby/object:Gem::Dependency
|
16
|
+
name: rspec
|
17
|
+
type: :development
|
18
|
+
version_requirement:
|
19
|
+
version_requirements: !ruby/object:Gem::Requirement
|
20
|
+
requirements:
|
21
|
+
- - ">="
|
22
|
+
- !ruby/object:Gem::Version
|
23
|
+
version: "0"
|
24
|
+
version:
|
25
|
+
description:
|
26
|
+
email: james@lazyatom.com.com
|
27
|
+
executables:
|
28
|
+
- vanilla
|
29
|
+
extensions: []
|
30
|
+
|
31
|
+
extra_rdoc_files:
|
32
|
+
- README
|
33
|
+
files:
|
34
|
+
- config.example.yml
|
35
|
+
- config.ru
|
36
|
+
- Rakefile
|
37
|
+
- README
|
38
|
+
- spec/dynasnip_spec.rb
|
39
|
+
- spec/renderers
|
40
|
+
- spec/renderers/base_renderer_spec.rb
|
41
|
+
- spec/renderers/erb_renderer_spec.rb
|
42
|
+
- spec/renderers/markdown_renderer_spec.rb
|
43
|
+
- spec/renderers/raw_renderer_spec.rb
|
44
|
+
- spec/renderers/ruby_renderer_spec.rb
|
45
|
+
- spec/renderers/vanilla_app_detecting_renderer_spec.rb
|
46
|
+
- spec/soup_test.db
|
47
|
+
- spec/spec_helper.rb
|
48
|
+
- spec/vanilla_app_spec.rb
|
49
|
+
- spec/vanilla_presenting_spec.rb
|
50
|
+
- spec/vanilla_request_spec.rb
|
51
|
+
- spec/vanilla_snip_finding_spec.rb
|
52
|
+
- lib/defensio.rb
|
53
|
+
- lib/tasks
|
54
|
+
- lib/tasks/vanilla.rake
|
55
|
+
- lib/vanilla
|
56
|
+
- lib/vanilla/app.rb
|
57
|
+
- lib/vanilla/console.rb
|
58
|
+
- lib/vanilla/dynasnip.rb
|
59
|
+
- lib/vanilla/dynasnips
|
60
|
+
- lib/vanilla/dynasnips/comments.rb
|
61
|
+
- lib/vanilla/dynasnips/current_snip.rb
|
62
|
+
- lib/vanilla/dynasnips/debug.rb
|
63
|
+
- lib/vanilla/dynasnips/edit.rb
|
64
|
+
- lib/vanilla/dynasnips/edit_link.rb
|
65
|
+
- lib/vanilla/dynasnips/index.rb
|
66
|
+
- lib/vanilla/dynasnips/kind.rb
|
67
|
+
- lib/vanilla/dynasnips/link_to.rb
|
68
|
+
- lib/vanilla/dynasnips/link_to_current_snip.rb
|
69
|
+
- lib/vanilla/dynasnips/login.rb
|
70
|
+
- lib/vanilla/dynasnips/new.rb
|
71
|
+
- lib/vanilla/dynasnips/notes.rb
|
72
|
+
- lib/vanilla/dynasnips/pre.rb
|
73
|
+
- lib/vanilla/dynasnips/rand.rb
|
74
|
+
- lib/vanilla/dynasnips/raw.rb
|
75
|
+
- lib/vanilla/dynasnips/url_to.rb
|
76
|
+
- lib/vanilla/renderers
|
77
|
+
- lib/vanilla/renderers/base.rb
|
78
|
+
- lib/vanilla/renderers/bold.rb
|
79
|
+
- lib/vanilla/renderers/erb.rb
|
80
|
+
- lib/vanilla/renderers/markdown.rb
|
81
|
+
- lib/vanilla/renderers/raw.rb
|
82
|
+
- lib/vanilla/renderers/ruby.rb
|
83
|
+
- lib/vanilla/renderers/textile.rb
|
84
|
+
- lib/vanilla/request.rb
|
85
|
+
- lib/vanilla/routes.rb
|
86
|
+
- lib/vanilla/snip_handling.rb
|
87
|
+
- lib/vanilla/snips
|
88
|
+
- lib/vanilla/snips/start.rb
|
89
|
+
- lib/vanilla/snips/system.rb
|
90
|
+
- lib/vanilla/snips/tutorial.rb
|
91
|
+
- lib/vanilla/test_snips.rb
|
92
|
+
- lib/vanilla.rb
|
93
|
+
- bin/vanilla
|
94
|
+
has_rdoc: true
|
95
|
+
homepage: http://github.com/lazyatom/vanilla-rb
|
96
|
+
post_install_message:
|
97
|
+
rdoc_options:
|
98
|
+
- --main
|
99
|
+
- README
|
100
|
+
require_paths:
|
101
|
+
- lib
|
102
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
103
|
+
requirements:
|
104
|
+
- - ">="
|
105
|
+
- !ruby/object:Gem::Version
|
106
|
+
version: "0"
|
107
|
+
version:
|
108
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
109
|
+
requirements:
|
110
|
+
- - ">="
|
111
|
+
- !ruby/object:Gem::Version
|
112
|
+
version: "0"
|
113
|
+
version:
|
114
|
+
requirements: []
|
115
|
+
|
116
|
+
rubyforge_project: vanilla
|
117
|
+
rubygems_version: 1.3.1
|
118
|
+
signing_key:
|
119
|
+
specification_version: 2
|
120
|
+
summary: A bliki-type web content thing.
|
121
|
+
test_files: []
|
122
|
+
|