smeagol 0.5.9 → 0.6.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (59) hide show
  1. data/.ruby +80 -0
  2. data/.yardopts +9 -0
  3. data/HISTORY.md +147 -0
  4. data/LICENSE.txt +30 -0
  5. data/README.md +132 -26
  6. data/bin/smeagol +9 -39
  7. data/bin/smeagol-init +3 -0
  8. data/bin/smeagol-preview +4 -0
  9. data/bin/smeagol-serve +4 -0
  10. data/bin/smeagol-update +4 -0
  11. data/bin/smeagold +1 -4
  12. data/lib/smeagol.rb +77 -6
  13. data/lib/smeagol/app.rb +121 -75
  14. data/lib/smeagol/cache.rb +43 -24
  15. data/lib/smeagol/cli.rb +166 -0
  16. data/lib/smeagol/config.rb +154 -0
  17. data/lib/smeagol/console.rb +369 -0
  18. data/lib/smeagol/controller.rb +275 -0
  19. data/lib/smeagol/core_ext.rb +12 -0
  20. data/lib/smeagol/gollum/blob_entry.rb +17 -0
  21. data/lib/smeagol/gollum/file.rb +44 -0
  22. data/lib/smeagol/gollum/page.rb +47 -0
  23. data/lib/smeagol/gollum/wiki.rb +31 -0
  24. data/lib/smeagol/helpers/rss.rb +96 -0
  25. data/lib/smeagol/helpers/toc.rb +69 -0
  26. data/lib/smeagol/public/assets/smeagol/gollum.css +716 -0
  27. data/lib/smeagol/public/{smeagol → assets/smeagol}/html5.js +0 -0
  28. data/lib/smeagol/public/{smeagol → assets/smeagol}/pygment.css +0 -0
  29. data/lib/smeagol/public/assets/smeagol/template.css +631 -0
  30. data/lib/smeagol/repository.rb +85 -0
  31. data/lib/smeagol/settings.rb +302 -0
  32. data/lib/smeagol/templates/layouts/page.mustache +19 -0
  33. data/lib/smeagol/templates/layouts/versions.mustache +16 -0
  34. data/lib/smeagol/templates/partials/footer.mustache +17 -0
  35. data/lib/smeagol/templates/partials/header.mustache +47 -0
  36. data/lib/smeagol/templates/settings.yml +64 -0
  37. data/lib/smeagol/version.rb +1 -1
  38. data/lib/smeagol/views/base.rb +188 -27
  39. data/lib/smeagol/views/form.rb +56 -0
  40. data/lib/smeagol/views/page.rb +126 -25
  41. data/lib/smeagol/views/post.rb +51 -0
  42. data/lib/smeagol/views/versions.rb +20 -6
  43. data/lib/smeagol/wiki.rb +25 -45
  44. data/test/helper.rb +72 -8
  45. data/test/test_app.rb +57 -0
  46. data/test/test_cache.rb +10 -11
  47. data/test/test_init.rb +27 -0
  48. data/test/test_update.rb +20 -0
  49. data/test/test_wiki.rb +13 -10
  50. metadata +142 -216
  51. data/bin/smeagol-static +0 -115
  52. data/lib/file.rb +0 -10
  53. data/lib/smeagol/hash.rb +0 -13
  54. data/lib/smeagol/option_parser.rb +0 -138
  55. data/lib/smeagol/public/smeagol/main.css +0 -234
  56. data/lib/smeagol/templates/page.mustache +0 -58
  57. data/lib/smeagol/templates/versions.mustache +0 -50
  58. data/test/test_file.rb +0 -12
  59. data/test/test_hash.rb +0 -18
