activefolder 1.2.0 → 1.3.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: ee261953e4e86f4349086fc0315741789cb67a0b
4
- data.tar.gz: b7daa944e0d7daf70dc09215d2124084c0d3cae4
3
+ metadata.gz: 3d62913117ae2356b606833effb2f238fde867be
4
+ data.tar.gz: b2b8b16664a72a09cfd4ca888896f3e4b55e430a
5
5
  SHA512:
6
- metadata.gz: 592be8251b4564155fec2f6c8aa6c6097f2924d9c92afc7269ce224a4282fc6bcaf4a09c3f3d673074a7297d91b6cf71f5be20e14ece85196ec1b8d2bb0bffb3
7
- data.tar.gz: e6436be0df0059d1ac8823f8c9a4fcbf5bf720b093d0d335a300b650180f7a0e72f574478089c23bf6fb759f677b372eb679f74d65c93edbd8f10757db9cdc75
6
+ metadata.gz: ea5fd0f0c447fa6dd178cced16eb77b7cec0b2dee4e17346d2420dea4015dee5d71864edfcbd5c1bcdf3c93743a113314679825137f32ce66421a6956afb931e
7
+ data.tar.gz: c1882663f77068e85d0ab25a90a65d83deea7d79a1d802d921dedf4f8b4fbecef288b9db77f48995d64b03ba9e9a957d5ca818b28d0b8c9486faee7030d1eee4
@@ -4,5 +4,8 @@ module ActiveFolder
4
4
  module Model
5
5
  class MissingAttributeError < Error; end
6
6
  class TypeError < Error; end
7
+
8
+ class DuplicateError < Error; end
9
+ class NotFoundError < Error; end
7
10
  end
8
11
  end
@@ -1,4 +1,5 @@
1
1
  require 'activefolder/model/traits/enumeration'
2
+ require 'activefolder/model/errors'
2
3
 
3
4
  module ActiveFolder
4
5
  module Model
@@ -19,6 +20,14 @@ module ActiveFolder
19
20
  instance.save; instance
20
21
  end
21
22
 
23
+ def create!(args, &block)
24
+ if find args[:name]
25
+ raise DuplicateError.new args[:name]
26
+ end
27
+
28
+ create(args, &block)
29
+ end
30
+
22
31
  def destroy_all
23
32
  all.each { |element| element.destroy }
24
33
  end
@@ -11,6 +11,10 @@ module ActiveFolder
11
11
  results.count < 2 ? results.first : results
12
12
  end
13
13
 
14
+ def find!(name)
15
+ find(name) || (raise NotFoundError.new name)
16
+ end
17
+
14
18
  def all(name = '*')
15
19
  query_suffix = File.join(model_name, name)
16
20
  query = File.join(model_base_dir, '**', query_suffix)
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: activefolder
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.2.0
4
+ version: 1.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ben Thorner
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-01-04 00:00:00.000000000 Z
11
+ date: 2016-01-05 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport