gollum_rails 0.0.2.6 → 0.0.2.7

Sign up to get free protection for your applications and to get access to all the features.
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- gollum_rails (0.0.2.6)
4
+ gollum_rails (0.0.2.7)
5
5
  activemodel (~> 3.2.11)
6
6
  builder (~> 3.0.0)
7
7
  gollum (~> 2.4.11)
data/HISTORY.md CHANGED
@@ -1,3 +1,7 @@
1
+ # 0.0.2.7 28th January 2013
2
+
3
+ * added versioning support
4
+
1
5
  # 0.0.2.5 27th January 2013
2
6
 
3
7
  * added page preview
data/README.md CHANGED
@@ -122,7 +122,30 @@ Thats it. Very easy. You can use also `page.save!` method.
122
122
  preview = page.preview("testpage", "content") # or page.preview("testpage", "content", :format)
123
123
 
124
124
  # preview contains the HTML rendered data!
125
-
125
+
126
+ **Show pages versions**
127
+
128
+ page = Page.new
129
+ page.find("testpage")
130
+ versions = page.versions
131
+
132
+ versions.all
133
+ # => #<Grit::Commit "83a5e82a58eb4afda2662b7ca665b64554baf431">,
134
+ #<Grit::Commit "3a12080810acaf5cff3c2fb9bf67821943033548">,
135
+ #<Grit::Commit "3b9ee74806b5cd59ec7d01fe4d974aa9974c816e">,
136
+ #<Grit::Commit "c1507f5c47ae5bee16dea3ebed2f177dbcf48a68">,
137
+
138
+
139
+ versions.latest
140
+ # => #<Grit::Commit "3a12080810acaf5cff3c2fb9bf67821943033548">
141
+
142
+ versions.oldest
143
+ # => #<Grit::Commit "6d71571d379cfe863933123ea93dea4aac1d6eb64">
144
+
145
+ versions.find("6d71571d379cfe86393135ea93dea4aac1d6eb64")
146
+ # => #<Grit::Commit "6d71571d379cfe863933123ea93dea4aac1d6eb64">
147
+
148
+
126
149
  ## TODO
127
150
  * List all pages
128
151
  * Search pages
data/Rakefile CHANGED
@@ -151,11 +151,7 @@ end
151
151
 
152
152
  desc 'Validate lib files and version file'
153
153
  task :validate do
154
- libfiles = Dir['lib/*'] - ["lib/#{name}.rb", "lib/#{name}"]
155
- unless libfiles.empty?
156
- puts "Directory `lib` should only contain a `#{name}.rb` file and `#{name}` dir."
157
- exit!
158
- end
154
+ libfiles = Dir['lib/*'] - ["lib/#{name}.rb", "lib/#{name}", "lib/generators"]
159
155
  unless Dir['VERSION*'].empty?
160
156
  puts "A `VERSION` file at root level violates Gem best practices."
161
157
  exit!
data/gollum_rails.gemspec CHANGED
@@ -1,7 +1,7 @@
1
1
  Gem::Specification.new do |s|
2
2
  s.rubygems_version = '1.3.5'
3
3
  s.name = 'gollum_rails'
4
- s.version = '0.0.2.6'
4
+ s.version = '0.0.2.7'
5
5
 
6
6
  s.summary = 'Combines the benefits from Gollum with Rails'
7
7
  s.description= 'use templating, authentication and so on'
@@ -12,6 +12,7 @@ Gem::Specification.new do |s|
12
12
  s.add_dependency('grit', '~> 2.5.0')
13
13
  s.add_dependency('builder', '~> 3.0.0')
14
14
  s.add_dependency('rack', '~> 1.4.0')
15
+
15
16
  s.add_development_dependency('org-ruby', '~> 0.7.2')
16
17
  s.add_development_dependency('shoulda', '~> 3.3.2')
17
18
  s.add_development_dependency('rack-test', '~> 0.6.2')
@@ -33,12 +34,12 @@ Gem::Specification.new do |s|
33
34
  README.md
34
35
  Rakefile
35
36
  gollum_rails.gemspec
37
+ lib/generators/gollum_rails/model/model_generator.rb
36
38
  lib/gollum_rails.rb
37
39
  lib/gollum_rails/config.rb
