Class: Redsync::LocalWiki
- Inherits:
-
Object
- Object
- Redsync::LocalWiki
- Defined in:
- lib/redsync/local_wiki.rb
Instance Method Summary collapse
- #get(name) ⇒ Object
-
#initialize(options) ⇒ LocalWiki
constructor
A new instance of LocalWiki.
- #list ⇒ Object
- #path_for(name) ⇒ Object
- #write(name, content) ⇒ Object
Constructor Details
#initialize(options) ⇒ LocalWiki
4 5 6 7 |
# File 'lib/redsync/local_wiki.rb', line 4 def initialize() @data_dir = [:data_dir] @extension = [:extension] end |
Instance Method Details
#get(name) ⇒ Object
27 28 29 30 31 32 33 34 35 36 37 |
# File 'lib/redsync/local_wiki.rb', line 27 def get(name) list unless @pages return nil if @pages[name].nil? unless @pages[name].content @pages[name].content = File.read(path_for(name)) end @pages[name] end |
#list ⇒ Object
10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
# File 'lib/redsync/local_wiki.rb', line 10 def list unless @pages @pages = {} Dir["#{@data_dir}/**/*.#{@extension}"].each do |file| name = File.basename(file, "." + @extension) name = name.encode("UTF-8", "UTF-8-MAC", :invalid => :replace, :undef => :replace) if RUBY_PLATFORM =~ /darwin/ @pages[name] = WikiPage.new( :name => name, :mtime => File.mtime(file) ) end end @pages.values end |
#path_for(name) ⇒ Object
47 48 49 50 |
# File 'lib/redsync/local_wiki.rb', line 47 def path_for(name) name = name.encode("UTF-8-MAC", "UTF-8", :invalid => :replace, :undef => :replace) if RUBY_PLATFORM =~ /darwin/ File.join(@data_dir, name + "." + @extension) end |
#write(name, content) ⇒ Object
40 41 42 43 44 |
# File 'lib/redsync/local_wiki.rb', line 40 def write(name, content) File.open(path_for(name), "w+:UTF-8") do |f| f.write(content) end end |