{"id":16547541,"url":"https://github.com/hainesr/ruby-ucf","last_synced_at":"2025-04-11T20:11:28.737Z","repository":{"id":59158464,"uuid":"10971506","full_name":"hainesr/ruby-ucf","owner":"hainesr","description":"A Ruby library for working with UCF documents.","archived":false,"fork":false,"pushed_at":"2025-02-14T22:13:49.000Z","size":621,"stargazers_count":3,"open_issues_count":0,"forks_count":1,"subscribers_count":10,"default_branch":"main","last_synced_at":"2025-04-03T04:06:17.443Z","etag":null,"topics":["epub","ruby","ucf","universal-container-format","zip"],"latest_commit_sha":null,"homepage":"http://hainesr.github.io/ruby-ucf/","language":"Ruby","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/hainesr.png","metadata":{"files":{"readme":"ReadMe.rdoc","changelog":"Changes.rdoc","contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null}},"created_at":"2013-06-26T15:26:09.000Z","updated_at":"2023-04-29T07:07:20.000Z","dependencies_parsed_at":"2023-07-15T15:26:36.962Z","dependency_job_id":"b706370b-3a72-44ac-ba7a-c5c7ff273a3c","html_url":"https://github.com/hainesr/ruby-ucf","commit_stats":null,"previous_names":["mygrid/ruby-ucf"],"tags_count":21,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hainesr%2Fruby-ucf","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hainesr%2Fruby-ucf/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hainesr%2Fruby-ucf/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hainesr%2Fruby-ucf/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/hainesr","download_url":"https://codeload.github.com/hainesr/ruby-ucf/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248473127,"owners_count":21109628,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["epub","ruby","ucf","universal-container-format","zip"],"created_at":"2024-10-11T19:14:39.353Z","updated_at":"2025-04-11T20:11:28.698Z","avatar_url":"https://github.com/hainesr.png","language":"Ruby","funding_links":[],"categories":[],"sub_categories":[],"readme":"= Universal Container Format (UCF) Ruby Library\n\nAuthors::     Robert Haines\nContact::     mailto:support@mygrid.org.uk\nHomepage::    http://mygrid.github.io/ruby-ucf\nSource code:: https://github.com/myGrid/ruby-ucf\nLicence::     BSD (See Licence file or http://www.opensource.org/licenses/bsd-license.php)\nCopyright::   (c) 2013-2015 The University of Manchester, UK\n\n{\u003cimg src=\"https://badge.fury.io/rb/ucf.svg\" alt=\"Gem Version\" /\u003e}[http://badge.fury.io/rb/ucf]\n{\u003cimg src=\"https://codeclimate.com/github/myGrid/ruby-ucf.svg\" /\u003e}[https://codeclimate.com/github/myGrid/ruby-ucf]\n{\u003cimg src=\"https://travis-ci.org/myGrid/ruby-ucf.svg?branch=master\" alt=\"Build Status\" /\u003e}[https://travis-ci.org/myGrid/ruby-ucf]\n{\u003cimg src=\"https://coveralls.io/repos/myGrid/ruby-ucf/badge.svg?branch=master\" alt=\"Coverage Status\" /\u003e}[https://coveralls.io/r/myGrid/ruby-ucf?branch=master]\n\n== Synopsis\n\nThis is a Ruby library for working with UCF documents. See\n{the specification}[https://learn.adobe.com/wiki/display/PDFNAV/Universal+Container+Format]\nfor more details. UCF is a type of EPUB and very similar to the\n{EPUB Open Container Format (OCF)}[http://www.idpf.org/epub/30/spec/epub30-ocf.html].\n\nMost of this library's API is provided by the underlying\n{zip-container gem}[https://rubygems.org/gems/zip-container] so you will need\nto consult\n{that documentation as well}[http://mygrid.github.io/ruby-zip-container/] in\naddition to this.\n\nThere are some examples of how to use the library provided in the examples\ndirectory. See the contents of the tests directory for even more.\n\nWe follow the principles of {Semantic Versioning}[http://semver.org/] for our\nreleases.\n\n== Files in the META-INF directory\n\nThe UCF specification requires that files in the META-INF directory are\nvalidated against a schema if they are present. If the\n{nokogiri gem}[https://rubygems.org/gems/nokogiri] is available then this\nlibrary will use it to validate the contents of the \u003ctt\u003econtainer.xml\u003c/tt\u003e and\n\u003ctt\u003emanifest.xml\u003c/tt\u003e files. This functionality is not enforced on the user in\ncase they are not using the META-INF directory and so would not need the extra\ndependency on nokogiri.\n\n== Backwards incompatibility warning!\n\nThe UCF::Container class is deprecated in favour of UCF::File. These classes\nare functionally identical; it is just a change of name. The new name brings\nthis API into closer alignment with the underlying\n{zip-container API}[http://mygrid.github.io/ruby-zip-container/]\n(ZipContainer::File).\n\nUCF::Container is not available from version 1.0.0 onwards.\n\n== Usage\n\nThis library has two entry points.\n\nThe main UCF::File class is a specialization of\n{ZipContainer::File}[http://mygrid.github.io/ruby-zip-container/3.0.0/ZipContainer/File.html]\nwhich largely mimics the rubyzip\n{Zip::File}[http://www.rubydoc.info/gems/rubyzip/1.1.6/Zip/File] and\n{Zip::FileSystem}[http://www.rubydoc.info/gems/rubyzip/1.1.6/Zip/FileSystem]\nAPIs.\n\nThe UCF::Dir class is a based upon the\n{ZipContainer::Dir}[http://mygrid.github.io/ruby-zip-container/3.0.0/ZipContainer/Dir.html]\nclass which mimics, where possible, the core ruby\n{Dir API}[http://ruby-doc.org/core-1.9.3/Dir.html].\n\nThere are some examples of how to use the library provided in the examples\ndirectory. See the contents of the tests directory for even more.\n\n== What this library can not do yet\n\nThe basic requirements of a UCF document are all implemented but there are a\nnumber of optional features that are not yet provided.\n\n* Memory resident UCF documents. Presently all operations are performed on\n  documents that are resident on disk as the underlying\n  {rubyzip library}[https://github.com/aussiegeek/rubyzip] currently\n  {cannot do anything else}[https://github.com/aussiegeek/rubyzip/issues/74].\n* Validation of all file contents in the META-INF directory. The\n  \u003ctt\u003econtainer.xml\u003c/tt\u003e and \u003ctt\u003emanifest.xml\u003c/tt\u003e files are validated but\n  others are not yet.\n* Digital signatures (this feature has been deferred until a future revision\n  of the UCF specification. It will be supported by this gem when it is added\n  to the specification).\n* Encryption (this feature has been deferred until a future revision of the\n  UCF specification. It will be supported by this gem when it is added to the\n  specification).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhainesr%2Fruby-ucf","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhainesr%2Fruby-ucf","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhainesr%2Fruby-ucf/lists"}