Rubydora is a low-level Fedora Commons REST API consumer, providing direct access to REST API methods, as well as a primitive ruby abstraction.
rubydora
was a Core Component of the Samvera Community. Given a decline in available labor required for maintenance, this project no longer meets the requirements necessary to maintain its status as a core component. Following a public request to the community issued requesting labor needed to ensure that these requirements are met, this project has been deprecated. The documentation for what this means can be found here.
The Samvera community is here to help. Please see our support guide.
gem install rubydora
> repo = Rubydora.connect :url => 'http://localhost:8983/fedora', :user => 'fedoraAdmin', :password => 'fedoraAdmin'
=> #<Rubydora::Repository:0x101859538 @config={:url=>"http://localhost:8983/fedora", :user=>"fedoraAdmin", :password=>"fedoraAdmin"}>
> obj = repo.find('test:1')
=> #<Rubydora::DigitalObject:0x101977230 @pid="test:1", @repository=#<Rubydora::Repository:0x1019beef0 @config={:user=>"fedoraAdmin", :url=>"http://localhost:8983/fedora", :password=>"fedora"}>>
> obj.new?
=> true
> obj = obj.save
=> #<Rubydora::DigitalObject:0x1017601b8 @pid="test:1", @repository=#<Rubydora::Repository:0x1018e3058 @config={:url=>"http://localhost:8983/fedora", :user=>"fedoraAdmin", :password=>"fedoraAdmin"}, @client=#<RestClient::Resource:0x101882910 @options={:user=>"fedoraAdmin", :password=>"fedoraAdmin"}, @block=nil, @url="http://localhost:8983/fedora">>>
> obj.profile
=> {"objDissIndexViewURL"=>"http://localhost:8983/fedora/get/test:1/fedora-system:3/viewMethodIndex", "objLabel"=>"", "objModels"=>"info:fedora/fedora-system:FedoraObject-3.0", "objCreateDate"=>"2011-04-18T13:34:11.285Z", "objOwnerId"=>"fedoraAdmin", "objState"=>"A", "objItemIndexViewURL"=>"http://localhost:8983/fedora/get/test:1/fedora-system:3/viewItemIndex", "objLastModDate"=>"2011-04-18T13:47:30.110Z"}
> obj.models
=> ["info:fedora/fedora-system:FedoraObject-3.0"]
> obj.models << 'info:fedora/test:cmodel'
=> ["info:fedora/fedora-system:FedoraObject-3.0", "info:fedora/test:cmodel"]
> obj2 = repo.find('test:2')
=> [...]
> obj1.parts << obj2
=> [...]
> obj.datastreams
=> {"DC"=>#<Rubydora::Datastream:0x101860180 @dsid="DC" ...> }
> ds = obj.datastreams['File']
=> #<Rubydora::Datastream:0x1017f26a8 @dsid="File" ...>
> ds.controlGroup = 'R'
=> "R"
> ds.dsLocation = 'http://example.org/index.html'
=> "http://example.org/index.html"
> ds.dsLabel = 'Example redirect datastream'
=> "Example redirect datastream"
> ds.mimeType = 'text/html'
=> "text/html"
> ds.save
=> #<Rubydora::Datastream:0x10177a568 @dsid="File" ...>
> obj.datastreams
=> {"DC"=>#<Rubydora::Datastream:0x101860180 @dsid="DC" ..., "File"=>#<Rubydora::Datastream:0x10177a568 @dsid="File" ...>}
> obj.datastreams["File"].delete
=> true
> obj.datastreams["File"].new?
=> true
There is a Dockerfile included here to build a container that runs fcrepo3. It will listen on port 8983, so no additional configuration is required. You can run the continuous integration suite or the specs directly. An example of starting the server and running just the specs is included here:
docker build -t samvera/fcrepo3:latest .
RUBYDORA_ID=$(docker run -d -p 8983:8983 samvera/fcrepo3:latest)
bundle exec rspec && docker kill $RUBYDORA_ID
There are also Rake tasks for building the image and running the suite against a container:
bundle exec rake docker:build
bundle exec rake docker:spec
If you're working on PR for this project, create a feature branch off of main
.
This repository follows the Samvera Community Code of Conduct and language recommendations. Please do not create a branch called master
for this repository or as part of your pull request; the branch will either need to be removed or renamed before it can be considered for inclusion in the code base and history of this repository.
Copyright (c) 2011 Chris Beer. See LICENSE.txt for further details.
This software has been developed by and is brought to you by the Samvera community. Learn more at the Samvera website.
Bug reports and pull requests are welcome on GitHub at https://github.com/samvera/rubydora/.