zencodable 0.0.1 → 0.1.0
Sign up to get free protection for your applications and to get access to all the features.
- data/lib/generators/zencodable/migration_generator.rb +1 -0
- data/lib/generators/zencodable/templates/add_zencoder_job_tracking_columns.rb +8 -0
- data/lib/zencodable/version.rb +1 -1
- data/lib/zencodable.rb +19 -17
- data/test/debug.log +422 -2913
- data/test/dummy/db/development.sqlite3 +0 -0
- data/test/dummy/db/migrate/20111130180309_create_dummy_videos.rb +0 -5
- data/test/dummy/db/migrate/20111202212901_add_zencoder_job_tracking_columns.rb +8 -0
- data/test/dummy/db/schema.rb +1 -1
- data/test/dummy/db/test.sqlite3 +0 -0
- data/test/dummy/log/development.log +118 -15
- data/test/dummy/log/test.log +74 -21
- data/test/dummy/tmp/db/migrate/20111202214515_add_zencoder_job_tracking_columns_to_kitteh_movies.rb +8 -0
- data/test/dummy/tmp/db/migrate/{20111202054112_create_encoded_kitteh_vids.rb → 20111202214515_create_encoded_kitteh_vids.rb} +0 -0
- data/test/zencodable_generators_test.rb +10 -0
- data/test/zencodable_test.rb +31 -2
- metadata +157 -149
@@ -24,6 +24,7 @@ module Zencodable
|
|
24
24
|
end
|
25
25
|
|
26
26
|
def create_migration_files
|
27
|
+
migration_template 'add_zencoder_job_tracking_columns.rb', "db/migrate/add_zencoder_job_tracking_columns_to_#{name.tableize}"
|
27
28
|
migration_template 'create_association_table.rb', "db/migrate/create_#{association_name}"
|
28
29
|
unless options.skip_thumbnails?
|
29
30
|
migration_template 'create_association_thumbnails_table.rb', "db/migrate/create_#{association_name}_thumbnails"
|
@@ -0,0 +1,8 @@
|
|
1
|
+
class AddZencoderJobTrackingColumns < ActiveRecord::Migration
|
2
|
+
def change
|
3
|
+
add_column :<%= name.tableize %>, :origin_url, :string
|
4
|
+
add_column :<%= name.tableize %>, :zencoder_job_status, :string
|
5
|
+
add_column :<%= name.tableize %>, :zencoder_job_created, :datetime
|
6
|
+
add_column :<%= name.tableize %>, :zencoder_job_finished, :datetime
|
7
|
+
end
|
8
|
+
end
|
data/lib/zencodable/version.rb
CHANGED
data/lib/zencodable.rb
CHANGED
@@ -127,38 +127,40 @@ module Zencodable
|
|
127
127
|
end
|
128
128
|
end
|
129
129
|
|
130
|
-
def build_encoder_output_options(origin,
|
130
|
+
def build_encoder_output_options(origin, settings)
|
131
131
|
|
132
|
-
formats =
|
133
|
-
size = definitions[:output_dimensions] || '400x300'
|
134
|
-
base_url = s3_url(origin, definitions[:s3_config], definitions[:path])
|
132
|
+
formats = settings[:formats] || [:mp4]
|
135
133
|
|
136
|
-
|
137
|
-
|
138
|
-
|
139
|
-
|
140
|
-
defaults =
|
134
|
+
bucket_name = settings[:bucket] || s3_bucket_name(settings[:s3_config])
|
135
|
+
|
136
|
+
s3_base_url = s3_url(origin, bucket_name, settings[:path])
|
137
|
+
|
138
|
+
defaults = { :public => true }
|
139
|
+
|
140
|
+
defaults[:size] = settings[:output_dimensions] if settings[:output_dimensions]
|
141
|
+
|
142
|
+
defaults = defaults.merge(settings[:options]) if settings[:options]
|
143
|
+
|
144
|
+
output_settings = formats.collect{ |f| defaults.merge( :format => f.to_s, :label => f.to_s, :base_url => s3_base_url ) }
|
141
145
|
|
142
|
-
if
|
143
|
-
|
144
|
-
:base_url => base_url,
|
145
|
-
:size => size
|
146
|
-
}.merge(definitions[:thumbnails])
|
146
|
+
if settings[:thumbnails]
|
147
|
+
output_settings[0][:thumbnails] = {:base_url => s3_base_url}.merge(settings[:thumbnails])
|
147
148
|
end
|
149
|
+
output_settings
|
148
150
|
|
149
|
-
formats.collect{ |f| defaults.merge( :format => f.to_s, :label => f.to_s, :base_url => base_url ) }
|
150
151
|
end
|
151
152
|
|
152
|
-
def s3_url origin_url,
|
153
|
+
def s3_url origin_url, bucket, path
|
153
154
|
basename = origin_url.match( %r|([^/][^/\?]+)[^/]*\.[^.]+\z| )[1] # matches filename without extension
|
154
155
|
basename = basename.downcase.squish.gsub(/\s+/, '-').gsub(/[^\w\d_.-]/, '') # cheap/ugly to_url
|
155
156
|
path = path.gsub(%r|:basename\b|, basename)
|
156
|
-
"s3://#{
|
157
|
+
"s3://#{bucket}.s3.amazonaws.com/#{path}/"
|
157
158
|
end
|
158
159
|
|
159
160
|
def s3_bucket_name s3_config_file
|
160
161
|
s3_config_file ||= "#{Rails.root}/config/s3.yml"
|
161
162
|
@s3_config ||= YAML.load_file(s3_config_file)[Rails.env].symbolize_keys
|
163
|
+
puts @s3_config.inspect
|
162
164
|
@s3_config[:bucket_name]
|
163
165
|
end
|
164
166
|
|