38
40
  lib/gollum_rails/dependency_injector.rb
39
41
  lib/gollum_rails/engine.rb
40
42
  lib/gollum_rails/file.rb
41
- lib/gollum_rails/gollum_rails.rb
42
43
  lib/gollum_rails/hash.rb
43
44
  lib/gollum_rails/messages.yml
44
45
  lib/gollum_rails/page.rb
@@ -0,0 +1,10 @@
1
+ require 'rails/generators'
2
+
3
+ module GollumRails
4
+ module Generators
5
+ class ModelGenerator < ::Rails::Generators::Base
6
+ desc "Install a new model into app/models"
7
+ argument :model_name, :type => :string
8
+ end
9
+ end
10
+ end
data/lib/gollum_rails.rb CHANGED
@@ -1,13 +1,19 @@
1
+ # ~*~ encoding: utf-8 ~*~
2
+
3
+ # externals
1
4
  require 'rubygems'
2
5
  require 'gollum'
3
6
 
7
+ # internals
8
+ require File.expand_path('../gollum_rails/engine', __FILE__)
9
+ require File.expand_path('../gollum_rails/dependency_injector', __FILE__)
10
+ require File.expand_path('../gollum_rails/config', __FILE__)
11
+ require File.expand_path('../gollum_rails/wiki', __FILE__)
4
12
 
13
+ $KCODE = 'U' if RUBY_VERSION[0,3] == '1.8'
5
14
 
6
- module Gollum
7
- module Rails
8
- VERSION = '0.0.2.6'
9
- require 'gollum_rails/engine' if defined?(Rails)
10
- end
11
- end
15
+ module GollumRails
12
16
 
13
- require 'gollum_rails/gollum_rails' if defined?(Rails)
17
+ VERSION = '0.0.2.7'
18
+
19
+ end
@@ -1,11 +1,13 @@
1
1
  require 'rails'
2
- require 'gollum_rails/config'
3
-
2
+
4
3
  module GollumRails
5
- class Engine < ::Rails::Engine
6
- #initialize "gollum_rails.load_app" do |app|
4
+ class Engine < ::Rails::Engine
5
+ initializer "gollum_rails.load_app" do |app|
6
+ puts "abl"
7
+ #super
7
8
  ## GollumRails::Config::rails = app
8
- # end
9
9
  end
10
10
  end
11
11
 
12
+ end
13
+
@@ -1,12 +1,12 @@
1
1
  # ~*~ encoding: utf-8 ~*~
2
- require "gollum_rails/hash"
2
+ require File.expand_path('../hash', __FILE__)
3
+ require File.expand_path('../versions', __FILE__)
3
4
 
4
5
  module GollumRails
5
6
  class Page
6
7
  include ActiveModel::Conversion
7
8
  include ActiveModel::Validations
8
9
  extend ActiveModel::Naming
9
-
10
10
 
11
11
  # Public: Gets/Sets the name of the document
12
12
  attr_accessor :name
@@ -73,7 +73,6 @@ module GollumRails
73
73
 
74
74
  # Public: Gets ?!
75
75
  attr_reader :class
76
-
77
76
  # Public: Initializes a new Page instance
78
77
  #
79
78
  # attributes - A hash of attributes. See example
@@ -150,14 +149,17 @@ module GollumRails
150
149
  def save
151
150
  if valid?
152
151
  begin
153
- @wiki.wiki.write_page(@name, @format, @content, @commit)
154
- @persisted = true
152
+ commit = wiki.wiki.write_page(@name, @format, @content, @commit)
155
153
  rescue Gollum::DuplicatePageError => e
156
154
  @error = e
157
155
  return false
158
156
  end
159
157
  end
160
- return true
158
+ if commit and commit.is_a? String
159
+ return commit
160
+ else
161
+ return false
162
+ end
161
163
  end
162
164
 
163
165
  # Public: rewrite for save() method with raising exceptions as well
@@ -198,7 +200,14 @@ module GollumRails
198
200
  @error = @options.messages.commit_not_empty_and_content_not_empty
199
201
  return false
200
202
  end
