asset_sync 0.4.1 → 0.4.2
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.
- data/README.md +2 -0
- data/asset_sync.gemspec +1 -1
- data/lib/asset_sync/asset_sync.rb +6 -2
- data/lib/asset_sync/config.rb +3 -0
- data/lib/asset_sync/storage.rb +21 -2
- data/lib/asset_sync/version.rb +1 -1
- data/spec/asset_sync_spec.rb +6 -0
- data/spec/google_spec.rb +1 -0
- data/spec/storage_spec.rb +14 -0
- metadata +12 -12
    
        data/README.md
    CHANGED
    
    | @@ -191,6 +191,8 @@ defaults: &defaults | |
| 191 191 | 
             
              #  eg: Static files in public often reference non-fingerprinted application.css
         | 
| 192 192 | 
             
              #  note: You will still need to expire them from the CDN's edge cache locations
         | 
| 193 193 | 
             
              # always_upload: ['application.js', 'application.css']
         | 
| 194 | 
            +
              # Ignored files. Useful if there are some files that are created dynamically on the server and you don't want to upload on deploy.
         | 
| 195 | 
            +
              # ignored_files: ['ignore_me.js', %r(ignore_some/\d{32}\.css)]
         | 
| 194 196 |  | 
| 195 197 | 
             
            development:
         | 
| 196 198 | 
             
              <<: *defaults
         | 
    
        data/asset_sync.gemspec
    CHANGED
    
    | @@ -6,7 +6,7 @@ require "asset_sync/version" | |
| 6 6 | 
             
            Gem::Specification.new do |s|
         | 
| 7 7 | 
             
              s.name        = "asset_sync"
         | 
| 8 8 | 
             
              s.version     = AssetSync::VERSION
         | 
| 9 | 
            -
              s.date        = "2012- | 
| 9 | 
            +
              s.date        = "2012-06-02"
         | 
| 10 10 | 
             
              s.platform    = Gem::Platform::RUBY 
         | 
| 11 11 | 
             
              s.authors     = ["Simon Hamilton", "David Rice", "Phil McClure"]
         | 
| 12 12 | 
             
              s.email       = ["shamilton@rumblelabs.com", "me@davidjrice.co.uk", "pmcclure@rumblelabs.com"]
         | 
| @@ -32,17 +32,21 @@ module AssetSync | |
| 32 32 | 
             
                end
         | 
| 33 33 |  | 
| 34 34 | 
             
                def warn(msg)
         | 
| 35 | 
            -
                   | 
| 35 | 
            +
                  stderr.puts msg
         | 
| 36 36 | 
             
                end
         | 
| 37 37 |  | 
| 38 38 | 
             
                def log(msg)
         | 
| 39 | 
            -
                   | 
| 39 | 
            +
                  stdout.puts msg if ENV["RAILS_GROUPS"] == "assets"
         | 
| 40 40 | 
             
                end
         | 
| 41 41 |  | 
| 42 42 | 
             
                def enabled?
         | 
| 43 43 | 
             
                  config.enabled?
         | 
| 44 44 | 
             
                end
         | 
| 45 45 |  | 
| 46 | 
            +
                # easier to stub
         | 
| 47 | 
            +
                def stderr ; STDERR ; end
         | 
| 48 | 
            +
                def stdout ; STDOUT ; end
         | 
| 49 | 
            +
             | 
| 46 50 | 
             
              end
         | 
| 47 51 |  | 
| 48 52 | 
             
            end
         | 
    
        data/lib/asset_sync/config.rb
    CHANGED
    
    | @@ -10,6 +10,7 @@ module AssetSync | |
| 10 10 | 
             
                attr_accessor :manifest
         | 
| 11 11 | 
             
                attr_accessor :fail_silently
         | 
| 12 12 | 
             
                attr_accessor :always_upload
         | 
| 13 | 
            +
                attr_accessor :ignored_files
         | 
| 13 14 | 
             
                attr_accessor :enabled
         | 
| 14 15 |  | 
| 15 16 | 
             
                # FOG configuration
         | 
