couch_potato-extensions 0.0.6 → 0.0.7

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.
@@ -2,9 +2,10 @@ require File.expand_path(File.dirname(__FILE__) + "/extensions/persistence")
2
2
  require File.expand_path(File.dirname(__FILE__) + "/extensions/encryption")
3
3
  require File.expand_path(File.dirname(__FILE__) + "/extensions/encrypted_property")
4
4
  require File.expand_path(File.dirname(__FILE__) + "/extensions/encrypted_view_spec")
5
+ require File.expand_path(File.dirname(__FILE__) + "/extensions/attachments")
5
6
 
6
7
  module CouchPotato
7
8
  module Extensions
8
- VERSION = '0.0.6'
9
+ VERSION = '0.0.7'
9
10
  end
10
- end
11
+ end
@@ -0,0 +1,16 @@
1
+ module CouchPotato
2
+ module Extensions
3
+ module Attachments
4
+ def attachment(name)
5
+ if not new?
6
+ begin
7
+ CouchPotato.database.send(:database).fetch_attachment(id, name)
8
+ rescue RestClient::ResourceNotFound
9
+ end
10
+ end
11
+ end
12
+ end
13
+ end
14
+ end
15
+
16
+ CouchPotato::Persistence.send(:include, CouchPotato::Extensions::Attachments)
@@ -0,0 +1,31 @@
1
+ require File.expand_path(File.dirname(__FILE__) + '/spec_helper')
2
+
3
+ describe CouchPotato::Extensions::Attachments do
4
+ class Attachment
5
+ include CouchPotato::Persistence
6
+ end
7
+
8
+ it "should add an accessor for attachments" do
9
+ Attachment.new.respond_to?(:attachment).should == true
10
+ end
11
+
12
+ it "should fetch the attachment when available" do
13
+ attachment = Attachment.new
14
+ attachment._attachments['pdf'] = {'data' => 'invoice', 'content_type' => 'application/pdf'}
15
+ CouchPotato.database.save(attachment)
16
+ attachment.attachment('pdf').should == 'invoice'
17
+ end
18
+
19
+ it "should not raise an error when the record is not persisted yet" do
20
+ attachment = Attachment.new
21
+ lambda {
22
+ attachment.attachment('pdf').should == nil
23
+ }.should_not raise_error
24
+ end
25
+
26
+ it "should return nil when the attachment is not available" do
27
+ attachment = Attachment.new
28
+ CouchPotato.database.save(attachment)
29
+ attachment.attachment('pdf').should == nil
30
+ end
31
+ end
@@ -14,4 +14,5 @@ recreate_db
14
14
  require 'couch_potato/extensions/encryption'
15
15
  require 'couch_potato/extensions/encrypted_property'
16
16
  require 'couch_potato/extensions/persistence'
17
- require 'couch_potato/extensions/encrypted_view_spec'
17
+ require 'couch_potato/extensions/encrypted_view_spec'
18
+ require 'couch_potato/extensions/attachments'
metadata CHANGED
@@ -1,7 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: couch_potato-extensions
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.6
4
+ hash: 17
5
+ prerelease: false
6
+ segments:
7
+ - 0
8
+ - 0
9
+ - 7
10
+ version: 0.0.7
5
11
  platform: ruby
6
12
  authors:
7
13
  - Mathias Meyer
@@ -9,39 +15,53 @@ autorequire:
9
15
  bindir: bin
10
16
  cert_chain: []
11
17
 
12
- date: 2010-04-26 00:00:00 +02:00
18
+ date: 2010-07-15 00:00:00 +02:00
13
19
  default_executable:
14
20
  dependencies:
15
21
  - !ruby/object:Gem::Dependency
16
22
  name: couch_potato
17
- type: :runtime
18
- version_requirement:
19
- version_requirements: !ruby/object:Gem::Requirement
23
+ prerelease: false
24
+ requirement: &id001 !ruby/object:Gem::Requirement
25
+ none: false
20
26
  requirements:
21
27
  - - ">="
22
28
  - !ruby/object:Gem::Version
29
+ hash: 3
30
+ segments:
31
+ - 0
23
32
  version: "0"
24
- version:
33
+ type: :runtime
34
+ version_requirements: *id001
25
35
  - !ruby/object:Gem::Dependency
26
36
  name: ezcrypto
27
- type: :runtime
28
- version_requirement:
29
- version_requirements: !ruby/object:Gem::Requirement
37
+ prerelease: false
38
+ requirement: &id002 !ruby/object:Gem::Requirement
39
+ none: false
30
40
  requirements:
31
41
  - - ">="
32
42
  - !ruby/object:Gem::Version
43
+ hash: 3
44
+ segments:
45
+ - 0
33
46
  version: "0"
34
- version:
47
+ type: :runtime
48
+ version_requirements: *id002
35
49
  - !ruby/object:Gem::Dependency
36
50
  name: rspec
37
- type: :development
38
- version_requirement:
39
- version_requirements: !ruby/object:Gem::Requirement
51
+ prerelease: false
52
+ requirement: &id003 !ruby/object:Gem::Requirement
53
+ none: false
40
54
  requirements:
41
55
  - - ~>
42
56
  - !ruby/object:Gem::Version
57
+ hash: 13
58
+ segments:
59
+ - 1
60
+ - 2
61
+ - 9
43
62
  version: 1.2.9
44
- version:
63
+ type: :development
64
+ version_requirements: *id003
45
65
  description: See summary, it says it all, trust me.
46
66
  email: meyer@paperplanes.de
47
67
  executables: []
@@ -52,11 +72,13 @@ extra_rdoc_files:
52
72
  - README.md
53
73
  files:
54
74
  - Rakefile
75
+ - lib/couch_potato/extensions/attachments.rb
55
76
  - lib/couch_potato/extensions/encrypted_property.rb
56
77
  - lib/couch_potato/extensions/encrypted_view_spec.rb
57
78
  - lib/couch_potato/extensions/encryption.rb
58
79
  - lib/couch_potato/extensions/persistence.rb
59
80
  - lib/couch_potato/extensions.rb
81
+ - spec/attachments_spec.rb
60
82
  - spec/encrypted_property_spec.rb
61
83
  - spec/encrypted_view_spec.rb
62
84
  - spec/spec_helper.rb
@@ -71,21 +93,27 @@ rdoc_options:
71
93
  require_paths:
72
94
  - lib
73
95
  required_ruby_version: !ruby/object:Gem::Requirement
96
+ none: false
74
97
  requirements:
75
98
  - - ">="
76
99
  - !ruby/object:Gem::Version
100
+ hash: 3
101
+ segments:
102
+ - 0
77
103
  version: "0"
78
- version:
79
104
  required_rubygems_version: !ruby/object:Gem::Requirement
105
+ none: false
80
106
  requirements:
81
107
  - - ">="
82
108
  - !ruby/object:Gem::Version
109
+ hash: 3
110
+ segments:
111
+ - 0
83
112
  version: "0"
84
- version:
85
113
  requirements: []
86
114
 
87
115
  rubyforge_project:
88
- rubygems_version: 1.3.5
116
+ rubygems_version: 1.3.7
89
117
  signing_key:
90
118
  specification_version: 3
91
119
  summary: Some extensions for CouchPotato, because more awesome is always a good thing.