@@ -0,0 +1,51 @@
1
+ module Smeagol
2
+
3
+ module Views
4
+
5
+ class Post < Page
6
+
7
+ # The Gollum::Page that this view represents.
8
+ # This is the same as `#page` and `#file`.
9
+ alias post page
10
+
11
+ # Public: static href, used when generating static site.
12
+ def href
13
+ dir = ::File.dirname(page.path)
14
+ name = slug(page.filename_stripped)
15
+ ext = ::File.extname(page.path)
16
+
17
+ if dir != '.'
18
+ ::File.join(dir, name, 'index.html')
19
+ else
20
+ if name == settings.index #|| 'Home'
21
+ 'index.html'
22
+ else
23
+ ::File.join(name, 'index.html')
24
+ end
25
+ end
26
+ end
27
+
28
+ # Internal: Apply slug rules to name.
29
+ #
30
+ # TODO: Support configurable slugs.
31
+ #
32
+ # Returns [String] Sluggified name.
33
+ def slug(name)
34
+ if /^\d\d+\-/ =~ name
35
+ dirs = []
36
+ parts = name.split('-')
37
+ while /^\d+$/ =~ parts.first
38
+ dirs << parts.shift
39
+ end
40
+ dirs << parts.join('-')
41
+ dirs.join('/')
42
+ else
43
+ name
44
+ end
45
+ end
46
+
47
+ end
48
+
49
+ end
50
+
51
+ end
@@ -1,16 +1,24 @@
1
1
  module Smeagol
2
2
  module Views
3
3
  class Versions < Base
4
- # Public: The title of the wiki. This is set in the settings file.
5
- def wiki_title
6
- wiki.settings.title
4
+ # Initializes a new mustache view template data object.
5
+ #
6
+ # master - Master controller, which creates all the views.
7
+ #
8
+ # Returns a new page object.
9
+ def initialize(master)
10
+ @master = master
11
+ @wiki = master.wiki
12
+
13
+ setup_template_path
7
14
  end
8
-
15
+
9
16
  # Public: The HTML formatted content of the page.
10
17
  def content
11
18
  html = "<a href=\"/\">Current</a><br/>"
12
19
  wiki.repo.tags.each do |tag|
13
- html << "<a href=\"/#{tag.name}\">#{tag.name}</a><br/>"
20
+ href = tag.name.start_with?('v') ? "/#{tag.name}" : "/v#{tag.name}"
21
+ html << "<a href=\"#{href}\">#{tag.name}</a><br/>"
14
22
  end
15
23
  html
16
24
  end
@@ -18,8 +26,14 @@ module Smeagol
18
26
  # Public: The URL of the project source code. This is set in the settings
19
27
  # file.
20
28
  def source_url
21
- wiki.settings.source_url
29
+ settings.source_url
22
30
  end
31
+
32
+ # TODO: Allow customization ?
33
+ def layout
34
+ IO.read(LIBDIR + "/templates/layouts/versions.mustache")
35
+ end
36
+
23
37
  end
24
38
  end
25
39
  end
@@ -1,55 +1,35 @@
1
- require 'gollum'
2
- require 'ostruct'
3
- require 'yaml'
4
-
5
1
  module Smeagol
2
+
3
+ # Subclass of Gollum::Wiki.
4
+ #
5
+ # TODO: Techincailly this is probably not needed. Presently it only adds
6
+ # one methods.
7
+ #
6
8
  class Wiki < Gollum::Wiki
7
- # Public: Updates the wiki repository.
8
- #
9
- # git - The path to the git binary.
10
- #
11
- # Returns true if successful. Otherwise returns false.
12
- def update(git)
13
- # TODO: Change this method to raise errors if something goes wrong instead
14
- # of returning a status.
15
-
16
- # If the git executable is available, pull from master and check status.
17
- if !git.nil?
18
- output = `cd #{path} && #{git} pull origin master 2>/dev/null`
19
-
20
- # Write update to log if something happened
21
- if output.index('Already up-to-date').nil?
22
- $stderr.puts "==Repository updated at #{Time.new()} : #{path}=="
23
- end
24
-
25
- return $? == 0
26
- # Otherwise return false.
27
- else
28
- return false
29
- end
30
- end
31
9
 
32
- ##############################################################################
10
+ # TODO: Wish Gollum let us set these in some other way so that a subclass
11
+ # doesn't have to do it again.
12
+ self.default_ref = 'master'
13
+ self.default_committer_name = 'Anonymous'
14
+ self.default_committer_email = 'anon@anon.com'
15
+ self.default_ws_subs = ['_','-']
16
+
17
+ # Public: The Smeagol wiki settings. These can be found in the _settings.yml
18
+ # file at the root of the repository.
19
+ # This method caches the settings for all subsequent calls.
33
20
  #