| @@ -45,6 +46,7 @@ module AssetSync | |
| 45 46 | 
             
                  self.manifest = false
         | 
| 46 47 | 
             
                  self.fail_silently = false
         | 
| 47 48 | 
             
                  self.always_upload = []
         | 
| 49 | 
            +
                  self.ignored_files = []
         | 
| 48 50 | 
             
                  self.enabled = true
         | 
| 49 51 | 
             
                  load_yml! if yml_exists?
         | 
| 50 52 | 
             
                end
         | 
| @@ -117,6 +119,7 @@ module AssetSync | |
| 117 119 | 
             
                  self.manifest               = yml["manifest"] if yml.has_key?("manifest")
         | 
| 118 120 | 
             
                  self.fail_silently          = yml["fail_silently"] if yml.has_key?("fail_silently")
         | 
| 119 121 | 
             
                  self.always_upload          = yml["always_upload"] if yml.has_key?("always_upload")
         | 
| 122 | 
            +
                  self.ignored_files          = yml["ignored_files"] if yml.has_key?("ignored_files")
         | 
| 120 123 |  | 
| 121 124 | 
             
                  # TODO deprecate the other old style config settings. FML.
         | 
| 122 125 | 
             
                  self.aws_access_key_id      = yml["aws_access_key"] if yml.has_key?("aws_access_key")
         | 
    
        data/lib/asset_sync/storage.rb
    CHANGED
    
    | @@ -30,6 +30,25 @@ module AssetSync | |
| 30 30 | 
             
                  Rails.public_path
         | 
| 31 31 | 
             
                end
         | 
| 32 32 |  | 
| 33 | 
            +
                def ignored_files
         | 
| 34 | 
            +
                  files = []
         | 
| 35 | 
            +
                  Array(self.config.ignored_files).each do |ignore|
         | 
| 36 | 
            +
                    case ignore
         | 
| 37 | 
            +
                    when Regexp
         | 
| 38 | 
            +
                      files += self.local_files.select do |file|
         | 
| 39 | 
            +
                        file =~ ignore
         | 
| 40 | 
            +
                      end
         | 
| 41 | 
            +
                    when String
         | 
| 42 | 
            +
                      files += self.local_files.select do |file|
         | 
| 43 | 
            +
                        file.split('/').last == ignore
         | 
| 44 | 
            +
                      end
         | 
| 45 | 
            +
                    else
         | 
| 46 | 
            +
                      log "Error: please define ignored_files as string or regular expression. #{ignore} (#{ignore.class}) ignored."
         | 
| 47 | 
            +
                    end
         | 
| 48 | 
            +
                  end
         | 
| 49 | 
            +
                  files.uniq
         | 
| 50 | 
            +
                end
         | 
| 51 | 
            +
             | 
| 33 52 | 
             
                def local_files
         | 
| 34 53 | 
             
                  @local_files ||= get_local_files
         | 
| 35 54 | 
             
                end
         | 
| @@ -74,7 +93,7 @@ module AssetSync | |
| 74 93 | 
             
                  log "Fetching files to flag for delete"
         | 
| 75 94 | 
             
                  remote_files = get_remote_files
         | 
| 76 95 | 
             
                  # fixes: https://github.com/rumblelabs/asset_sync/issues/19
         | 
| 77 | 
            -
                  from_remote_files_to_delete = remote_files - local_files
         | 
| 96 | 
            +
                  from_remote_files_to_delete = remote_files - local_files - ignored_files
         | 
| 78 97 |  | 
| 79 98 | 
             
                  log "Flagging #{from_remote_files_to_delete.size} file(s) for deletion"
         | 
| 80 99 | 
             
                  # Delete unneeded remote files
         | 
| @@ -138,7 +157,7 @@ module AssetSync | |
| 138 157 | 
             
                  # get a fresh list of remote files
         | 
| 139 158 | 
             
                  remote_files = ignore_existing_remote_files? ? [] : get_remote_files
         | 
| 140 159 | 
             
                  # fixes: https://github.com/rumblelabs/asset_sync/issues/19
         | 
