zencodable 0.0.1 → 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -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
@@ -1,3 +1,3 @@
1
1
  module Zencodable
2
- VERSION = "0.0.1"
2
+ VERSION = "0.1.0"
3
3
  end
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, definitions)
130
+ def build_encoder_output_options(origin, settings)
131
131
 
132
- formats = definitions[:formats] || [:ogg]
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
- defaults = { :public => true,
137
- :device_profile => "mobile/advanced",
138
- :size => size
139
- }
140
- defaults = defaults.merge(definitions[:options]) if definitions[:options]
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 definitions[:thumbnails]
143
- defaults[:thumbnails] = {:aspect_mode => 'crop',
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, s3_config_file, path
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://#{s3_bucket_name(s3_config_file)}.s3.amazonaws.com/#{path}/"
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