fcrepo_admin 0.1.1 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -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=