zencodable 0.0.1 → 0.1.0

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.
@@ -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