34
- # Settings
21
+ # TODO: Should settings be coming from current file or from repo version?
22
+ # This can be tricky. Right now they come from current file, but
23
+ # In future we probably need to split this into two config files.
24
+ # One that comes from version and one that is current.
35
25
  #
36
- ##############################################################################
37
-
38
- # The Smeagol wiki settings. These can be found in the smeagol.yaml file at
39
- # the root of the repository.
26
+ # TODO: This might be better in Controller instead.
40
27
  #
41
- # Returns an OpenStruct of settings.
28
+ # Returns a Settings object.
42
29
  def settings
43
- # Cache settings if already read
44
- if @settings.nil?
45
- file = "#{path}/settings.yml"
46
- if File.readable?(file)
47
- @settings = YAML::load(IO.read(file)).to_ostruct
48
- else
49
- @settings = OpenStruct.new
50
- end
51
- end
52
- return @settings
30
+ @settings ||= Settings.load(path)
53
31
  end
32
+
54
33
  end
34
+
55
35
  end
@@ -1,12 +1,76 @@
1
- require 'rubygems'
2
- require 'minitest/autorun'
3
- require 'mocha'
1
+ require 'citron'
2
+ require 'ae'
3
+ require 'fileutils'
4
+ #require 'mocha'
5
+ require 'smeagol'
6
+ require 'rack/test'
4
7
 
5
- $:.unshift(File.dirname(__FILE__))
6
- require File.expand_path(File.dirname(__FILE__) + '/../lib/smeagol')
8
+ # Shut-off verbose output from Smeagol.
9
+ $QUIET = true
10
+
11
+ #$:.unshift(File.dirname(__FILE__))
12
+ #require File.expand_path(File.dirname(__FILE__) + '/../lib/smeagol')
7
13
 
8
14
  # Stop test if test wiki path is not set
9
- if !ENV.has_key?('SMEAGOL_TEST_WIKI_PATH')
10
- puts 'You must set SMEAGOL_TEST_WIKI_PATH in your environment to run the tests.'
11
- exit(1);
15
+ #if !ENV.has_key?('SMEAGOL_TEST_WIKI_PATH')
16
+ # puts 'You must set SMEAGOL_TEST_WIKI_PATH in your environment to run the tests.'
17
+ # exit(1);
18
+ #end
19
+
20
+ # TODO: Use Grit instead of shell.
21
+ def test_wiki(directory='smeagol-test')
22
+ $test_wiki ||= {}
23
+ $test_wiki[directory] ||= (
24
+ directory = File.join('tmp', directory)
25
+
26
+ if ::File.directory?("#{directory}/.git")
27
+ #system "cd #{directory} && git reset --hard"
28
+ else
29
+ system "git clone https://github.com/rubyworks/smeagol-test.git #{directory}"
30
+ end
31
+
32
+ directory
33
+ )
34
+ end
35
+
36
+ =begin
37
+ class TestWiki
38
+ include Rack::Test::Methods
39
+
40
+ # TODO: Use Grit instead of shell.
41
+ def self.clone(directory='smeagol-test')
42
+ if ::File.directory?("#{directory}/.git")
43
+ #system "cd #{directory} && git reset --hard"
44
+ else
45
+ system "git clone https://github.com/rubyworks/smeagol-test.git #{directory}"
46
+ end
47
+ new(directory)
48
+ end
49
+
50
+ #
51
+ def initialize(directory)
52
+ @directory = directory
53
+ Smeagol::App.set :environment, :test
54
+ Smeagol::App.set :repositories, [Smeagol::Repository.new(:path => directory)]
55
+ Smeagol::App.set :cache_enabled, false
56
+ end
57
+
58
+ #
59
+ attr :directory
60
+
61
+ #
62
+ def app
63
+ @app ||= Rack::Builder.new do
64
+ run Smeagol::App
65
+ end
66
+ end
67
+
68
+ # Helper method.
69
+ def get_content(body)
70
+ body = body.gsub(/^.+<article>\n/m, '')
71
+ body = body.gsub(/\n<\/article>.+$/m, '')
72
+ return body
73
+ end
12
74
  end
