smeagol 0.5.9 → 0.6.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.
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: []