fcrepo_admin 0.1.1 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,8 @@
1
+ === 0.2.0
2
+
3
+ * Feature: Datastream content editing.
4
+
5
+ === 0.1.0
6
+
7
+ Initial release to RubyGems.
8
+
@@ -2,28 +2,50 @@ require 'mime/types'
2
2
 
3
3
  module FcrepoAdmin
4
4
  class DatastreamsController < ApplicationController
5
-
5
+
6
6
  include FcrepoAdmin::ControllerBehavior
7
+ # include CanCan::ControllerAdditions
7
8
 
8
9
  TEXT_MIME_TYPES = ['application/xml', 'application/rdf+xml', 'application/json']
9
10
 
10
- before_filter :load_and_authz_object
11
+ before_filter :load_and_authz_object, :only => :index
12
+ before_filter :load_and_authz_datastream, :except => :index
13
+ before_filter :inline_filter, :only => [:show, :edit]
11
14
 
12
15
  def index
13
- # @object loaded and authz'd by before_filter
14
16
  end
15
17
 
16
18
  def show
17
- @datastream = @object.datastreams[params[:id]]
18
- @inline = @datastream.mimeType.start_with?('text/') || TEXT_MIME_TYPES.include?(@datastream.mimeType)
19
19
  end
20
20
 
21
21
  def download
22
- @datastream = @object.datastreams[params[:id]]
23
22
  mimetypes = MIME::Types[@datastream.mimeType]
24
23
  send_data @datastream.content, :disposition => 'attachment', :type => @datastream.mimeType, :filename => "#{@datastream.pid.sub(/:/, '_')}_#{@datastream.dsid}.#{mimetypes.first.extensions.first}"
25
24
  end
26
25
 
26
+ def edit
27
+ end
28
+
29
+ def update
30
+ if params[:file]
31
+ File.open(params[:file], 'rb') do |f|
32
+ # FIXME read in chunks
33
+ @datastream.content = f.read
34
+ end
35
+ else
36
+ @datastream.content = params[:content]
37
+ end
38
+ @object.save
39
+ flash[:notice] = "Datastream content updated."
40
+ redirect_to fcrepo_admin.object_datastream_url(@object, @datastream.dsid)
41
+ end
42
+
43
+ protected
44
+
45
+ def inline_filter
46
+ @inline = @datastream.mimeType.start_with?('text/') || TEXT_MIME_TYPES.include?(@datastream.mimeType)
47
+ end
48
+
27
49
  end
28
50
  end
29
51
 
@@ -0,0 +1,19 @@
1
+ <h1><%= @datastream.pid %></h1>
2
+
3
+ <h3><%= t("fcrepo_admin.datastream.title") %>: <%= @datastream.dsid %></h3>
4
+
5
+ <%= form_tag fcrepo_admin.object_datastream_path(@datastream.pid, @datastream.dsid), :method => :put, :multipart => true do %>
6
+ <% if @inline %>
7
+ <div>
8
+ <%= label_tag "content", t("fcrepo_admin.datastream.edit.content") %>
9
+ <%= text_area_tag "content", @datastream.content, :size => "50x20", :class => "field span9" %>
10
+ </div>
11
+ <% end %>
12
+ <div>
13
+ <%= label_tag "file", t("fcrepo_admin.datastream.edit.file") %>
14
+ <%= file_field_tag "file" %>
15
+ </div>
16
+ <p>
17
+ <%= submit_tag t("fcrepo_admin.datastream.edit.submit"), :confirm => t("fcrepo_admin.datastream.edit.confirm"), :class => "btn btn-primary" %>
18
+ </p>
19
+ <% end %>
@@ -1,22 +1,27 @@
1
1
  <h1><%= @datastream.pid %></h1>
2
2
 
3
- <h3><%= t("fcrepo_admin.datastream.title") %>: <%= @datastream.dsid %></h3>
3
+ <ul class="pull-right nav nav-pills">
4
+ <% if can? :edit, @datastream %>
5
+ <li>
6
+ <%= link_to content_tag(:i, "", :class => "icon-pencil"), fcrepo_admin.edit_object_datastream_path(@datastream.pid, @datastream.dsid) %>
7
+ </li>
8
+ <% end %>
9
+ </ul>
4
10
 