75
+ =end
76
+
@@ -0,0 +1,57 @@
1
+ require 'helper'
2
+
3
+ testcase Smeagol::App do
4
+
5
+ context "Testing Routes" do
6
+ include Rack::Test::Methods
7
+
8
+ # TODO: Wait, there is no `before :all`?
9
+ setup do
10
+ @wiki_directory = test_wiki('smeagol-test')
11
+ end
12
+
13
+ test "root" do
14
+ get '/'
15
+ body = last_response.body.gsub(/^\s+| +$/, '')
16
+ body.assert.include?('<html>')
17
+ body.assert.include?('<title>Smeagol - Home</title>')
18
+ body.assert.include?('<p>Welcome to the Home page!</p>')
19
+ end
20
+
21
+ test "Test Page" do
22
+ get '/Test-page'
23
+ body = last_response.body.gsub(/^\s+| +$/, '')
24
+ body.assert.include?('<h1>Test page</h1>')
25
+ body.assert.include?('<p>This is the <strong>test</strong> <em>page</em>.</p>')
26
+ body.assert.include?('<li>Item 1</li>')
27
+ end
28
+
29
+ test "Code Page" do
30
+ get '/Code-page'
31
+ body = last_response.body.gsub(/^\s+| +$/, '')
32
+ body.assert.include?('<h1>Code page</h1>')
33
+ body.assert.include?('<p>This is Ruby code:</p>')
34
+ body.assert.include?('<div class="highlight">')
35
+ body.assert.include?('<span class="k">')
36
+ body.assert.include?('<span class="s2">"Hello World!"</span>')
37
+ end
38
+
39
+ #
40
+ def app
41
+ @app ||= (
42
+ path = @wiki_directory
43
+
44
+ Rack::Builder.new do
45
+ Smeagol::App.set :environment, :test
46
+ Smeagol::App.set :repositories, [Smeagol::Repository.new(:path => path)]
47
+ Smeagol::App.set :cache_enabled, false
48
+ Smeagol::App.set :mount_path, ''
49
+
50
+ run Smeagol::App
51
+ end
52
+ )
53
+ end
54
+
55
+ end
56
+
57
+ end
@@ -1,32 +1,31 @@
1
- require File.dirname(__FILE__) + '/helper'
2
- require 'fileutils'
1
+ require 'helper'
3
2
 
4
- class CacheTestCase < MiniTest::Unit::TestCase
5
- def setup
6
- @wiki = Smeagol::Wiki.new(ENV['SMEAGOL_TEST_WIKI_PATH'])
3
+ testcase Smeagol::Cache do
4
+ setup do
5
+ @wiki = Smeagol::Wiki.new(test_wiki)
7
6
  @cache = Smeagol::Cache.new(@wiki)
8
7
  @cache.clear()
9
8
  end
10
9
 
11
- def test_should_show_cache_hit
10
+ test 'should show cache hit' do
12
11
  @cache.set_page('Home', 'master', 'abc')
13
12
  assert @cache.cache_hit?('Home')
14
13
  end
15
14
 
16
- def test_should_show_cache_miss
15
+ test 'should show cache miss' do
17
16
  assert !@cache.cache_hit?('Home')
18
17
  end
19
18
 
20
- def test_should_show_cache_miss_for_nonexistent_page
19
+ test 'should show cache miss for nonexistent_page' do
21
20
  assert !@cache.cache_hit?('THIS_IS_NOT_A_PAGE!')
22
21
  end
23
22
 
24
- def test_should_cache_page
23
+ test 'should cache page' do
25
24
  @cache.set_page('Home', 'master', 'abc')
26
- assert_equal 'abc', @cache.get_page('Home')
25
+ @cache.get_page('Home').assert == 'abc'
27
26
  end
28
27
 
29
- def test_should_remove_cache
28
+ test 'should remove cache' do
30
29
  @cache.set_page('Home', 'master', 'abc')
31
30
  @cache.remove_page('Home')
32
31
  assert !@cache.cache_hit?('Home')
