Giter Site home page Giter Site logo

umlaut's Introduction

Umlaut

Gem Version Build Status Dependency Status Code Climate Coverage Status

Umlaut is software for libraries (the kind with books).

It could be described as a front-end layer on top of an existing OpenURL knowledge base. But it's actually quite a bit more than that.

It could also be described as: a just-in-time aggregator of "last mile" specific-citation services, taking input as OpenURL, and providing both an HTML UI and an api suite for embedding Umlaut services in other products.

Umlaut's role is to provide the user with services that apply to the item of interest. And services provided by various different products: including as a major target, your OpenURL Knowledge Base, but also including other products. Services provided by the hosting institution, licensed by the hosting institution, as well as free services the hosting institution wishes to advertise/recommend to it's users.

Umlaut strives to supply links that take the user in as few clicks as possible to the service listed, without ever listing 'blind links' that you first have to click on to find out whether they are available. Umlaut pre-checks things when neccesary to only list services, with any needed contextual info, such that the user knows what they get when they click on it. Save the time of the user.

What do you mean by all this?

Umlaut is distributed as a ruby Rails engine gem. It's a very heavyweight engine, the point of distro'ing as a gem is to make it easy to keep local config/customization/enhancement seperate from distro, not so much to let you 'mix in' Umlaut to an already existing complex app.

Installation

For complete step-by-step install instructions suitable even for the neophyte, see: https://github.com/team-umlaut/umlaut/wiki/Installation.

The Rails/Umlaut super-concise expert summary is:

  • Rails 3.1+ (but not yet tested with Rails 4), ruby 1.9.3.

  • gem 'umlaut'

  • bundle install

  • $ rails generate umlaut:install

  • mysql database strongly encouraged, sqlite3 probably won't work.

  • configuration in ./config/umlaut_services.yml and ./app/controllers/umlaut_controller.rb

  • Umlaut uses multi-threaded concurrency in a way incompatible with development-mode class reloading. You need cache_classes=false even in dev, the Umlaut install generator changes this for you.

Add ons

Some Umlaut services adapters are sufficiently complicated or are on different release cycles from the core code that they merit their own gems. Generally, you will need to include these gems in your application's Gemfile in order to get the described functionality.

Add on Description
umlaut-primo Umlaut services to provide full text service responses, holdings, etc. from the Primo discovery solution.

Developing

Only spotty test coverage, sorry, but we're trying to improve. Don't trust if all tests pass everythings good, but if tests fail, that's an unacceptable commit. Try to add tests with new features, although we understand when nobody can figure out a good way to test (esp our legacy architecture).

Run tests with rake test.

Tests are with plain old Test::Unit, please.

Tests use the vcr gem where appropriate. See ./test/support/test_with_cassette.

gem skeleton was created with rails plugin new, which creates a dummy app that tests are run in context of, at ./test/dummy.

See also: https://github.com/team-umlaut/umlaut/wiki/Developing

Source

https://github.com/team-umlaut/umlaut/

Listserv

You can join the umlaut listserv at: http://rubyforge.org/mail/?group_id=4382

umlaut's People

Contributors

jrochkind avatar scotdalton avatar rsinger avatar jronallo avatar

Watchers

James Cloos avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.