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.



44
45
46
47
48
49
50
51
52
53
54
# File 'lib/asset_sync/config.rb', line 44

def initialize
  self.fog_region = nil
  self.existing_remote_files = 'keep'
  self.gzip_compression = false
  self.manifest = false
  self.fail_silently = false
  self.always_upload = []
  self.ignored_files = []
  self.enabled = true
  load_yml! if defined?(Rails) && yml_exists?
end

Instance Attribute Details

#always_uploadObject

Returns the value of attribute always_upload.



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

def always_upload
  @always_upload
end

#aws_access_key_idObject

Amazon AWS



24
25
26
# File 'lib/asset_sync/config.rb', line 24

def aws_access_key_id
  @aws_access_key_id
end

#aws_secret_access_keyObject

Amazon AWS



24
25
26
# File 'lib/asset_sync/config.rb', line 24

def aws_secret_access_key
  @aws_secret_access_key
end

#enabledObject

Returns the value of attribute enabled.



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

def enabled
  @enabled
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’



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

def fog_directory
  @fog_directory
end

#fog_providerObject

FOG configuration



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

def fog_provider
  @fog_provider
end

#fog_regionObject

e.g. ‘eu-west-1’



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

def fog_region
  @fog_region
end

#google_storage_access_key_idObject

Google Storage



30
31
32
# File 'lib/asset_sync/config.rb', line 30

def google_storage_access_key_id
  @google_storage_access_key_id
end

#google_storage_secret_access_keyObject

Google Storage



30
31
32
# File 'lib/asset_sync/config.rb', line 30

def google_storage_secret_access_key
  @google_storage_secret_access_key
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

#ignored_filesObject

Returns the value of attribute ignored_files.



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

def ignored_files
  @ignored_files
end

#manifestObject

Returns the value of attribute manifest.



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

def manifest
  @manifest
end

#prefixObject

Returns the value of attribute prefix.



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

def prefix
  @prefix
end

#public_pathObject

Returns the value of attribute public_path.



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

def public_path
  @public_path
end

#rackspace_api_keyObject

Rackspace



27
28
29
# File 'lib/asset_sync/config.rb', line 27

def rackspace_api_key
  @rackspace_api_key
end

#rackspace_auth_urlObject

Rackspace



27
28
29
# File 'lib/asset_sync/config.rb', line 27

def rackspace_auth_url
  @rackspace_auth_url
end

#rackspace_usernameObject

Rackspace



27
28
29
# File 'lib/asset_sync/config.rb', line 27

def rackspace_username
  @rackspace_username
end

Instance Method Details

#assets_prefixObject



102
103
104
105
# File 'lib/asset_sync/config.rb', line 102

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?Boolean

Returns:

  • (Boolean)


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

def aws?
  fog_provider == 'AWS'
end

#enabled?Boolean

Returns:

  • (Boolean)


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

def enabled?
  enabled == true
end

#existing_remote_files?Boolean

Returns:

  • (Boolean)


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

def existing_remote_files?
  ['keep', 'ignore'].include?(self.existing_remote_files)
end

#fail_silently?Boolean

Returns:

  • (Boolean)


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

def fail_silently?
  fail_silently == true
end

#fog_optionsObject



144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
# File 'lib/asset_sync/config.rb', line 144

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
  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 and Rackspace are supported currently."
  end

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

#google?Boolean

Returns:

  • (Boolean)


86
87
88
# File 'lib/asset_sync/config.rb', line 86

def google?
  fog_provider == 'Google'
end

#gzip?Boolean

Returns:

  • (Boolean)


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

def gzip?
  self.gzip_compression
end

#load_yml!Object



111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
# File 'lib/asset_sync/config.rb', line 111

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.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")

  # 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



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

def manifest_path
  directory =
    Rails.application.config.assets.manifest || default_manifest_directory
  File.join(directory, "manifest.yml")
end

#rackspace?Boolean

Returns:

  • (Boolean)


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

def rackspace?
  fog_provider == 'Rackspace'
end

#ymlObject



94
95
96
# File 'lib/asset_sync/config.rb', line 94

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

#yml_exists?Boolean

Returns:

  • (Boolean)


90
91
92
# File 'lib/asset_sync/config.rb', line 90

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

#yml_pathObject



98
99
100
# File 'lib/asset_sync/config.rb', line 98

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