common_repository_model 0.0.9 → 0.1.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.
@@ -1,4 +1,5 @@
1
1
  require "common_repository_model/version"
2
+ require "common_repository_model/exceptions"
2
3
 
3
4
  module CommonRepositoryModel
4
5
  # Your code goes here...
@@ -0,0 +1,10 @@
1
+ require 'active_fedora'
2
+ module CommonRepositoryModel
3
+ class ObjectNotFoundError < ActiveFedora::ObjectNotFoundError
4
+ attr_reader :original_exception
5
+ def initialize(message, original_exception = nil)
6
+ super(message)
7
+ @original_exception = original_exception || self
8
+ end
9
+ end
10
+ end
@@ -1,24 +1,22 @@
1
1
  require 'active_fedora'
2
2
  require 'active_model_serializers'
3
3
  require_relative './persistence_base_serializer'
4
+ require_relative './exceptions'
4
5
  module CommonRepositoryModel
5
- class ObjectNotFoundError < ActiveFedora::ObjectNotFoundError
6
- end
7
-
8
6
  class PersistenceBase < ActiveFedora::Base
9
7
  include ActiveModel::SerializerSupport
10
8
  def active_model_serializer
11
9
  "#{self.class}Serializer".constantize
12
10
  end
13
11
 
14
- class_attribute :attributes_for_json
15
- self.attributes_for_json = []
16
-
17
- def self.register_attribute(attribute_name, options = {})
18
- delegate(attribute_name, options)
19
- self.attributes_for_json ||= []
20
- self.attributes_for_json += [attribute_name]
12
+ def self.find(*args,&block)
13
+ super
14
+ rescue RSolr::Error::Http => e
15
+ raise CommonRepositoryModel::ObjectNotFoundError.new(
16
+ "#{self}.find(#{args.inspect}) had a SOLR error.", e
17
+ )
18
+ rescue ActiveFedora::ObjectNotFoundError => e
19
+ raise CommonRepositoryModel::ObjectNotFoundError.new(e.message, e)
21
20
  end
22
-
23
21
  end
24
22
  end
@@ -1,3 +1,3 @@
1
1
  module CommonRepositoryModel
2
- VERSION = "0.0.9"
2
+ VERSION = "0.1.0"
3
3
  end
@@ -1,8 +1,8 @@
1
1
  require 'rails/generators'
2
2
 
3
3
  class CommonRepositoryModel::CollectionGenerator < Rails::Generators::NamedBase
4
+ check_class_collision
4
5
  source_root File.expand_path('../templates', __FILE__)
5
- argument :attributes, :type => :array, :default => [], :banner => "field:type field:type"
6
6
  class_option :test_dir, :type => :string, :default => "spec/factories", :desc => "The directory where the factories should go"
7
7
 
8
8
  def create_collection
@@ -1,4 +1,19 @@
1
1
  namespace :common_repository_model do
2
+ task :configure_hydra_jetty do
3
+ require 'fileutils'
4
+ path_to_hydra_jetty_project = "../hydra-jetty"
5
+
6
+ ['solr/test-core','solr/development-core'].each do |subdir|
7
+ FileUtils.cp(
8
+ 'config/schema.xml',
9
+ File.join(path_to_hydra_jetty_project, subdir, 'conf/schema.xml')
10
+ )
11
+ FileUtils.cp(
12
+ 'config/solrconfig.xml',
13
+ File.join(path_to_hydra_jetty_project, subdir, 'conf/solrconfig.xml')
14
+ )
15
+ end
16
+ end
2
17
  task :prompt_for_area => :environment do
3
18
  require 'highline'
4
19
  highline = HighLine.new
@@ -24,6 +24,7 @@ describe CommonRepositoryModel::Data do
24
24
  it 'should have content versions' do
25
25
  subject.content = file_1
26
26
  subject.save
27
+ file_1.reopen(file_1.path,'r')
27
28
  subject.content.content.must_equal file_1.read
28
29
  subject.content = file_2
29
30
  subject.save
@@ -31,21 +32,21 @@ describe CommonRepositoryModel::Data do
31
32
  subject.content.versions.count.must_equal 2
32
33
  end
33
34
 
34
- it 'should save' do
35
- with_persisted_area(collection.name_of_area_to_assign) do |area|
35
+ # it 'should save' do
36
+ # with_persisted_area(collection.name_of_area_to_assign) do |area|
36
37
 
37
- # Before we can add a collection, the containing object
38
- # must be saved
39
- collection.save!
40
- subject.collection = collection
41
- subject.save!
38
+ # # Before we can add a collection, the containing object
39
+ # # must be saved
40
+ # collection.save!
41
+ # subject.collection = collection
42
+ # subject.save!
42
43
 
43
- @subject = subject.class.find(subject.pid)
44
+ # @subject = subject.class.find(subject.pid)
44
45
 