| 141 | 
            -
                  local_files_to_upload = local_files - remote_files + always_upload_files
         | 
| 160 | 
            +
                  local_files_to_upload = local_files - ignored_files - remote_files + always_upload_files
         | 
| 142 161 |  | 
| 143 162 | 
             
                  # Upload new files
         | 
| 144 163 | 
             
                  local_files_to_upload.each do |f|
         | 
    
        data/lib/asset_sync/version.rb
    CHANGED
    
    
    
        data/spec/asset_sync_spec.rb
    CHANGED
    
    | @@ -140,6 +140,7 @@ describe AssetSync do | |
| 140 140 |  | 
| 141 141 | 
             
              describe 'with fail_silent configuration' do
         | 
| 142 142 | 
             
                before(:each) do
         | 
| 143 | 
            +
                  AssetSync.stub(:stderr).and_return(@stderr = StringIO.new)
         | 
| 143 144 | 
             
                  AssetSync.config = AssetSync::Config.new
         | 
| 144 145 | 
             
                  AssetSync.configure do |config|
         | 
| 145 146 | 
             
                    config.fail_silently = true
         | 
| @@ -149,6 +150,11 @@ describe AssetSync do | |
| 149 150 | 
             
                it "should not raise an invalid exception" do
         | 
| 150 151 | 
             
                  lambda{ AssetSync.sync }.should_not raise_error(AssetSync::Config::Invalid)
         | 
| 151 152 | 
             
                end
         | 
| 153 | 
            +
             | 
| 154 | 
            +
                it "should output a warning to stderr" do
         | 
| 155 | 
            +
                  AssetSync.sync
         | 
| 156 | 
            +
                  @stderr.string.should =~ /can't be blank/
         | 
| 157 | 
            +
                end
         | 
| 152 158 | 
             
              end
         | 
| 153 159 |  | 
| 154 160 | 
             
              describe 'with gzip_compression enabled' do
         | 
    
        data/spec/google_spec.rb
    CHANGED
    
    
    
        data/spec/storage_spec.rb
    CHANGED
    
    | @@ -36,5 +36,19 @@ describe AssetSync::Storage do | |
| 36 36 | 
             
                  end
         | 
| 37 37 | 
             
                  storage.upload_files
         | 
| 38 38 | 
             
                end
         | 
| 39 | 
            +
             | 
| 40 | 
            +
                it 'should allow to ignore files' do
         | 
| 41 | 
            +
                  @config.ignored_files = ['local_image1.jpg', /local_stylesheet\d\.css/]
         | 
| 42 | 
            +
             | 
| 43 | 
            +
                  storage = AssetSync::Storage.new(@config)
         | 
| 44 | 
            +
                  storage.stub(:local_files).and_return(@local_files)
         | 
| 45 | 
            +
                  storage.stub(:get_remote_files).and_return(@remote_files)
         | 
| 46 | 
            +
                  File.stub(:file?).and_return(true) # Pretend they all exist
         | 
| 47 | 
            +
             | 
| 48 | 
            +
                  (@local_files - @remote_files - storage.ignored_files + storage.always_upload_files).each do |file|
         | 
| 49 | 
            +
                    storage.should_receive(:upload_file).with(file)
         | 
| 50 | 
            +
                  end
         | 
| 51 | 
            +
                  storage.upload_files
         | 
| 52 | 
            +
                end
         | 
| 39 53 | 
             
              end
         | 
| 40 54 | 
             
            end
         | 
    
        metadata
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: asset_sync
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version: 0.4. | 
| 4 | 
            +
              version: 0.4.2
         | 
| 5 5 | 
             
              prerelease: 
         | 
| 6 6 | 
             
            platform: ruby
         | 
| 7 7 | 
             
            authors:
         | 
| @@ -11,11 +11,11 @@ authors: | |
| 11 11 | 
             
            autorequire: 
         | 
| 12 12 | 
             
            bindir: bin
         | 
| 13 13 | 
             
            cert_chain: []
         | 
| 14 | 
            -
            date: 2012- | 