5
- <div class="document">
11
+ <h3><%= t("fcrepo_admin.datastream.title") %>: <%= @datastream.dsid %></h3>
6
12
 
7
- <div class="tabbable">
8
- <ul class="nav nav-tabs">
9
- <li class="active"><a href="#tab1" data-toggle="tab"><%= t("fcrepo_admin.datastream.tabs.content") %></a></li>
10
- <li><a href="#tab2" data-toggle="tab"><%= t("fcrepo_admin.datastream.tabs.profile") %></a></li>
11
- </ul>
12
- <div class="tab-content">
13
- <div class="tab-pane active" id="tab1">
14
- <%= render :partial => 'content', :locals => {:datastream => @datastream, :inline => @inline} %>
15
- </div>
16
- <div class="tab-pane" id="tab2">
17
- <%= render :partial => 'profile', :locals => {:datastream => @datastream} %>
18
- </div>
13
+ <div class="tabbable">
14
+ <ul class="nav nav-tabs">
15
+ <li class="active"><a href="#tab1" data-toggle="tab"><%= t("fcrepo_admin.datastream.tabs.content") %></a></li>
16
+ <li><a href="#tab2" data-toggle="tab"><%= t("fcrepo_admin.datastream.tabs.profile") %></a></li>
17
+ </ul>
18
+ <div class="tab-content">
19
+ <div class="tab-pane active" id="tab1">
20
+ <%= render :partial => 'content', :locals => {:datastream => @datastream, :inline => @inline} %>
21
+ </div>
22
+ <div class="tab-pane" id="tab2">
23
+ <%= render :partial => 'profile', :locals => {:datastream => @datastream} %>
19
24
  </div>
20
25
  </div>
21
-
22
26
  </div>
27
+
@@ -52,4 +52,9 @@ en:
52
52
  dsLocationType: 'Location Type'
53
53
  dsChecksumType: 'Checksum Type'
54
54
  dsChecksum: 'Checksum'
55
+ edit:
56
+ file: 'Upload File'
57
+ content: 'Replace Content'
58
+ confirm: "These changes are not validated and cannot be undone!"
59
+ submit: 'Update Content'
55
60
 
@@ -2,7 +2,7 @@ FcrepoAdmin::Engine.routes.draw do
2
2
 
3
3
  scope :module => "fcrepo_admin" do
4
4
  resources :objects, :only => :show do
5
- resources :datastreams, :only => [:index, :show] do
5
+ resources :datastreams, :only => [:index, :show, :edit, :update] do
6
6
  member do
7
7
  get 'download'
8
8
  end
@@ -20,7 +20,7 @@ Gem::Specification.new do |s|
20
20
  s.files = `git ls-files`.split("\n")
21
21
  s.test_files = `git ls-files -- spec/*`.split("\n")
22
22
 
23
- s.extra_rdoc_files = ["LICENSE", "README.rdoc"]
23
+ s.extra_rdoc_files = ["LICENSE", "README.rdoc", "HISTORY.rdoc"]
24
24
 
25
25
  s.require_paths = ["lib"]
26
26
 
@@ -5,4 +5,5 @@ require 'hydra/head'
5
5
  module FcrepoAdmin
6
6
  autoload :SolrDocumentExtension, 'fcrepo_admin/solr_document_extension'
7
7
  autoload :ControllerBehavior, 'fcrepo_admin/controller_behavior'
8
+ autoload :DatastreamAbility, 'fcrepo_admin/datastream_ability'
8
9
  end
@@ -2,9 +2,32 @@ module FcrepoAdmin
2
2
  module ControllerBehavior
3
3
 
4
4
  def load_and_authz_object
5
+ load_object
6
+ authorize_object
7
+ end
8
+
9
+ def load_object
5
10
  @object = ActiveFedora::Base.find(params[:object_id], :cast => true)
