class AssetSync::Config
Attributes
always_upload[RW]
aws_access_key_id[RW]
Amazon AWS
aws_iam_roles[RW]
Amazon AWS
aws_reduced_redundancy[RW]
Amazon AWS
aws_secret_access_key[RW]
Amazon AWS
cdn_distribution_id[RW]
custom_headers[RW]
enabled[RW]
existing_remote_files[RW]
fail_silently[RW]
fog_directory[RW]
fog_provider[RW]
FOG configuration
fog_region[RW]
google_storage_access_key_id[RW]
Google Storage
google_storage_secret_access_key[RW]
Google Storage
gzip_compression[RW]
ignored_files[RW]
invalidate[RW]
log_silently[RW]
manifest[RW]
prefix[RW]
public_path[RW]
rackspace_api_key[RW]
Rackspace
rackspace_auth_url[RW]
Rackspace
rackspace_username[RW]
Rackspace
run_on_precompile[RW]
Public Class Methods
new()
click to toggle source
# File lib/asset_sync/config.rb, line 49 def initialize self.fog_region = nil self.existing_remote_files = 'keep' self.gzip_compression = false self.manifest = false self.fail_silently = false self.log_silently = true self.always_upload = [] self.ignored_files = [] self.custom_headers = {} self.enabled = true self.run_on_precompile = true self.cdn_distribution_id = nil self.invalidate = [] load_yml! if defined?(Rails) && yml_exists? end
Public Instance Methods
assets_prefix()
click to toggle source
# File lib/asset_sync/config.rb, line 135 def assets_prefix # Fix for Issue #38 when Rails.config.assets.prefix starts with a slash self.prefix || Rails.application.config.assets.prefix.sub(/^\//, '') end
aws?()
click to toggle source
# File lib/asset_sync/config.rb, line 87 def aws? fog_provider =~ /aws/i end
aws_iam?()
click to toggle source
# File lib/asset_sync/config.rb, line 95 def aws_iam? aws_iam_roles == true end
aws_rrs?()
click to toggle source
# File lib/asset_sync/config.rb, line 91 def aws_rrs? aws_reduced_redundancy == true end
enabled?()
click to toggle source
# File lib/asset_sync/config.rb, line 107 def enabled? enabled == true end
existing_remote_files?()
click to toggle source
# File lib/asset_sync/config.rb, line 83 def existing_remote_files? ['keep', 'ignore'].include?(self.existing_remote_files) end
fail_silently?()
click to toggle source
# File lib/asset_sync/config.rb, line 99 def fail_silently? fail_silently || !enabled? end
fog_options()
click to toggle source
# File lib/asset_sync/config.rb, line 185 def fog_options options = { :provider => fog_provider } if aws? if aws_iam? options.merge!({ :use_iam_profile => true }) else options.merge!({ :aws_access_key_id => aws_access_key_id, :aws_secret_access_key => aws_secret_access_key }) end elsif rackspace? options.merge!({ :rackspace_username => rackspace_username, :rackspace_api_key => rackspace_api_key }) options.merge!({ :rackspace_region => fog_region }) if fog_region options.merge!({ :rackspace_auth_url => rackspace_auth_url }) if rackspace_auth_url elsif google? options.merge!({ :google_storage_secret_access_key => google_storage_secret_access_key, :google_storage_access_key_id => google_storage_access_key_id }) else raise ArgumentError, "AssetSync Unknown provider: #{fog_provider} only AWS, Rackspace and Google are supported currently." end options.merge!({:region => fog_region}) if fog_region && !rackspace? return options end
google?()
click to toggle source
# File lib/asset_sync/config.rb, line 115 def google? fog_provider =~ /google/i end
gzip?()
click to toggle source
# File lib/asset_sync/config.rb, line 79 def gzip? self.gzip_compression end
load_yml!()
click to toggle source
# File lib/asset_sync/config.rb, line 144 def load_yml! self.enabled = yml["enabled"] if yml.has_key?('enabled') self.fog_provider = yml["fog_provider"] self.fog_directory = yml["fog_directory"] self.fog_region = yml["fog_region"] self.aws_access_key_id = yml["aws_access_key_id"] self.aws_secret_access_key = yml["aws_secret_access_key"] self.aws_reduced_redundancy = yml["aws_reduced_redundancy"] self.aws_iam_roles = yml["aws_iam_roles"] self.rackspace_username = yml["rackspace_username"] self.rackspace_auth_url = yml["rackspace_auth_url"] if yml.has_key?("rackspace_auth_url") self.rackspace_api_key = yml["rackspace_api_key"] self.google_storage_secret_access_key = yml["google_storage_secret_access_key"] self.google_storage_access_key_id = yml["google_storage_access_key_id"] self.existing_remote_files = yml["existing_remote_files"] if yml.has_key?("existing_remote_files") self.gzip_compression = yml["gzip_compression"] if yml.has_key?("gzip_compression") self.manifest = yml["manifest"] if yml.has_key?("manifest") self.fail_silently = yml["fail_silently"] if yml.has_key?("fail_silently") self.always_upload = yml["always_upload"] if yml.has_key?("always_upload") self.ignored_files = yml["ignored_files"] if yml.has_key?("ignored_files") self.custom_headers = yml["custom_headers"] if yml.has_key?("custom_headers") self.run_on_precompile = yml["run_on_precompile"] if yml.has_key?("run_on_precompile") self.invalidate = yml["invalidate"] if yml.has_key?("invalidate") self.cdn_distribution_id = yml['cdn_distribution_id'] if yml.has_key?("cdn_distribution_id") # TODO deprecate the other old style config settings. FML. self.aws_access_key_id = yml["aws_access_key"] if yml.has_key?("aws_access_key") self.aws_secret_access_key = yml["aws_access_secret"] if yml.has_key?("aws_access_secret") self.fog_directory = yml["aws_bucket"] if yml.has_key?("aws_bucket") self.fog_region = yml["aws_region"] if yml.has_key?("aws_region") # TODO deprecate old style config settings self.aws_access_key_id = yml["access_key_id"] if yml.has_key?("access_key_id") self.aws_secret_access_key = yml["secret_access_key"] if yml.has_key?("secret_access_key") self.fog_directory = yml["bucket"] if yml.has_key?("bucket") self.fog_region = yml["region"] if yml.has_key?("region") self.public_path = yml["public_path"] if yml.has_key?("public_path") end
log_silently?()
click to toggle source
# File lib/asset_sync/config.rb, line 103 def log_silently? ENV['RAILS_GROUPS'] == 'assets' || !!self.log_silently end
manifest_digest_path()
click to toggle source
# File lib/asset_sync/config.rb, line 66 def manifest_digest_path manifest_path = Dir["#{default_manifest_directory}/manifest-*.json"].try(:last) if manifest_path "#{assets_prefix}/#{File.basename(manifest_path)}" end end
manifest_path()
click to toggle source
# File lib/asset_sync/config.rb, line 73 def manifest_path directory = Rails.application.config.assets.manifest || default_manifest_directory File.join(directory, "manifest.yml") end
rackspace?()
click to toggle source
# File lib/asset_sync/config.rb, line 111 def rackspace? fog_provider =~ /rackspace/i end
yml()
click to toggle source
# File lib/asset_sync/config.rb, line 123 def yml begin @yml ||= YAML.load(ERB.new(IO.read(yml_path)).result)[Rails.env] rescue nil || {} rescue Psych::SyntaxError @yml = {} end end
yml_exists?()
click to toggle source
# File lib/asset_sync/config.rb, line 119 def yml_exists? defined?(Rails.root) ? File.exist?(self.yml_path) : false end
yml_path()
click to toggle source
# File lib/asset_sync/config.rb, line 131 def yml_path Rails.root.join("config", "asset_sync.yml").to_s end
Private Instance Methods
default_manifest_directory()
click to toggle source
# File lib/asset_sync/config.rb, line 222 def default_manifest_directory File.join(Rails.public_path, assets_prefix) end