45
- assert_rels_ext(@subject, :is_part_of, [collection])
46
- assert_active_fedora_belongs_to(@subject, :collection, collection)
46
+ # assert_rels_ext(@subject, :is_part_of, [collection])
47
+ # assert_active_fedora_belongs_to(@subject, :collection, collection)
47
48
 
48
- end
49
- end
49
+ # end
50
+ # end
50
51
  end
51
52
  end
@@ -5,4 +5,17 @@ describe CommonRepositoryModel::PersistenceBase do
5
5
 
6
6
  subject { CommonRepositoryModel::PersistenceBase.new }
7
7
 
8
+ describe '.find' do
9
+ it 'should handle find with missing parameter' do
10
+ lambda {
11
+ subject.class.find(nil)
12
+ }.must_raise(CommonRepositoryModel::ObjectNotFoundError)
13
+ end
14
+
15
+ it 'should handle find with invalid PID' do
16
+ lambda {
17
+ subject.class.find('-1')
18
+ }.must_raise(CommonRepositoryModel::ObjectNotFoundError)
19
+ end
20
+ end
8
21
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: common_repository_model
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.9
4
+ version: 0.1.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-11-29 00:00:00.000000000 Z
12
+ date: 2012-12-11 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: activesupport
@@ -76,30 +76,30 @@ dependencies:
76
76
  - !ruby/object:Gem::Version
77
77
  version: '0'
78
78
  - !ruby/object:Gem::Dependency
79
- name: minitest
79
+ name: active-fedora
80
80
  requirement: !ruby/object:Gem::Requirement
81
81
  none: false
82
82
  requirements:
83
- - - ! '>='
83
+ - - '='
84
84
  - !ruby/object:Gem::Version
85
- version: '0'
85
+ version: 5.2.0
86
86
  type: :runtime
87
87
  prerelease: false
88
88
  version_requirements: !ruby/object:Gem::Requirement
89
89
  none: false
90
90
  requirements:
91
- - - ! '>='
91
+ - - '='
92
92
  - !ruby/object:Gem::Version
93
- version: '0'
93
+ version: 5.2.0
94
94
  - !ruby/object:Gem::Dependency
95
- name: minitest-matchers
95
+ name: minitest
96
96
  requirement: !ruby/object:Gem::Requirement
97
97
  none: false
98
98
  requirements:
99
99
  - - ! '>='
100
100
  - !ruby/object:Gem::Version
101
101
  version: '0'
102
- type: :runtime
102
+ type: :development
103
103
  prerelease: false
104
104
  version_requirements: !ruby/object:Gem::Requirement
105
105
  none: false
@@ -108,21 +108,21 @@ dependencies:
108
108
  - !ruby/object:Gem::Version
109
109
  version: '0'
110
110
  - !ruby/object:Gem::Dependency
111
- name: active-fedora
111
+ name: minitest-matchers
112
112
  requirement: !ruby/object:Gem::Requirement
113
113
  none: false
114
114
  requirements:
115
- - - '='
115
+ - - ! '>='
116
116
  - !ruby/object:Gem::Version
117
- version: 5.0.0.rc3
118
- type: :runtime
117
+ version: '0'
118
+ type: :development
119
119
  prerelease: false
120
120
  version_requirements: !ruby/object:Gem::Requirement
121
121
  none: false
122
122
  requirements:
123
- - - '='
123
+ - - ! '>='
124
124
  - !ruby/object:Gem::Version
125
- version: 5.0.0.rc3
125
+ version: '0'
126
126
  - !ruby/object:Gem::Dependency
127
127
  name: factory_girl
128
128
  requirement: !ruby/object:Gem::Requirement
@@ -131,7 +131,7 @@ dependencies:
131
131
  - - ! '>='
132
132
  - !ruby/object:Gem::Version
133
133
  version: '0'
134
- type: :runtime
134
+ type: :development
135
135
  prerelease: false
136
136
  version_requirements: !ruby/object:Gem::Requirement
137
137
  none: false
@@ -154,6 +154,7 @@ files:
154
154
  - Rakefile
155
155
  - common_repository_model.gemspec
156
156
  - config/README.md
157
+ - config/schema.xml
157
158
  - config/solrconfig.xml
158
159
  - lib/common_repository_model.rb
159
160
  - lib/common_repository_model/area.rb
@@ -162,6 +163,7 @@ files:
162
163
  - lib/common_repository_model/collection_serializer.rb
163
164
  - lib/common_repository_model/data.rb
164
165
  - lib/common_repository_model/data_serializer.rb
166
+ - lib/common_repository_model/exceptions.rb
165
167
  - lib/common_repository_model/file_datastream.rb
166
168
  - lib/common_repository_model/persistence_base.rb
167
169
  - lib/common_repository_model/persistence_base_serializer.rb