Class: AssetSync::Config

Inherits:
Object
  • Object
show all
Includes:
ActiveModel::Validations
Defined in:
lib/asset_sync/config.rb

Defined Under Namespace

Classes: Invalid

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeConfig

Returns a new instance of Config.



34
35
36
37
38
39
40
41
# File 'lib/asset_sync/config.rb', line 34

def initialize
  self.fog_region = nil
  self.existing_remote_files = 'keep'
  self.gzip_compression = false
  self.manifest = false
  self.fail_silently = false
  load_yml! if yml_exists?
end

Instance Attribute Details

#aws_access_key_idObject

Amazon AWS



19
20
21
# File 'lib/asset_sync/config.rb', line 19

def aws_access_key_id
  @aws_access_key_id
end

#aws_secret_access_keyObject

Amazon AWS



19
20
21
# File 'lib/asset_sync/config.rb', line 19

def aws_secret_access_key
  @aws_secret_access_key
end

#existing_remote_filesObject

AssetSync



8
9
10
# File 'lib/asset_sync/config.rb', line 8

def existing_remote_files
  @existing_remote_files
end

#fail_silentlyObject

Returns the value of attribute fail_silently.



11
12
13
# File 'lib/asset_sync/config.rb', line 11

def fail_silently
  @fail_silently
end

#fog_directoryObject

e.g. ‘the-bucket-name’



15
16
17
# File 'lib/asset_sync/config.rb', line 15

def fog_directory
  @fog_directory
end

#fog_providerObject

FOG configuration



14
15
16
# File 'lib/asset_sync/config.rb', line 14

def fog_provider
  @fog_provider
end

#fog_regionObject

e.g. ‘eu-west-1’



16
17
18
# File 'lib/asset_sync/config.rb', line 16

def fog_region
  @fog_region
end

#gzip_compressionObject

Returns the value of attribute gzip_compression.



9
10
11
# File 'lib/asset_sync/config.rb', line 9

def gzip_compression
  @gzip_compression
end

#manifestObject

Returns the value of attribute manifest.



10
11
12
# File 'lib/asset_sync/config.rb', line 10

def manifest
  @manifest
end

#rackspace_api_keyObject

Rackspace



22
23
24
# File 'lib/asset_sync/config.rb', line 22

def rackspace_api_key
  @rackspace_api_key
end

#rackspace_auth_urlObject

Rackspace



22
23
24
# File 'lib/asset_sync/config.rb', line 22

def rackspace_auth_url
  @rackspace_auth_url
end

#rackspace_usernameObject

Rackspace



22
23
24
# File 'lib/asset_sync/config.rb', line 22

def rackspace_username
  @rackspace_username
end

Instance Method Details

#assets_prefixObject



81
82
83
84
# File 'lib/asset_sync/config.rb', line 81

def assets_prefix
  # Fix for Issue #38 when Rails.config.assets.prefix starts with a slash
  Rails.application.config.assets.prefix.sub(/^\//, '')
end

#aws?Boolean

Returns:

  • (Boolean)


57
58
59
# File 'lib/asset_sync/config.rb', line 57

def aws?
  fog_provider == 'AWS'
end

#existing_remote_files?Boolean

Returns:

  • (Boolean)


53
54
55
# File 'lib/asset_sync/config.rb', line 53

def existing_remote_files?
  (self.existing_remote_files == "keep")
end

#fail_silently?Boolean

Returns:

  • (Boolean)


61
62
63
# File 'lib/asset_sync/config.rb', line 61

def fail_silently?
  fail_silently == true
end

#fog_optionsObject



114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
# File 'lib/asset_sync/config.rb', line 114

def fog_options
  options = { :provider => fog_provider }
  if aws?
    options.merge!({
      :aws_access_key_id => aws_access_key_id,
      :aws_secret_access_key => aws_secret_access_key
    })
  elsif rackspace?
    options.merge!({
      :rackspace_username => rackspace_username,
      :rackspace_api_key => rackspace_api_key
    })

    options.merge!({ :rackspace_auth_url => rackspace_auth_url }) if rackspace_auth_url

  else
    raise ArgumentError, "AssetSync Unknown provider: #{fog_provider} only AWS and Rackspace are supported currently."
  end

  options.merge!({:region => fog_region}) if fog_region
  return options
end

#gzip?Boolean

Returns:

  • (Boolean)


49
50
51
# File 'lib/asset_sync/config.rb', line 49

def gzip?
  self.gzip_compression
end

#load_yml!Object



86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
# File 'lib/asset_sync/config.rb', line 86

def load_yml!
  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.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.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")

  # 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")
end

#manifest_pathObject



43
44
45
46
47
# File 'lib/asset_sync/config.rb', line 43

def manifest_path
  directory =
    Rails.application.config.assets.manifest || default_manifest_directory
  "#{directory}/manifest.yml"
end

#rackspace?Boolean

Returns:

  • (Boolean)


65
66
67
# File 'lib/asset_sync/config.rb', line 65

def rackspace?
  fog_provider == 'Rackspace'
end

#ymlObject



73
74
75
# File 'lib/asset_sync/config.rb', line 73

def yml
  @yml ||= YAML.load(ERB.new(IO.read(yml_path)).result)[Rails.env] rescue nil || {}
end

#yml_exists?Boolean

Returns:

  • (Boolean)


69
70
71
# File 'lib/asset_sync/config.rb', line 69

def yml_exists?
  File.exists?(self.yml_path)
end

#yml_pathObject



77
78
79
# File 'lib/asset_sync/config.rb', line 77

def yml_path
  File.join(Rails.root, "config/asset_sync.yml")
end