6
- authorize! :read, @object
7
- end
11
+ end
12
+
13
+ def authorize_object
14
+ #authorize_resource :instance_name => 'object'
15
+ authorize! params[:action].to_sym, @object
16
+ end
17
+
18
+ def load_and_authz_datastream
19
+ load_datastream
20
+ authorize_datastream
21
+ end
22
+
23
+ def load_datastream
24
+ load_object
25
+ @datastream = @object.datastreams[params[:id]]
26
+ end
27
+
28
+ def authorize_datastream
29
+ authorize! params[:action].to_sym, @datastream
30
+ end
8
31
 
9
32
  end
10
33
  end
@@ -0,0 +1,17 @@
1
+ require 'cancan'
2
+
3
+ module FcrepoAdmin
4
+ module DatastreamAbility
5
+
6
+ def custom_permissions
7
+ can :read, ActiveFedora::Datastream do |ds|
8
+ test_read(ds.pid)
9
+ end
10
+
11
+ can [:edit, :update, :destroy], ActiveFedora::Datastream do |ds|
12
+ test_edit(ds.pid)
13
+ end
14
+ end
15
+
16
+ end
17
+ end
@@ -1,3 +1,3 @@
1
1
  module FcrepoAdmin
2
- VERSION = "0.1.1"
2
+ VERSION = "0.2.0"
3
3
  end
@@ -5,17 +5,64 @@ shared_examples "a datastream profile view" do
5
5
  end
6
6
 
7
7
  describe FcrepoAdmin::DatastreamsController do
8
- after { object.delete }
8
+ before do
9
+ @object = FactoryGirl.create(:content_model)
10
+ @dsid = "descMetadata"
11
+ end
12
+ after { @object.delete }
9
13
  context "#show" do
10
- let(:object) { FactoryGirl.create(:content_model) }
11
- let(:dsid) { "DC" }
12
- context "profile information" do
13
- subject { get :show, :object_id => object, :id => dsid, :use_route => 'fcrepo_admin' }
14
+ context "browser view" do
15
+ subject { get :show, :object_id => @object, :id => @dsid, :use_route => 'fcrepo_admin' }
14
16
  it { should render_template(:show) }
15
17
  end
16
- context "download content" do
17
- subject { get :show, :object_id => object, :id => dsid, :download => 'true', :use_route => 'fcrepo_admin' }
18
+ context "download" do
19
+ subject { get :show, :object_id => @object, :id => @dsid, :download => 'true', :use_route => 'fcrepo_admin' }
18
20
  it { should be_successful }
19
21
  end
20
22
  end
23
+ context "change methods" do
24
+ let(:user) { FactoryGirl.create(:user) }
25
+ before do
26
+ @object.permissions = [{type: 'user', name: user.email, access: 'edit'}]
27
+ @object.save
28
+ sign_in user
29
+ end
30
+ after { user.delete }
31
+ context "#edit" do
32
+ subject { get :edit, :object_id => @object, :id => @dsid, :use_route => 'fcrepo_admin' }
33
+ it { should render_template(:edit) }
34
+ end
35
+ context "#update" do
36
+ context "content" do
37
+ before do
38
+ @content = <<EOS
39
+ <dc xmlns:dcterms="http://purl.org/dc/terms/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
40
+ <dcterms:title>Altered Test Component</dcterms:title>
41
+ </dc>
42
+ EOS
43
+ put :update, :object_id => @object, :id => @dsid, :content => @content, :use_route => 'fcrepo_admin'
44
+ @object.reload
45
+ end
46
+ it "should update the datastream content and redirect to the show page" do
47
+ @object.title.should == "Altered Test Component"
48
+ # TODO get this to work
49
+ # response.should redirect_to :action => :show, :object_id => @object, :id => @dsid, :use_route => 'fcrepo_admin'
50
+ response.response_code.should == 302
51
+ end
52
+ end
53
+ context "file" do
54
+ before do
55
+ @file = fixture_file_upload('/files/descMetadata.xml', 'text/xml')
56
+ put :update, :object_id => @object, :id => @dsid, :file => @file, :use_route => 'fcrepo_admin'
57
+ @object.reload
58
+ end
59
+ it "should update the datastream content and redirect to the show page" do
60
+ @object.title.should == "Altered Test Component"
61
+ # TODO get this to work
62
+ # response.should redirect_to :action => :show, :object_id => @object, :id => @dsid, :use_route => 'fcrepo_admin'
63
+ response.response_code.should == 302
64
+ end
65
+ end
66
+ end
67
+ end
21
68
  end