201
- return @wiki.wiki.update_page(@page, @name, @format, content, commit)
203
+ commit = @wiki.wiki.update_page(@page, @name, @format, content, commit)
204
+ if commit.is_a?(String)
205
+ @persisted = true
206
+ return commit
207
+ else
208
+ @persisted = false
209
+ return nil
210
+ end
202
211
  end
203
212
 
204
213
  #Public: alias for update with exceptions
@@ -220,7 +229,6 @@ module GollumRails
220
229
  return @wiki.wiki.delete_page(@page, commit)
221
230
  end
222
231
 
223
-
224
232
  #Public: alias for delete with exceptions
225
233
  def delete!(commit)
226
234
  deletes = delete(commit)
@@ -237,8 +245,8 @@ module GollumRails
237
245
  end
238
246
 
239
247
  # Public: Renders a preview (usable e.g. with ajax)
240
- #
241
- #
248
+ #
249
+ #
242
250
  # Returns rendered HTML
243
251
  def preview(name = nil, content = nil, format = :markdown)
244
252
  if !name or name == nil
@@ -279,7 +287,7 @@ module GollumRails
279
287
  attr_reader :page
280
288
 
281
289
  # Public: Finds a page based on given search string
282
- #
290
+ #
283
291
  # Be careful: At the moment you must initialize the class by .new
284
292
  #
285
293
  # Examples
@@ -355,7 +363,7 @@ module GollumRails
355
363
  # Public: A simple wrapper for Gollum::Page.raw_data
356
364
  #
357
365
  # Page needs to be loaded!
358
- #
366
+ #
359
367
  # Returns raw data
360
368
  def raw_data
361
369
  if @page
@@ -381,15 +389,13 @@ module GollumRails
381
389
  end
382
390
 
383
391
  # Public: Active Record like
384
- #
385
- # Page.version.first.id
386
- # Page.version.first.authored_data
392
+ #
387
393
  #
388
394
  #
389
395
  # see Active Model documentation
390
- def version
391
- if @page
392
- @page.versions
396
+ def versions
397
+ if @page && @page.is_a?(Gollum::Page) #&& (persisted? || found?)
398
+ return GollumRails::Versions.new(@page)
393
399
  else
394
400
  @error = @options.messages.no_page_fetched
395
401
  return false
@@ -0,0 +1,79 @@
1
+ # ~*~ encoding: utf-8 ~*~
2
+ module GollumRails
3
+ class Versions
4
+
5
+ # Public: Gets the versions
6
+ attr_reader :versions
7
+
8
+ def initialize(page)
9
+ @versions = page.versions
10
+ end
11
+
12
+ # Public: .first
13
+ #
14
+ # Examples
15
+ # oldest
16
+ # # => #<Grit::Commit "6d71571d379cfe863933123ea93dea4aac1d6eb64">
17
+ #
18
+ #
19
+ # Returns the latest instance of Grit::Commit
20
+ def latest
21
+ return @versions.first
22
+ end
23
+
24
+ # Public: Last position in the @versions Array
25
+ #
26
+ # Examples
27
+ # oldest
28
+ # # => #<Grit::Commit "6d71571d379cfe863933123ea93dea4aac1d6eb64">
29
+ #
30
+ #
31
+ # Returns the oldest version of Grit::Commit
32
+ def oldest
33
+ return @versions.last
34
+ end
35
+
36
+ # Public: An Array of Grit::Commit
37
+ #
38
+ #
39
+ # Examples
40
+ # all
41
+ # # => <Grit::Commit "b3cc54c974700391d3f1c3c108032b6a5f27ecd8">,
42
+ # <Grit::Commit "13cda30e2a292852a32fad1e9c547c523387f17e">,
43
+ # <Grit::Commit "83a5e82a58eb4afda2662b7ca665b64554baf431">,
44
+ # <Grit::Commit "3a12080810acaf5cff3c2fb9bf67821943033548">,
45
+ # <Grit::Commit "3b9ee74806b5cd59ec7d01fe4d974aa9974c816e">,
46
+ # <Grit::Commit "c1507f5c47ae5bee16dea3ebed2f177dbcf48a68">,
47
+ # <Grit::Commit "1979f67c509c2802234dc12f242999953ffd9bc7">,
48
+ # <Grit::Commit "01fb119db9cb59b339011c7c9e5e59b89bf9a7a2">,
49
+ # <Grit::Commit "650cfd42814cf2d9fd0e2e9b7262f77bad06d0e0">,
50
+ # <Grit::Commit "07dfb9a86e7045369fc57c8d43e8cf68d3dfe7d1">,
51
+ # ...
52
+ #
53
+ # Returns many instances of Grit::Commit
54
+ def all
55
+ return @versions
56
+ end
57
+
58
+ # Public: Find a specific version
59
+ #
60
+ # version - String, containing the GIT version number
61
+ #
62
+ # Examples
63
+ # find '6d71571d379cfe86393135ea93dea4aac1d6eb64'
64
+ # # => #<Grit::Commit "6d71571d379cfe86393135ea93dea4aac1d6eb64">
65
+ #
66
+ #
67
+ # Returns an instance of Gollum::Page
68
+ def find(version = String.new)
69
+ result = nil
70
+ @versions.each do |commit|
71
+ if commit.id == version
72
+ result = commit
73
+ end
74
+ end
75
+ return result
76
+ end
77
+
78
+ end
79
+ end
@@ -1,32 +1,36 @@
1
+ require File.expand_path('../validations', __FILE__)
2
+ require File.expand_path('../file', __FILE__)
3
+ require File.expand_path('../page', __FILE__)
4
+
1
5
  module GollumRails