@@ -0,0 +1,27 @@
1
+ require 'helper'
2
+
3
+ testcase Smeagol::Console do
4
+
5
+ context "init" do
6
+
7
+ setup do
8
+ @test_dir = 'tmp/fresh-wiki'
9
+ FileUtils.rm_r(@test_dir) if File.exist?(@test_dir)
10
+ FileUtils.mkdir(@test_dir)
11
+ FileUtils.mkdir(File.join(@test_dir, '.git')) # fake a git repo for testing
12
+ end
13
+
14
+ test "init should create default files." do
15
+ Dir.chdir(@test_dir) do
16
+ Smeagol::Console.init()
17
+
18
+ File.assert.file?('_settings.yml')
19
+ File.assert.directory?('_layouts')
20
+ File.assert.directory?('assets/smeagol')
21
+ end
22
+ end
23
+
24
+ end
25
+
26
+ end
27
+
@@ -0,0 +1,20 @@
1
+ require 'helper'
2
+
3
+ testcase Smeagol::Console do
4
+
5
+ context "update" do
6
+
7
+ setup do
8
+ @test_dir = test_wiki('smeagol-test')
9
+ end
10
+
11
+ test "update should fit pull down current repo" do
12
+ Dir.chdir(@test_dir) do
13
+ Smeagol::Console.update('.')
14
+ end
15
+ end
16
+
17
+ end
18
+
19
+ end
20
+
@@ -1,15 +1,18 @@
1
- require File.dirname(__FILE__) + '/helper'
1
+ require 'helper'
2
2
 
3
- class WikiTestCase < MiniTest::Unit::TestCase
4
- def setup
5
- @wiki = Smeagol::Wiki.new(ENV['SMEAGOL_TEST_WIKI_PATH'])
6
- end
7
-
8
- def test_settings_should_be_open_struct
9
- assert_kind_of OpenStruct, @wiki.settings
3
+ testcase Smeagol::Wiki do
4
+
5
+ setup do
6
+ @wiki = Smeagol::Wiki.new(test_wiki)
10
7
  end
11
8
 
12
- def test_settings_should_be_read_from_file
13
- assert_equal 'Smeagol', @wiki.settings.title
9
+ test 'settings should be Settings instance' do
10
+ assert Smeagol::Settings === @wiki.settings
14
11
  end
12
+
13
+ #test 'settings should be read from file' do
14
+ # @wiki.settings.title.assert == 'Smeagol'
15
+ #end
16
+
15
17
  end
18
+
metadata CHANGED
@@ -1,272 +1,198 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: smeagol
3
- version: !ruby/object:Gem::Version
4
- hash: 25
5
- prerelease: false
6
- segments:
7
- - 0
8
- - 5
9
- - 9
10
- version: 0.5.9
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.6.0
5
+ prerelease:
11
6
  platform: ruby
12
- authors:
7
+ authors:
13
8
  - Ben Johnson
9
+ - Thomas Sawyer
14
10
  autorequire:
15
11
  bindir: bin
16
12
  cert_chain: []
17
-
18
- date: 2011-09-26 00:00:00 -06:00
19
- default_executable: smeagol
20
- dependencies:
21
- - !ruby/object:Gem::Dependency
13
+ date: 2012-07-30 00:00:00.000000000 Z
14
+ dependencies:
15
+ - !ruby/object:Gem::Dependency
22
16
  name: rack
23
- prerelease: false
24
- requirement: &id001 !ruby/object:Gem::Requirement
17
+ requirement: &31364960 !ruby/object:Gem::Requirement
25
18
  none: false
26
- requirements:
19
+ requirements:
27
20
  - - ~>
28
- - !ruby/object:Gem::Version
29
- hash: 31
30
- segments:
31
- - 1
32
- - 2
33
- - 0
34
- version: 1.2.0
21
+ - !ruby/object:Gem::Version
22
+ version: '1.2'
35
23
  type: :runtime
36
- version_requirements: *id001
37
- - !ruby/object:Gem::Dependency
38
- name: gollum
39
24
  prerelease: false
