directwave 0.0.1

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.
Files changed (47) hide show
  1. data/.gitignore +4 -0
  2. data/.rspec +1 -0
  3. data/CHANGELOG.md +3 -0
  4. data/Gemfile +4 -0
  5. data/LICENCE +9 -0
  6. data/README.md +318 -0
  7. data/Rakefile +20 -0
  8. data/directwave.gemspec +30 -0
  9. data/lib/directwave/mounter.rb +95 -0
  10. data/lib/directwave/orm/activerecord.rb +49 -0
  11. data/lib/directwave/railtie.rb +9 -0
  12. data/lib/directwave/uploader/accreditation.rb +63 -0
  13. data/lib/directwave/uploader/configuration.rb +68 -0
  14. data/lib/directwave/uploader/connection.rb +36 -0
  15. data/lib/directwave/uploader/paths.rb +51 -0
  16. data/lib/directwave/uploader/uploader.rb +54 -0
  17. data/lib/directwave/uploader/versions.rb +149 -0
  18. data/lib/directwave/version.rb +3 -0
  19. data/lib/directwave.rb +29 -0
  20. data/lib/generators/directwave_generator.rb +8 -0
  21. data/lib/generators/templates/directwave.rb +33 -0
  22. data/spec/.DS_Store +0 -0
  23. data/spec/directwave/.DS_Store +0 -0
  24. data/spec/directwave/fixtures/Uppercase.jpg +1 -0
  25. data/spec/directwave/fixtures/bork.ttxt +1 -0
  26. data/spec/directwave/fixtures/bork.txt +1 -0
  27. data/spec/directwave/fixtures/bork.txtt +1 -0
  28. data/spec/directwave/fixtures/case.JPG +1 -0
  29. data/spec/directwave/fixtures/landscape.jpg +0 -0
  30. data/spec/directwave/fixtures/new.jpeg +1 -0
  31. data/spec/directwave/fixtures/new.txt +1 -0
  32. data/spec/directwave/fixtures/old.jpeg +1 -0
  33. data/spec/directwave/fixtures/old.txt +1 -0
  34. data/spec/directwave/fixtures/portrait.jpg +0 -0
  35. data/spec/directwave/fixtures/sponsored.doc +1 -0
  36. data/spec/directwave/fixtures/test.jpeg +1 -0
  37. data/spec/directwave/fixtures/test.jpg +1 -0
  38. data/spec/directwave/fog.rb +0 -0
  39. data/spec/directwave/orm/active_record_spec.rb +8 -0
  40. data/spec/directwave/uploader/accreditation_spec.rb +42 -0
  41. data/spec/directwave/uploader/configuration_spec.rb +69 -0
  42. data/spec/directwave/uploader/connection_spec.rb +11 -0
  43. data/spec/directwave/uploader/paths_spec.rb +76 -0
  44. data/spec/directwave/uploader/uploader_spec.rb +33 -0
  45. data/spec/directwave/uploader/versions_spec.rb +88 -0
  46. data/spec/spec_helper.rb +19 -0
  47. metadata +200 -0