| 14 | 
            +
            date: 2012-06-02 00:00:00.000000000 Z
         | 
| 15 15 | 
             
            dependencies:
         | 
| 16 16 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 17 17 | 
             
              name: fog
         | 
| 18 | 
            -
              requirement: & | 
| 18 | 
            +
              requirement: &70223412035340 !ruby/object:Gem::Requirement
         | 
| 19 19 | 
             
                none: false
         | 
| 20 20 | 
             
                requirements:
         | 
| 21 21 | 
             
                - - ! '>='
         | 
| @@ -23,10 +23,10 @@ dependencies: | |
| 23 23 | 
             
                    version: '0'
         | 
| 24 24 | 
             
              type: :runtime
         | 
| 25 25 | 
             
              prerelease: false
         | 
| 26 | 
            -
              version_requirements: * | 
| 26 | 
            +
              version_requirements: *70223412035340
         | 
| 27 27 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 28 28 | 
             
              name: activemodel
         | 
| 29 | 
            -
              requirement: & | 
| 29 | 
            +
              requirement: &70223412034660 !ruby/object:Gem::Requirement
         | 
| 30 30 | 
             
                none: false
         | 
| 31 31 | 
             
                requirements:
         | 
| 32 32 | 
             
                - - ! '>='
         | 
| @@ -34,10 +34,10 @@ dependencies: | |
| 34 34 | 
             
                    version: '0'
         | 
| 35 35 | 
             
              type: :runtime
         | 
| 36 36 | 
             
              prerelease: false
         | 
| 37 | 
            -
              version_requirements: * | 
| 37 | 
            +
              version_requirements: *70223412034660
         | 
| 38 38 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 39 39 | 
             
              name: rspec
         | 
| 40 | 
            -
              requirement: & | 
| 40 | 
            +
              requirement: &70223412033020 !ruby/object:Gem::Requirement
         | 
| 41 41 | 
             
                none: false
         | 
| 42 42 | 
             
                requirements:
         | 
| 43 43 | 
             
                - - ! '>='
         | 
| @@ -45,10 +45,10 @@ dependencies: | |
| 45 45 | 
             
                    version: '0'
         | 
| 46 46 | 
             
              type: :development
         | 
| 47 47 | 
             
              prerelease: false
         | 
| 48 | 
            -
              version_requirements: * | 
| 48 | 
            +
              version_requirements: *70223412033020
         | 
| 49 49 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 50 50 | 
             
              name: bundler
         | 
| 51 | 
            -
              requirement: & | 
| 51 | 
            +
              requirement: &70223412032060 !ruby/object:Gem::Requirement
         | 
| 52 52 | 
             
                none: false
         | 
| 53 53 | 
             
                requirements:
         | 
| 54 54 | 
             
                - - ! '>='
         | 
| @@ -56,10 +56,10 @@ dependencies: | |
| 56 56 | 
             
                    version: '0'
         | 
| 57 57 | 
             
              type: :development
         | 
| 58 58 | 
             
              prerelease: false
         | 
| 59 | 
            -
              version_requirements: * | 
| 59 | 
            +
              version_requirements: *70223412032060
         | 
| 60 60 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 61 61 | 
             
              name: jeweler
         | 
| 62 | 
            -
              requirement: & | 
| 62 | 
            +
              requirement: &70223412031120 !ruby/object:Gem::Requirement
         | 
| 63 63 | 
             
                none: false
         | 
| 64 64 | 
             
                requirements:
         | 
| 65 65 | 
             
                - - ! '>='
         | 
| @@ -67,7 +67,7 @@ dependencies: | |
| 67 67 | 
             
                    version: '0'
         | 
| 68 68 | 
             
              type: :development
         | 
| 69 69 | 
             
              prerelease: false
         | 
| 70 | 
            -
              version_requirements: * | 
| 70 | 
            +
              version_requirements: *70223412031120
         | 
| 71 71 | 
             
            description: After you run assets:precompile your compiled assets will be synchronised
         | 
| 72 72 | 
             
              with your S3 bucket.
         | 
| 73 73 | 
             
            email:
         |