40
- requirement: &id002 !ruby/object:Gem::Requirement
41
- none: false
42
- requirements:
43
- - - ~>
44
- - !ruby/object:Gem::Version
45
- hash: 17
46
- segments:
47
- - 1
48
- - 1
49
- - 1
50
- version: 1.1.1
51
- type: :runtime
52
- version_requirements: *id002
53
- - !ruby/object:Gem::Dependency
54
- name: sinatra
55
- prerelease: false
56
- requirement: &id003 !ruby/object:Gem::Requirement
25
+ version_requirements: *31364960
26
+ - !ruby/object:Gem::Dependency
27
+ name: gollum
28
+ requirement: &31364360 !ruby/object:Gem::Requirement
57
29
  none: false
58
- requirements:
59
- - - ~>
60
- - !ruby/object:Gem::Version
61
- hash: 15
62
- segments:
63
- - 1
64
- - 0
65
- version: "1.0"
30
+ requirements:
31
+ - - ! '>='
32
+ - !ruby/object:Gem::Version
33
+ version: '1.3'
66
34
  type: :runtime
67
- version_requirements: *id003
68
- - !ruby/object:Gem::Dependency
69
- name: OptionParser
70
35
  prerelease: false
71
- requirement: &id004 !ruby/object:Gem::Requirement
36
+ version_requirements: *31364360
37
+ - !ruby/object:Gem::Dependency
38
+ name: sinatra
39
+ requirement: &31363760 !ruby/object:Gem::Requirement
72
40
  none: false
73
- requirements:
41
+ requirements:
74
42
  - - ~>
75
- - !ruby/object:Gem::Version
76
- hash: 9
77
- segments:
78
- - 0
79
- - 5
80
- - 1
81
- version: 0.5.1
43
+ - !ruby/object:Gem::Version
44
+ version: '1.0'
82
45
  type: :runtime
83
- version_requirements: *id004
84
- - !ruby/object:Gem::Dependency
85
- name: daemons
86
46
  prerelease: false
87
- requirement: &id005 !ruby/object:Gem::Requirement
47
+ version_requirements: *31363760
48
+ - !ruby/object:Gem::Dependency
49
+ name: rubypython
50
+ requirement: &31363180 !ruby/object:Gem::Requirement
88
51
  none: false
89
- requirements:
90
- - - ~>
91
- - !ruby/object:Gem::Version
92
- hash: 19
93
- segments:
94
- - 1
95
- - 1
96
- - 0
97
- version: 1.1.0
52
+ requirements:
53
+ - - ! '>='
54
+ - !ruby/object:Gem::Version
55
+ version: '0.5'
98
56
  type: :runtime
99
- version_requirements: *id005
100
- - !ruby/object:Gem::Dependency
101
- name: rake
102
57
  prerelease: false
103
- requirement: &id006 !ruby/object:Gem::Requirement
58
+ version_requirements: *31363180
59
+ - !ruby/object:Gem::Dependency
60
+ name: citron
61
+ requirement: &31362700 !ruby/object:Gem::Requirement
104
62
  none: false
105
- requirements:
106
- - - ~>
107
- - !ruby/object:Gem::Version
108
- hash: 57
109
- segments:
110
- - 0
111
- - 8
112
- - 3
113
- version: 0.8.3
63
+ requirements:
64
+ - - ! '>='
65
+ - !ruby/object:Gem::Version
66
+ version: '0'
114
67
  type: :development
115
- version_requirements: *id006
116
- - !ruby/object:Gem::Dependency
117
- name: minitest
118
68
  prerelease: false
119
- requirement: &id007 !ruby/object:Gem::Requirement
69
+ version_requirements: *31362700
70
+ - !ruby/object:Gem::Dependency
71
+ name: ae
72
+ requirement: &31362140 !ruby/object:Gem::Requirement
120
73
  none: false
121
- requirements:
122
- - - ~>
123
- - !ruby/object:Gem::Version
124
- hash: 11
125
- segments:
126
- - 1
127
- - 7
128
- - 0
129
- version: 1.7.0
74
+ requirements:
75
+ - - ! '>='
76
+ - !ruby/object:Gem::Version
77
+ version: '0'
130
78
  type: :development
