Vortex Client

A set of utilities for managing content in the web content management system “Vortex”:www.usit.uio.no/it/vortex/. All operations are done by using the webdav protocol.

Publishing content

To publish an article.

require 'rubygems'
require 'vortex_client'

vortex = Vortex::Connection.new("https://www-dav.server.com")
vortex.cd("/news/")
article = Vortex::StructuredArticle.new(:title => "My title", :introduction => "Lorem ipsum")
vortex.publish(article)

Running the script.

$ ruby publish.rb
Username: thomasfl
Password: *****

An article should now be published to “www-dav.server.com/news/my-title.html”.

Creating folders (collections)

To create a folder named “2010” in the “/news/” folder.

require 'rubygems'
require 'vortex_client'

vortex = Vortex::Connection.new("https://www-dav.server.com")
vortex.cd("/news/")
collection = Vortex::ArticleListingCollection.new(:title => "News for 2009", :foldername => "2009")
vortex.create(collection)

Documentation

RDoc: rdoc.info/projects/thomasfl/vortex_client/

Installation

On most setups you simply do:

sudo gem install vortex_client

If your’e having problems installing the xml parser nokogiri on is x: wiki.github.com/tenderlove/nokogiri/what-to-do-if-libxml2-is-being-a-jerk Also how to compile ruby 1.9.1 on os x wonko.com/post/how-to-compile-ruby-191 On ubuntu openssl can be an issue blog.maxaller.name/2009/02/ruby-19-and-openssl-on-ubuntu/

Using KeyChain authentication on OS X

To retrieve password from KeyChain on OS X, use the option :use_osx_keychain => true.

vortex = Vortex::Connection.new("https://www-dav.server.com", :use_osx_keychain => true)

When running for the first time, ruby prompts for the password. Username must be the same both locally and on the server.

Password not found on OS X KeyChain.
Enter password to store new password on OS X KeyChain.
Password: *****
Password for 'tiger' on 'www-dav.server.com' stored on OS X KeyChain.

The next time the script is executed, ruby won’t prompt for username or password.

KeyChain authentication requires ‘osx_keychain’ and ‘RubyInline’ gem.

To install:

$ sudo gem install RubyInline
$ sudo gem install osx_keychain

Note on Patches/Pull Requests

  • Fork the project.

  • Make your feature addition or bug fix.

  • Add tests for it. This is important so I don’t break it in a future version unintentionally.

  • Commit, do not mess with rakefile, version, or history. (if you want to have your own version, that is fine but

    bump version in a commit by itself I can ignore when I pull)
    
  • Send me a pull request. Bonus points for topic branches.

Copyright © 2009 Thomas Flemming. See LICENSE for details.