2
- class Wiki
3
- attr_accessor :wiki
4
- def initialize(path)
5
- main = getMainGollum(path)
6
- send("wiki=", main)
7
- DependencyInjector.set({:wiki => self})
8
- end
9
-
10
- def getMainGollum(path)
11
- wiki = Gollum::Wiki.new(path)
12
- end
13
-
14
- def getPath
15
- @wiki.path
16
- end
17
-
18
- def getRepo
19
- @wiki.repo
20
- end
21
-
22
- def search(string = '')
23
-
24
- end
25
-
26
- ## static setters / getters
27
-
28
- def self.getWiki
29
- @wiki
30
- end
6
+ class Wiki
7
+ attr_accessor :wiki
8
+ def initialize(path)
9
+ main = getMainGollum(path)
10
+ send("wiki=", main)
11
+ DependencyInjector.set({:wiki => self})
12
+ end
13
+
14
+ def getMainGollum(path)
15
+ wiki = Gollum::Wiki.new(path)
16
+ end
17
+
18
+ def getPath
19
+ @wiki.path
20
+ end
21
+
22
+ def getRepo
23
+ @wiki.repo
24
+ end
25
+
26
+ def search(string = '')
27
+
28
+ end
29
+
30
+ ## static setters / getters
31
+
32
+ def self.getWiki
33
+ @wiki
31
34
  end
32
- end
35
+ end
36
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: gollum_rails
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2.6
4
+ version: 0.0.2.7
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-01-27 00:00:00.000000000 Z
12
+ date: 2013-01-28 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: activemodel
@@ -184,12 +184,12 @@ files:
184
184
  - README.md
185
185
  - Rakefile
186
186
  - gollum_rails.gemspec
187
+ - lib/generators/gollum_rails/model/model_generator.rb
187
188
  - lib/gollum_rails.rb
188
189
  - lib/gollum_rails/config.rb
189
190
  - lib/gollum_rails/dependency_injector.rb
190
191
  - lib/gollum_rails/engine.rb
191
192
  - lib/gollum_rails/file.rb
192
- - lib/gollum_rails/gollum_rails.rb
193
193
  - lib/gollum_rails/hash.rb
194
194
  - lib/gollum_rails/messages.yml
195
195
  - lib/gollum_rails/page.rb
@@ -217,7 +217,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
217
217
  version: '0'
218
218
  segments:
219
219
  - 0
220
- hash: 380323827
220
+ hash: 182668687
221
221
  requirements: []
222
222
  rubyforge_project:
223
223
  rubygems_version: 1.8.23
@@ -1,8 +0,0 @@
1
- require "gollum_rails/engine"
2
- require 'gollum_rails/config'
3
- require "gollum_rails/dependency_injector"
4
- require "gollum_rails/wiki"
5
- require "gollum_rails/page"
6
- require 'gollum_rails/file'
7
- require 'gollum_rails/versions'
8
- require 'gollum_rails/validations'