131
- version_requirements: *id007
132
- - !ruby/object:Gem::Dependency
133
- name: mocha
134
79
  prerelease: false
135
- requirement: &id008 !ruby/object:Gem::Requirement
80
+ version_requirements: *31362140
81
+ - !ruby/object:Gem::Dependency
82
+ name: rack-test
83
+ requirement: &31361600 !ruby/object:Gem::Requirement
136
84
  none: false
137
- requirements:
138
- - - ~>
139
- - !ruby/object:Gem::Version
140
- hash: 43
141
- segments:
142
- - 0
143
- - 9
144
- - 8
145
- version: 0.9.8
85
+ requirements:
86
+ - - ! '>='
87
+ - !ruby/object:Gem::Version
88
+ version: '0'
146
89
  type: :development
147
- version_requirements: *id008
148
- - !ruby/object:Gem::Dependency
149
- name: cucumber
150
90
  prerelease: false
151
- requirement: &id009 !ruby/object:Gem::Requirement
91
+ version_requirements: *31361600
92
+ - !ruby/object:Gem::Dependency
93
+ name: rdiscount
94
+ requirement: &31361080 !ruby/object:Gem::Requirement
152
95
  none: false
153
- requirements:
154
- - - ~>
155
- - !ruby/object:Gem::Version
156
- hash: 53
157
- segments:
158
- - 0
159
- - 8
160
- - 5
161
- version: 0.8.5
96
+ requirements:
97
+ - - ! '>='
98
+ - !ruby/object:Gem::Version
99
+ version: '0'
162
100
  type: :development
163
- version_requirements: *id009
164
- - !ruby/object:Gem::Dependency
165
- name: rspec
166
101
  prerelease: false
167
- requirement: &id010 !ruby/object:Gem::Requirement
168
- none: false
169
- requirements:
170
- - - ~>
171
- - !ruby/object:Gem::Version
172
- hash: 27
173
- segments:
174
- - 1
175
- - 3
176
- - 0
177
- version: 1.3.0
178
- type: :development
179
- version_requirements: *id010
180
- - !ruby/object:Gem::Dependency
181
- name: capybara
182
- prerelease: false
183
- requirement: &id011 !ruby/object:Gem::Requirement
184
- none: false
185
- requirements:
186
- - - ~>
187
- - !ruby/object:Gem::Version
188
- hash: 1
189
- segments:
190
- - 0
191
- - 3
192
- - 9
193
- version: 0.3.9
194
- type: :development
195
- version_requirements: *id011
196
- description:
197
- email:
102
+ version_requirements: *31361080
103
+ description: ! 'Smeagol is a customizable read-only Gollum wiki server.
104
+
105
+ Smeagol makes it possible to maintain a standalone website,
106
+
107
+ but update it through the Gollum wiki interface, e.g. via GitHub.'
108
+ email:
198
109
  - benbjohnson@yahoo.com
199
- executables:
200
- - smeagol
110
+ - transfire@gmail.com
111
+ executables:
201
112
  - smeagold
202
- - smeagol-static
113
+ - smeagol-update
114
+ - smeagol
115
+ - smeagol-preview
116
+ - smeagol-serve
117
+ - smeagol-init
203
118
  extensions: []
204
-
205
- extra_rdoc_files: []
206
-
207
- files:
208
- - lib/file.rb
119
+ extra_rdoc_files:
120
+ - LICENSE.txt
121
+ - HISTORY.md
122
+ - README.md
123
+ files:
124
+ - .ruby
125
+ - .yardopts
126
+ - bin/smeagol
127
+ - bin/smeagol-init
128
+ - bin/smeagol-preview
129
+ - bin/smeagol-serve
130
+ - bin/smeagol-update
131
+ - bin/smeagold
209
132
  - lib/smeagol/app.rb
210
133
  - lib/smeagol/cache.rb
