Vortex Client

A Ruby API for the “Vortex”:www.usit.uio.no/it/vortex/ Content Management System developed at the University of Oslo in Norway by IT Services department. The Ruby API uses the WebDAV protocol, supported by Vortex, to manage content.

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/

Storing passwords in KeyChain on OS X

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

vortex = Vortex::Connection.new("https://www-dav.server.com", :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.