@@ -0,0 +1,34 @@
1
+ require 'spec_helper'
2
+
3
+ RSpec.configure do |c|
4
+ Warden.test_mode!
5
+ end
6
+
7
+ describe "datastreams/edit.html.erb" do
8
+ let(:object) { FactoryGirl.create(:content_model) }
9
+ let(:user) { FactoryGirl.create(:user) }
10
+ before {
11
+ object.permissions = [{type: 'user', name: user.email, access: 'edit'}]
12
+ object.save
13
+ login_as(user, :scope => :user, :run_callbacks => false)
14
+ visit fcrepo_admin.edit_object_datastream_path(object, "descMetadata")
15
+ }
16
+ after do
17
+ user.delete
18
+ object.delete
19
+ Warden.test_reset!
20
+ end
21
+ it "should provide an upload form to replace content" do
22
+
23
+ end
24
+ it "should provide a text field to edit/replace text content" do
25
+ fill_in "content", :with => <<EOS
26
+ <dc xmlns:dcterms="http://purl.org/dc/terms/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
27
+ <dcterms:title>Altered Test Component</dcterms:title>
28
+ </dc>
29
+ EOS
30
+ click_button I18n.t("fcrepo_admin.datastream.edit.submit")
31
+ object.reload
32
+ object.title.should == "Altered Test Component"
33
+ end
34
+ end
@@ -1,31 +1,38 @@
1
1
  require 'spec_helper'
2
2
 
3
- shared_examples "a datastream show page" do
3
+ RSpec.configure do |c|
4
+ Warden.test_mode!
5
+ end
6
+
7
+ describe "datastreams/show.html.erb" do
8
+ let!(:object) { FactoryGirl.create(:content_model) }
9
+ let(:dsid) { "descMetadata" }
10
+ before { visit fcrepo_admin.object_datastream_path(object, dsid) }
11
+ after { object.delete }
4
12
  it "should display all attributes of the datastream profile" do
5
13
  object.datastreams[dsid].profile.each do |key, value|
6
- expect(subject).to have_content(I18n.t("fcrepo_admin.datastream.profile.#{key}"))
7
- expect(subject).to have_content(value)
14
+ # TODO use paths
15
+ page.should have_content(I18n.t("fcrepo_admin.datastream.profile.#{key}"))
16
+ page.should have_content(value)
8
17
  end
9
18
  end
10
19
  it "should have a link to download the datastream content" do
11
- expect(subject).to have_link(I18n.t("fcrepo_admin.datastream.download"), :href => fcrepo_admin.download_object_datastream_path(object, dsid))
12
- end
13
- end
14
-
15
- shared_examples "an object having datastream show pages" do
16
- it_behaves_like "a datastream show page" do
17
- let(:dsid) { "DC" }
18
- end
19
- it_behaves_like "a datastream show page" do
20
- let(:dsid) { "RELS-EXT" }
20
+ page.should have_link(I18n.t("fcrepo_admin.datastream.download"), :href => fcrepo_admin.download_object_datastream_path(object, dsid))
21
21
  end
22
- end
23
-
24
- describe "datastreams/show.html.erb" do
25
- subject { page }
26
- before { visit fcrepo_admin.object_datastream_path(object, dsid) }
27
- after { object.delete }
28
- it_behaves_like "an object having datastream show pages" do
29
- let(:object) { FactoryGirl.create(:content_model) }
22
+ context "user can edit" do
23
+ let(:user) { FactoryGirl.create(:user) }
24
+ before do
25
+ object.permissions = [{type: 'user', name: user.email, access: 'edit'}]
26
+ object.save
27
+ login_as(user, :scope => :user, :run_callbacks => false)
28
+ visit fcrepo_admin.object_datastream_path(object, dsid)
29
+ end
30
+ after do
31
+ user.delete
32
+ Warden.test_reset!
33
+ end
34
+ it "should have a link to the edit page" do
35
+ page.should have_link("", :href => fcrepo_admin.edit_object_datastream_path(object, dsid))
36
+ end
30
37
  end
31
38
  end
@@ -1,4 +1,5 @@
1
1
  class Ability
