paperclip-fedora 0.1.0 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
data/README.md CHANGED
@@ -5,10 +5,36 @@ Paperclip-Fedora uses Rubydora to extend the storage options of Paperclip to use
5
5
 
6
6
  ## Installation
7
7
 
8
- TODO: Tell how to install this thing!
8
+ To use, require the gem in your Gemfile:
9
9
 
10
- ## Copyright
10
+ `gem 'paperclip-fedora'`
11
11
 
12
- Copyright (c) 2011 Jared Sartin. See LICENSE for
13
- further details.
12
+ To specify Fedora Commons as your storage location, add the storage option to your
13
+ has_attachment:
14
14
 
15
+ `has_attached_file :content, :storage => :Fedora`
16
+
17
+ For server connection options, you should have a file titled paperclip_fedora.yml in your
18
+ /config folder. There is a nifty rake task to put the yaml file there for you:
19
+
20
+ `rake paperclip:fedora:setup`
21
+
22
+ After that, go edit the yaml file with your server settings per rails environment (They default to a server on the localhost).
23
+
24
+ ## Overview
25
+
26
+ The Fedora Commons storage has very complex ways of connecting data. Currently in
27
+ paperclip-fedora there is no support for complex relationships. The upload creates
28
+ a data object with a datastream per style (such as thumbnails, image sizes, or
29
+ other that you specify), as well as the original upload.
30
+
31
+ ## Todo
32
+
33
+ The object and datastream labels are currently static and not too pretty. Plans to
34
+ make the object label the original filename and the datastreams follow a similar pattern.
35
+
36
+ ## Copyright & Acknowledgements
37
+
38
+ Using Paperclip: https://github.com/thoughtbot/paperclip
39
+
40
+ Using Rubydora: https://github.com/cbeer/rubydora
data/Rakefile CHANGED
@@ -1 +1,3 @@
1
- require "bundler/gem_tasks"
1
+ require 'bundler'
2
+
3
+ Bundler::GemHelper.install_tasks
@@ -0,0 +1,11 @@
1
+ module Paperclip
2
+ module Storage
3
+ module Fedora
4
+ class Railtie < Rails::Railtie
5
+ rake_tasks do
6
+ require "paperclip-fedora/rake"
7
+ end
8
+ end
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,8 @@
1
+ namespace :paperclip do
2
+ namespace :fedora do
3
+ desc "Copy the default configuration to the config folder"
4
+ task :setup => [:environment] do
5
+ Paperclip::Storage::Fedora.setup!
6
+ end
7
+ end
8
+ end
@@ -1,5 +1,5 @@
1
1
  module Paperclip
2
2
  module Fedora
3
- VERSION = "0.1.0"
3
+ VERSION = "0.2.0"
4
4
  end
5
5
  end
@@ -1,13 +1,16 @@
1
1
  require "paperclip-fedora/version"
2
+ require "paperclip-fedora/railtie" if Rails.version >= "3.0"
3
+ require "FileUtils" unless defined?(FileUtils)
2
4
 
3
5
  module Paperclip
4
6
  module Storage
5
7
  module Fedora
8
+ extend self
6
9
  def self.extended(base)
7
10
  require 'rubydora'
8
11
  base.instance_eval do
9
12
  if(!@options[:fedora_config])
10
- @options[:fedora_config] = Rails.root.to_s + "/config/paperclip_fedora.yml"
13
+ @options[:fedora_config] = config_file
11
14
  end
12
15
 
13
16
  @fedora_config = parse_config(@options[:fedora_config])
@@ -38,7 +41,7 @@ module Paperclip
38
41
  ds.file = file
39
42
  ds.dsLabel = "TempFile"
40
43
  ds.save
41
- log("Added #{style} to #{@object_id}")
44
+ log("Added #{style} datastream to #{@object_id}")
42
45
  end
43
46
  @queued_for_write = {}
44
47
  end
@@ -75,6 +78,18 @@ module Paperclip
75
78
  (config[Rails.env] || config).symbolize_keys
76
79
  end
77
80
 
81
+ def setup!
82
+ FileUtils.cp(File.dirname(__FILE__) + "/../config/paperclip_fedora.yml", config_file) unless config?
83
+ end
84
+
85
+ def config_file
86
+ Rails.root.join("config", "paperclip_fedora.yml").to_s
87
+ end
88
+
89
+ def config?
90
+ File.file? config_file
91
+ end
92
+
78
93
  private
79
94
 
80
95
  def find_credentials config
@@ -18,6 +18,7 @@ Gem::Specification.new do |s|
18
18
  s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
19
19
  s.require_paths = ["lib"]
20
20
 
21
- s.add_runtime_dependency "paperclip"
22
- s.add_runtime_dependency "rubydora"
21
+ s.add_dependency "paperclip"
22
+ s.add_dependency "rubydora"
23
+ s.add_development_dependency "rake", "0.9.2"
23
24
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: paperclip-fedora
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.2.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -13,7 +13,7 @@ date: 2011-09-14 00:00:00.000000000Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: paperclip
16
- requirement: &2152403360 !ruby/object:Gem::Requirement
16
+ requirement: &2152442460 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ! '>='
@@ -21,10 +21,10 @@ dependencies:
21
21
  version: '0'
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *2152403360
24
+ version_requirements: *2152442460
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: rubydora
27
- requirement: &2152402940 !ruby/object:Gem::Requirement
27
+ requirement: &2152441900 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
30
  - - ! '>='
@@ -32,7 +32,18 @@ dependencies:
32
32
  version: '0'
33
33
  type: :runtime
34
34
  prerelease: false
35
- version_requirements: *2152402940
35
+ version_requirements: *2152441900
36
+ - !ruby/object:Gem::Dependency
37
+ name: rake
38
+ requirement: &2152441060 !ruby/object:Gem::Requirement
39
+ none: false
40
+ requirements:
41
+ - - =
42
+ - !ruby/object:Gem::Version
43
+ version: 0.9.2
44
+ type: :development
45
+ prerelease: false
46
+ version_requirements: *2152441060
36
47
  description: Adds Fedora Commons storage support for the Paperclip gem.
37
48
  email:
38
49
  - jaredsartin@gmail.com
@@ -46,6 +57,8 @@ files:
46
57
  - Rakefile
47
58
  - config/paperclip_fedora.yml
48
59
  - lib/paperclip-fedora.rb
60
+ - lib/paperclip-fedora/railtie.rb
61
+ - lib/paperclip-fedora/rake.rb
49
62
  - lib/paperclip-fedora/version.rb
50
63
  - paperclip-fedora.gemspec
51
64
  homepage: https://github.com/JaredSartin/paperclip-fedora