directwave 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
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