2
2
  include Hydra::Ability
3
3
  include Hydra::PolicyAwareAbility
4
+ include FcrepoAdmin::DatastreamAbility
4
5
  end
@@ -2,6 +2,7 @@ class ContentModel < ActiveFedora::Base
2
2
 
3
3
  has_metadata :name => "descMetadata", :type => ActiveFedora::QualifiedDublinCoreDatastream
4
4
  has_metadata :name => "rightsMetadata", :type => Hydra::Datastream::RightsMetadata
5
+ has_file_datastream :name => "content", :type => ActiveFedora::Datastream
5
6
 
6
7
  delegate :title, :to => "descMetadata", :unique => true
7
8
 
@@ -0,0 +1,3 @@
1
+ <dc xmlns:dcterms="http://purl.org/dc/terms/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
2
+ <dcterms:title>Altered Test Component</dcterms:title>
3
+ </dc>
@@ -41,5 +41,8 @@ RSpec.configure do |config|
41
41
 
42
42
  # Devise helper
43
43
  config.include Devise::TestHelpers, :type => :controller
44
+
45
+ # Warden
46
+ config.include Warden::Test::Helpers
44
47
 
45
48
  end
metadata CHANGED
@@ -1,7 +1,8 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fcrepo_admin
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 0.2.0
5
+ prerelease:
5
6
  platform: ruby
6
7
  authors:
7
8
  - David Chandek-Stark
@@ -11,11 +12,12 @@ authors:
11
12
  autorequire:
12
13
  bindir: bin
13
14
  cert_chain: []
14
- date: 2013-04-11 00:00:00.000000000 Z
15
+ date: 2013-04-12 00:00:00.000000000 Z
15
16
  dependencies:
16
17
  - !ruby/object:Gem::Dependency
17
18
  name: hydra-head
18
19
  requirement: !ruby/object:Gem::Requirement
20
+ none: false
19
21
  requirements:
20
22
  - - '='
21
23
  - !ruby/object:Gem::Version
@@ -23,6 +25,7 @@ dependencies:
23
25
  type: :runtime
24
26
  prerelease: false
25
27
  version_requirements: !ruby/object:Gem::Requirement
28
+ none: false
26
29
  requirements:
27
30
  - - '='
28
31
  - !ruby/object:Gem::Version
@@ -30,6 +33,7 @@ dependencies:
30
33
  - !ruby/object:Gem::Dependency
31
34
  name: blacklight
32
35
  requirement: !ruby/object:Gem::Requirement
36
+ none: false
33
37
  requirements:
34
38
  - - ! '>='
35
39
  - !ruby/object:Gem::Version
@@ -37,6 +41,7 @@ dependencies:
37
41
  type: :runtime
38
42
  prerelease: false
39
43
  version_requirements: !ruby/object:Gem::Requirement
44
+ none: false
40
45
  requirements:
41
46
  - - ! '>='
42
47
  - !ruby/object:Gem::Version
@@ -44,6 +49,7 @@ dependencies:
44
49
  - !ruby/object:Gem::Dependency
45
50
  name: rails
46
51
  requirement: !ruby/object:Gem::Requirement
52
+ none: false
47
53
  requirements:
48
54
  - - ~>
49
55
  - !ruby/object:Gem::Version
@@ -51,6 +57,7 @@ dependencies:
51
57
  type: :runtime
52
58
  prerelease: false
53
59
  version_requirements: !ruby/object:Gem::Requirement
60
+ none: false
54
61
  requirements:
55
62
  - - ~>
56
63
  - !ruby/object:Gem::Version
@@ -58,6 +65,7 @@ dependencies:
58
65
  - !ruby/object:Gem::Dependency
59
66
  name: mime-types
60
67
  requirement: !ruby/object:Gem::Requirement
68
+ none: false
61
69
  requirements:
62
70
  - - ~>
63
71
  - !ruby/object:Gem::Version
@@ -65,6 +73,7 @@ dependencies:
65
73
  type: :runtime
66
74
  prerelease: false
67
75
  version_requirements: !ruby/object:Gem::Requirement
76
+ none: false
68
77
  requirements:
69
78
  - - ~>