211
- - lib/smeagol/hash.rb
212
- - lib/smeagol/option_parser.rb
213
- - lib/smeagol/public/smeagol/html5.js
214
- - lib/smeagol/public/smeagol/main.css
215
- - lib/smeagol/public/smeagol/pygment.css
216
- - lib/smeagol/templates/page.mustache
217
- - lib/smeagol/templates/versions.mustache
134
+ - lib/smeagol/cli.rb
135
+ - lib/smeagol/config.rb
136
+ - lib/smeagol/console.rb
137
+ - lib/smeagol/controller.rb
138
+ - lib/smeagol/core_ext.rb
139
+ - lib/smeagol/gollum/blob_entry.rb
140
+ - lib/smeagol/gollum/file.rb
141
+ - lib/smeagol/gollum/page.rb
142
+ - lib/smeagol/gollum/wiki.rb
143
+ - lib/smeagol/helpers/rss.rb
144
+ - lib/smeagol/helpers/toc.rb
145
+ - lib/smeagol/public/assets/smeagol/gollum.css
146
+ - lib/smeagol/public/assets/smeagol/html5.js
147
+ - lib/smeagol/public/assets/smeagol/pygment.css
148
+ - lib/smeagol/public/assets/smeagol/template.css
149
+ - lib/smeagol/repository.rb
150
+ - lib/smeagol/settings.rb
151
+ - lib/smeagol/templates/layouts/page.mustache
152
+ - lib/smeagol/templates/layouts/versions.mustache
153
+ - lib/smeagol/templates/partials/footer.mustache
154
+ - lib/smeagol/templates/partials/header.mustache
155
+ - lib/smeagol/templates/settings.yml
218
156
  - lib/smeagol/version.rb
219
157
  - lib/smeagol/views/base.rb
158
+ - lib/smeagol/views/form.rb
220
159
  - lib/smeagol/views/page.rb
160
+ - lib/smeagol/views/post.rb
221
161
  - lib/smeagol/views/versions.rb
222
162
  - lib/smeagol/wiki.rb
223
163
  - lib/smeagol.rb
224
- - README.md
225
164
  - test/helper.rb
165
+ - test/test_app.rb
226
166
  - test/test_cache.rb
227
- - test/test_file.rb
228
- - test/test_hash.rb
167
+ - test/test_init.rb
168
+ - test/test_update.rb
229
169
  - test/test_wiki.rb
230
- - bin/smeagol
231
- - bin/smeagold
232
- - bin/smeagol-static
233
- has_rdoc: true
234
- homepage: http://smeagolrb.info
235
- licenses: []
236
-
170
+ - HISTORY.md
171
+ - README.md
172
+ - LICENSE.txt
173
+ homepage: http://rubyworks.github.com/smeagol
174
+ licenses:
175
+ - BSD-2-Clause
237
176
  post_install_message:
238
177
  rdoc_options: []
239
-
240
- require_paths:
178
+ require_paths:
241
179
  - lib
242
- required_ruby_version: !ruby/object:Gem::Requirement
180
+ required_ruby_version: !ruby/object:Gem::Requirement
243
181
  none: false
244
- requirements:
245
- - - ">="
246
- - !ruby/object:Gem::Version
247
- hash: 3
248
- segments:
249
- - 0
250
- version: "0"
251
- required_rubygems_version: !ruby/object:Gem::Requirement
182
+ requirements:
183
+ - - ! '>='
184
+ - !ruby/object:Gem::Version
185
+ version: '0'
186
+ required_rubygems_version: !ruby/object:Gem::Requirement
252
187
  none: false
253
- requirements:
254
- - - ">="
255
- - !ruby/object:Gem::Version
256
- hash: 3
257
- segments:
258
- - 0
259
- version: "0"
188
+ requirements:
189
+ - - ! '>='
190
+ - !ruby/object:Gem::Version
191
+ version: '0'
260
192
  requirements: []
261
-
262
193
  rubyforge_project:
263
- rubygems_version: 1.3.7
194
+ rubygems_version: 1.8.11
264
195
  signing_key:
265
196
  specification_version: 3
266
- summary: A read-only server for Gollum wikis
267
- test_files:
268
- - test/helper.rb
269
- - test/test_cache.rb
270
- - test/test_file.rb
271
- - test/test_hash.rb
272
- - test/test_wiki.rb
197
+ summary: Wiki Cum Website
198
+ test_files: []