@@ -0,0 +1,88 @@
1
+ require "spec_helper"
2
+
3
+ describe DirectWave::Uploader::Versions::Version do
4
+ before do
5
+ @uploader_class = Class.new(DirectWave::Uploader::Base)
6
+ @uploader = @uploader_class.new
7
+ @uploader.stub(:original_filename).and_return("guid/foo.bar")
8
+ @uploader_class.version :foo
9
+ end
10
+
11
+ describe '#filename' do
12
+ it "by default should return 'guid/foo-bar.bar" do
13
+ @uploader.foo.filename.should == "guid/foo-foo.bar"
14
+ end
15
+ end
16
+
17
+ describe '#url' do
18
+ it "not tested yet"
19
+ end
20
+
21
+ describe '#key' do
22
+ before { @uploader.stub(:upload_dir).and_return("uploads") }
23
+
24
+ it "should return 'foo-foo" do
25
+ @uploader.foo.key.should == "uploads/guid/foo-foo.bar"
26
+ end
27
+ end
28
+
29
+ describe '#file' do
30
+ it "not tested yet"
31
+ end
32
+
33
+ describe '#process' do
34
+ it "not tested yet"
35
+ end
36
+
37
+ describe '#delete' do
38
+ it "not tested yet"
39
+ end
40
+ end
41
+
42
+ describe DirectWave::Uploader::Versions do
43
+ before do
44
+ @uploader_class = Class.new(DirectWave::Uploader::Base)
45
+ @uploader = @uploader_class.new
46
+ end
47
+
48
+ describe '.version' do
49
+ it "should add it to .versions" do
50
+ @uploader_class.version :foo
51
+ @uploader_class.versions[:foo].should be_a(Class)
52
+ @uploader_class.versions[:foo].ancestors.should include(DirectWave::Uploader::Versions::Version)
53
+ end
54
+
55
+ it "should add an accessor which returns the version and add it to #versions which returns the version" do
56
+ @uploader_class.version :foo
57
+ @uploader.foo.should == @uploader.versions[:foo]
58
+ end
59
+
60
+ it "should apply any overrides given in a block" do
61
+ @uploader_class.version :foo do
62
+ def extname
63
+ ".bar"
64
+ end
65
+ end
66
+ @uploader.foo.extname.should == ".bar"
67
+ end
68
+
69
+ it "should reopen the same class when called multiple times" do
70
+ @uploader_class.version :foo do
71
+ def self.bar
72
+ "bar"
73
+ end
74
+ end
75
+ @uploader_class.version :foo do
76
+ def self.qux
77
+ "qux"
78
+ end
79
+ end
80
+ @uploader_class.versions[:foo].bar.should == "bar"
81
+ @uploader_class.versions[:foo].qux.should == "qux"
82
+ end
83
+ end
84
+
85
+ describe '.versions' do
86
+ it "not tested yet"
87
+ end
88
+ end
@@ -0,0 +1,19 @@
1
+ require "directwave"
2
+ require "aws-sdk"
3
+
4
+ # Fog.mock!
5
+
6
+ S3_CREDENTIALS = {
7
+ access_key_id: "AKIAI6L5SAFZPZRND7YQ",
8
+ secret_access_key: "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",
9
+ bucket: "rspec",
10
+ access_policy: :public_read
11
+ }
12
+
13
+ DirectWave.configure do |config|
14
+ config.reset_config
15
+ config.s3_access_key_id = S3_CREDENTIALS[:access_key_id]
16
+ config.s3_secret_access_key = S3_CREDENTIALS[:secret_access_key]
17
+ config.s3_bucket = S3_CREDENTIALS[:bucket]
18
+ config.s3_access_policy = :public_read
19
+ end
metadata ADDED
@@ -0,0 +1,200 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: directwave
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ prerelease:
6
+ platform: ruby
7
+ authors:
8
+ - Dima Kochnev
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2012-01-16 00:00:00.000000000Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: activesupport
16
+ requirement: &70271860063960 !ruby/object:Gem::Requirement
17
+ none: false
18
+ requirements:
19
+ - - ~>
20
+ - !ruby/object:Gem::Version
21
+ version: '3.1'
22
+ type: :runtime
23
+ prerelease: false
24
+ version_requirements: *70271860063960
25
+ - !ruby/object:Gem::Dependency
26
+ name: uuid
27
+ requirement: &70271860063360 !ruby/object:Gem::Requirement
28
+ none: false
29
+ requirements:
30
+ - - ! '>='
31
+ - !ruby/object:Gem::Version
32
+ version: '0'
33
+ type: :runtime
34
+ prerelease: false
35
+ version_requirements: *70271860063360
36
+ - !ruby/object:Gem::Dependency
37
+ name: aws-sdk
38
+ requirement: &70271860062320 !ruby/object:Gem::Requirement
39
+ none: false
40
+ requirements:
41
+ - - ! '>='
42
+ - !ruby/object:Gem::Version
43
+ version: '0'
44
+ type: :runtime
45
+ prerelease: false
46
+ version_requirements: *70271860062320
47
+ - !ruby/object:Gem::Dependency
48
+ name: rails
49
+ requirement: &70271860060580 !ruby/object:Gem::Requirement
50
+ none: false
51
+ requirements:
52
+ - - ~>
53
+ - !ruby/object:Gem::Version
54
+ version: '3.1'
55
+ type: :development
56
+ prerelease: false
57
+ version_requirements: *70271860060580
58
+ - !ruby/object:Gem::Dependency
59
+ name: rake
60
+ requirement: &70271860056780 !ruby/object:Gem::Requirement
61
+ none: false
62
+ requirements:
63
+ - - ! '>='
64
+ - !ruby/object:Gem::Version
65
+ version: '0'
66
+ type: :development
67
+ prerelease: false
68
+ version_requirements: *70271860056780
69
+ - !ruby/object:Gem::Dependency
70
+ name: rspec
71
+ requirement: &70271858520620 !ruby/object:Gem::Requirement
72
+ none: false
73
+ requirements:
74
+ - - ! '>='
75
+ - !ruby/object:Gem::Version
76
+ version: '0'
77
+ type: :development
78
+ prerelease: false
79
+ version_requirements: *70271858520620
80
+ - !ruby/object:Gem::Dependency
81
+ name: sqlite3
82
+ requirement: &70271858518980 !ruby/object:Gem::Requirement
83
+ none: false
84
+ requirements:
85
+ - - ! '>='
86
+ - !ruby/object:Gem::Version
87
+ version: '0'
88
+ type: :development
89
+ prerelease: false
90
+ version_requirements: *70271858518980
91
+ description: A simple way to direct upload big files to Amazon S3 storage from Ruby
92
+ applications and process it with cloud encoding service.
93
+ email:
94
+ - kochnev.d@gmail.com
95
+ executables: []
96
+ extensions: []
97
+ extra_rdoc_files:
98
+ - README.md
99
+ files:
100
+ - .gitignore
101
+ - .rspec
102
+ - CHANGELOG.md
103
+ - Gemfile
104
+ - LICENCE
105
+ - README.md
106
+ - Rakefile
107
+ - directwave.gemspec
108
+ - lib/directwave.rb
109
+ - lib/directwave/mounter.rb
110
+ - lib/directwave/orm/activerecord.rb
111
+ - lib/directwave/railtie.rb
112
+ - lib/directwave/uploader/accreditation.rb
113
+ - lib/directwave/uploader/configuration.rb
114
+ - lib/directwave/uploader/connection.rb
115
+ - lib/directwave/uploader/paths.rb
116
+ - lib/directwave/uploader/uploader.rb
117
+ - lib/directwave/uploader/versions.rb
118
+ - lib/directwave/version.rb
119
+ - lib/generators/directwave_generator.rb
120
+ - lib/generators/templates/directwave.rb
121
+ - spec/.DS_Store
122
+ - spec/directwave/.DS_Store
123
+ - spec/directwave/fixtures/Uppercase.jpg
124
+ - spec/directwave/fixtures/bork.ttxt
125
+ - spec/directwave/fixtures/bork.txt
126
+ - spec/directwave/fixtures/bork.txtt
127
+ - spec/directwave/fixtures/case.JPG
128
+ - spec/directwave/fixtures/landscape.jpg
129
+ - spec/directwave/fixtures/new.jpeg
130
+ - spec/directwave/fixtures/new.txt
131
+ - spec/directwave/fixtures/old.jpeg
132
+ - spec/directwave/fixtures/old.txt
133
+ - spec/directwave/fixtures/portrait.jpg
134
+ - spec/directwave/fixtures/sponsored.doc
135
+ - spec/directwave/fixtures/test.jpeg
136
+ - spec/directwave/fixtures/test.jpg
137
+ - spec/directwave/fog.rb
138
+ - spec/directwave/orm/active_record_spec.rb
139
+ - spec/directwave/uploader/accreditation_spec.rb
140
+ - spec/directwave/uploader/configuration_spec.rb
141
+ - spec/directwave/uploader/connection_spec.rb
142
+ - spec/directwave/uploader/paths_spec.rb
143
+ - spec/directwave/uploader/uploader_spec.rb
144
+ - spec/directwave/uploader/versions_spec.rb
145
+ - spec/spec_helper.rb
146
+ homepage: http://radiant.fm
147
+ licenses: []
148
+ post_install_message:
149
+ rdoc_options: []
150
+ require_paths:
151
+ - lib
152
+ required_ruby_version: !ruby/object:Gem::Requirement
153
+ none: false
154
+ requirements:
155
+ - - ! '>='
156
+ - !ruby/object:Gem::Version
157
+ version: '0'
158
+ segments:
159
+ - 0
160
+ hash: 2087257516633304039
161
+ required_rubygems_version: !ruby/object:Gem::Requirement
162
+ none: false
163
+ requirements:
164
+ - - ! '>='
165
+ - !ruby/object:Gem::Version
166
+ version: '0'
167
+ segments:
168
+ - 0
169
+ hash: 2087257516633304039
170
+ requirements: []
171
+ rubyforge_project: directwave
172
+ rubygems_version: 1.8.10
173
+ signing_key:
174
+ specification_version: 3
175
+ summary: Ruby direct uploader to Amazon S3
176
+ test_files:
177
+ - spec/directwave/.DS_Store
178
+ - spec/directwave/fixtures/Uppercase.jpg
179
+ - spec/directwave/fixtures/bork.ttxt
180
+ - spec/directwave/fixtures/bork.txt
181
+ - spec/directwave/fixtures/bork.txtt
182
+ - spec/directwave/fixtures/case.JPG
183
+ - spec/directwave/fixtures/landscape.jpg
184
+ - spec/directwave/fixtures/new.jpeg
185
+ - spec/directwave/fixtures/new.txt
186
+ - spec/directwave/fixtures/old.jpeg
187
+ - spec/directwave/fixtures/old.txt
188
+ - spec/directwave/fixtures/portrait.jpg
189
+ - spec/directwave/fixtures/sponsored.doc
190
+ - spec/directwave/fixtures/test.jpeg
191
+ - spec/directwave/fixtures/test.jpg
192
+ - spec/directwave/fog.rb
193
+ - spec/directwave/orm/active_record_spec.rb
194
+ - spec/directwave/uploader/accreditation_spec.rb
195
+ - spec/directwave/uploader/configuration_spec.rb
196
+ - spec/directwave/uploader/connection_spec.rb
197
+ - spec/directwave/uploader/paths_spec.rb
198
+ - spec/directwave/uploader/uploader_spec.rb
199
+ - spec/directwave/uploader/versions_spec.rb
200
+ - spec/spec_helper.rb