70
79
  - !ruby/object:Gem::Version
@@ -72,6 +81,7 @@ dependencies:
72
81
  - !ruby/object:Gem::Dependency
73
82
  name: devise
74
83
  requirement: !ruby/object:Gem::Requirement
84
+ none: false
75
85
  requirements:
76
86
  - - ! '>='
77
87
  - !ruby/object:Gem::Version
@@ -79,6 +89,7 @@ dependencies:
79
89
  type: :development
80
90
  prerelease: false
81
91
  version_requirements: !ruby/object:Gem::Requirement
92
+ none: false
82
93
  requirements:
83
94
  - - ! '>='
84
95
  - !ruby/object:Gem::Version
@@ -86,6 +97,7 @@ dependencies:
86
97
  - !ruby/object:Gem::Dependency
87
98
  name: rspec
88
99
  requirement: !ruby/object:Gem::Requirement
100
+ none: false
89
101
  requirements:
90
102
  - - ! '>='
91
103
  - !ruby/object:Gem::Version
@@ -93,6 +105,7 @@ dependencies:
93
105
  type: :development
94
106
  prerelease: false
95
107
  version_requirements: !ruby/object:Gem::Requirement
108
+ none: false
96
109
  requirements:
97
110
  - - ! '>='
98
111
  - !ruby/object:Gem::Version
@@ -100,6 +113,7 @@ dependencies:
100
113
  - !ruby/object:Gem::Dependency
101
114
  name: rspec-rails
102
115
  requirement: !ruby/object:Gem::Requirement
116
+ none: false
103
117
  requirements:
104
118
  - - ! '>='
105
119
  - !ruby/object:Gem::Version
@@ -107,6 +121,7 @@ dependencies:
107
121
  type: :development
108
122
  prerelease: false
109
123
  version_requirements: !ruby/object:Gem::Requirement
124
+ none: false
110
125
  requirements:
111
126
  - - ! '>='
112
127
  - !ruby/object:Gem::Version
@@ -114,6 +129,7 @@ dependencies:
114
129
  - !ruby/object:Gem::Dependency
115
130
  name: capybara
116
131
  requirement: !ruby/object:Gem::Requirement
132
+ none: false
117
133
  requirements:
118
134
  - - ! '>='
119
135
  - !ruby/object:Gem::Version
@@ -121,6 +137,7 @@ dependencies:
121
137
  type: :development
122
138
  prerelease: false
123
139
  version_requirements: !ruby/object:Gem::Requirement
140
+ none: false
124
141
  requirements:
125
142
  - - ! '>='
126
143
  - !ruby/object:Gem::Version
@@ -128,6 +145,7 @@ dependencies:
128
145
  - !ruby/object:Gem::Dependency
129
146
  name: sqlite3
130
147
  requirement: !ruby/object:Gem::Requirement
148
+ none: false
131
149
  requirements:
132
150
  - - ! '>='
133
151
  - !ruby/object:Gem::Version
@@ -135,6 +153,7 @@ dependencies:
135
153
  type: :development
136
154
  prerelease: false
137
155
  version_requirements: !ruby/object:Gem::Requirement
156
+ none: false
138
157
  requirements:
139
158
  - - ! '>='
140
159
  - !ruby/object:Gem::Version
@@ -142,6 +161,7 @@ dependencies:
142
161
  - !ruby/object:Gem::Dependency
143
162
  name: factory_girl_rails
144
163
  requirement: !ruby/object:Gem::Requirement
164
+ none: false
145
165
  requirements:
146
166
  - - ! '>='
147
167
  - !ruby/object:Gem::Version
@@ -149,6 +169,7 @@ dependencies:
149
169
  type: :development
150
170
  prerelease: false
151
171
  version_requirements: !ruby/object:Gem::Requirement
172
+ none: false
152
173
  requirements:
153
174
  - - ! '>='
154
175
  - !ruby/object:Gem::Version
@@ -156,6 +177,7 @@ dependencies:
156
177
  - !ruby/object:Gem::Dependency
157
178
  name: jettywrapper
158
179
  requirement: !ruby/object:Gem::Requirement
180
+ none: false
159
181
  requirements:
160
182
  - - ! '>='
161
183
  - !ruby/object:Gem::Version
@@ -163,6 +185,7 @@ dependencies:
163
185
  type: :development
164
186
  prerelease: false
165
187
  version_requirements: !ruby/object:Gem::Requirement
188
+ none: false
166
189
  requirements:
167
190
  - - ! '>='
168
191
  - !ruby/object:Gem::Version
@@ -170,6 +193,7 @@ dependencies:
170
193
  - !ruby/object:Gem::Dependency
171
194
  name: jquery-rails
172
195
  requirement: !ruby/object:Gem::Requirement
196
+ none: false
173
197
  requirements:
174
198
  - - ! '>='
175
199
  - !ruby/object:Gem::Version
@@ -177,6 +201,7 @@ dependencies:
177
201
  type: :development
178
202
  prerelease: false
179
203
  version_requirements: !ruby/object:Gem::Requirement
204
+ none: false
180
205
  requirements:
181
206
  - - ! '>='
182
207
  - !ruby/object:Gem::Version
@@ -184,6 +209,7 @@ dependencies:
184
209
  - !ruby/object:Gem::Dependency
185
210
  name: sass-rails
186
211
  requirement: !ruby/object:Gem::Requirement
212
+ none: false
187
213
  requirements:
188
214
  - - ! '>='
189
215
  - !ruby/object:Gem::Version
@@ -191,6 +217,7 @@ dependencies:
191
217
  type: :development
192
218
  prerelease: false
193
219
  version_requirements: !ruby/object:Gem::Requirement
220
+ none: false
194
221
  requirements:
195
222
  - - ! '>='
196
223
  - !ruby/object:Gem::Version
@@ -198,6 +225,7 @@ dependencies:
198
225
  - !ruby/object:Gem::Dependency
199
226
  name: bootstrap-sass
200
227
  requirement: !ruby/object:Gem::Requirement
228
+ none: false
201
229
  requirements:
202
230
  - - ! '>='
203
231
  - !ruby/object:Gem::Version
@@ -205,6 +233,7 @@ dependencies:
205
233
  type: :development
206
234
  prerelease: false
207
235
  version_requirements: !ruby/object:Gem::Requirement
236
+ none: false
208
237
  requirements:
209
238
  - - ! '>='
210
239
  - !ruby/object:Gem::Version
@@ -218,10 +247,12 @@ extensions: []
218
247
  extra_rdoc_files:
219
248
  - LICENSE
220
249
  - README.rdoc
250
+ - HISTORY.rdoc
221
251
  files:
222
252
  - .gitignore
223
253
  - .rspec
224
254
  - Gemfile
255
+ - HISTORY.rdoc
225
256
  - LICENSE
226
257
  - README.rdoc
227
258
  - Rakefile
@@ -237,6 +268,7 @@ files:
237
268
  - app/views/fcrepo_admin/datastreams/_content.html.erb
238
269
  - app/views/fcrepo_admin/datastreams/_datastreams.html
239
270
  - app/views/fcrepo_admin/datastreams/_profile.html.erb
271
+ - app/views/fcrepo_admin/datastreams/edit.html.erb
240
272
  - app/views/fcrepo_admin/datastreams/index.html.erb
241
273
  - app/views/fcrepo_admin/datastreams/show.html.erb
242
274
  - app/views/fcrepo_admin/objects/_more_info.html.erb
@@ -250,6 +282,7 @@ files:
250
282
  - lib/assets/stylesheets/fcrepo_admin/fcrepo_admin.css
251
283
  - lib/fcrepo_admin.rb
252
284
  - lib/fcrepo_admin/controller_behavior.rb
285
+ - lib/fcrepo_admin/datastream_ability.rb
253
286
  - lib/fcrepo_admin/engine.rb
254
287
  - lib/fcrepo_admin/solr_document_extension.rb
255
288
  - lib/fcrepo_admin/version.rb
@@ -262,6 +295,7 @@ files:
262
295
  - spec/factories/user_factories.rb
263
296
  - spec/features/audit_trail/index.html.erb_spec.rb
264
297
  - spec/features/catalog/show.html.erb_spec.rb
298
+ - spec/features/datastreams/edit.html.erb_spec.rb
265
299
  - spec/features/datastreams/show.html.erb_spec.rb
266
300
  - spec/features/objects/show.html.erb_spec.rb
267
301
  - spec/fixtures/auditable.foxml.xml
@@ -312,30 +346,35 @@ files:
312
346
  - spec/internal/public/500.html
313
347
  - spec/internal/public/favicon.ico
314
348
  - spec/internal/script/rails
349
+ - spec/internal/spec/fixtures/files/descMetadata.xml
315
350
  - spec/spec_helper.rb
316
351
  homepage: http://projecthydra.org
317
352
  licenses:
318
353
  - BSD Simplified
319
- metadata: {}
320
354
  post_install_message:
321
355
  rdoc_options: []
322
356
  require_paths:
323
357
  - lib
324
358
  required_ruby_version: !ruby/object:Gem::Requirement
359
+ none: false
325
360
  requirements:
326
361
  - - ! '>='
327
362
  - !ruby/object:Gem::Version
328
363
  version: 1.9.3
329
364
  required_rubygems_version: !ruby/object:Gem::Requirement
365
+ none: false
330
366
  requirements:
331
367
  - - ! '>='
332
368
  - !ruby/object:Gem::Version
333
369
  version: '0'
370
+ segments:
371
+ - 0
372
+ hash: -3734139466657518267
334
373
  requirements: []
335
374
  rubyforge_project:
336
- rubygems_version: 2.0.2
375
+ rubygems_version: 1.8.25
337
376
  signing_key:
338
- specification_version: 4
377
+ specification_version: 3
339
378
  summary: Hydra-based Fedora Commons repository admin tool.
340
379
  test_files:
341
380
  - spec/controllers/audit_trail_controller_spec.rb
@@ -344,6 +383,7 @@ test_files:
344
383
  - spec/factories/user_factories.rb
345
384
  - spec/features/audit_trail/index.html.erb_spec.rb
346
385
  - spec/features/catalog/show.html.erb_spec.rb
386
+ - spec/features/datastreams/edit.html.erb_spec.rb
347
387
  - spec/features/datastreams/show.html.erb_spec.rb
348
388
  - spec/features/objects/show.html.erb_spec.rb
349
389
  - spec/fixtures/auditable.foxml.xml
@@ -394,4 +434,5 @@ test_files:
394
434
  - spec/internal/public/500.html
395
435
  - spec/internal/public/favicon.ico
396
436
  - spec/internal/script/rails
437
+ - spec/internal/spec/fixtures/files/descMetadata.xml
397
438
  - spec/spec_helper.rb
checksums.yaml DELETED
@@ -1,15 +0,0 @@
1
- ---
2
- !binary "U0hBMQ==":
3
- metadata.gz: !binary |-
4
- NGU5YjVmYjc4ZGQ5NDJhZTM1ZTM0MDYyZmU4NzAwMDQ2YWViMjg3Mw==
5
- data.tar.gz: !binary |-
6
- MGE2ZTE3N2VhZmI3ZTBkOTc1ZjQzNGVkZWI0YzdjYjY0MTM3NjVjOA==
7
- !binary "U0hBNTEy":
8
- metadata.gz: !binary |-
9
- NTg5MDI1YTAzZDIxYTZlZGM1YjM4Yjg2NWJjYjZiM2I5ZmI0ZDQ0ZTllMGUw
10
- YzM4ZTJlNDRjMDA2YTIwMjExZTIyZWEyMzIzMDk0NjU2ZmQ2MjkzMzkxMTc5
11
- YzVhNWRmMmJmODgwYzI5N2I1Zjg4YWU2ZGNhN2UxM2IzNWE1Y2M=
12
- data.tar.gz: !binary |-
13
- OGEyMWZlNzliZTY2NTczMWI1NTgwYjc0ZGQxZmJiMDU2Yzc0ZWJmYWExMTFk
14
- YTBlYWE4Yjc3YjQ0YzBmNjI0Zjg5OWE1ZDdlZDlhOGVhZjUzOGEyMDRiZjJi
15
- MDRhOWEzYTkzZDA2Y2Q1OWYxMjA3OTVmNWM5YjlhZWRmYzRmY2E=