snooper 2.0.0 → 2.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.
- checksums.yaml +4 -4
- data/lib/snooper/config.rb +23 -1
- data/lib/snooper/options.rb +2 -1
- data/lib/snooper/snoop.rb +24 -0
- data/lib/snooper/version.rb +1 -1
- metadata +2 -2
    
        checksums.yaml
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            ---
         | 
| 2 2 | 
             
            SHA1:
         | 
| 3 | 
            -
              metadata.gz:  | 
| 4 | 
            -
              data.tar.gz:  | 
| 3 | 
            +
              metadata.gz: 35bd66062da4d8e2f2ee037335468a1364209c70
         | 
| 4 | 
            +
              data.tar.gz: eb1bd60ec064498b8d94341c8c1782a2594c91ab
         | 
| 5 5 | 
             
            SHA512:
         | 
| 6 | 
            -
              metadata.gz:  | 
| 7 | 
            -
              data.tar.gz:  | 
| 6 | 
            +
              metadata.gz: 074f9ad4672586cf8674ec2cf7080664a41ab19c572e4045994f2e96e8fd6d8f33686d76b481864d404321370bab03b77e6142c808d92c303b58c446ff213384
         | 
| 7 | 
            +
              data.tar.gz: c5c2b33e21c15744bdd670f5b6505c44136bdce46cc636bf5f818f7434573d7012726a38db67bf07d7c4f860c298b0638d708fd053b7a8b7b28eddfeacca4bfd
         | 
    
        data/lib/snooper/config.rb
    CHANGED
    
    | @@ -32,13 +32,16 @@ module Snooper | |
| 32 32 | 
             
                # hooks - The Array of Hook objects
         | 
| 33 33 | 
             
                attr_accessor :hooks
         | 
| 34 34 |  | 
| 35 | 
            +
                # file_path - The location the config was loaded from
         | 
| 36 | 
            +
                attr_accessor :file_path
         | 
| 37 | 
            +
             | 
| 35 38 | 
             
                ##
         | 
| 36 39 | 
             
                # Public: create a new config object
         | 
| 37 40 | 
             
                #
         | 
| 38 41 | 
             
                # base_path - The String representing the path from which all the other
         | 
| 39 42 | 
             
                #             paths should be resolved. Nil to use the current directory.
         | 
| 40 43 | 
             
                # command   - The command to execute when a change satisfies all the
         | 
| 41 | 
            -
                #             predicates. | 
| 44 | 
            +
                #             predicates.
         | 
| 42 45 | 
             
                # options   - The hash containing all of the optinal parameters.
         | 
| 43 46 | 
             
                #             :paths   - The Array of the paths to watch, relative to the
         | 
| 44 47 | 
             
                #                        base. Nil or empty to watch the whole directory.
         | 
| @@ -105,6 +108,23 @@ module Snooper | |
| 105 108 | 
             
                  instance
         | 
| 106 109 | 
             
                end
         | 
| 107 110 |  | 
| 111 | 
            +
                ##
         | 
| 112 | 
            +
                # Public : Re-Load the config from a YAML file
         | 
| 113 | 
            +
                #
         | 
| 114 | 
            +
                # Retuns true if the config was successully reloaded, false if loading
         | 
| 115 | 
            +
                # failed for any reason, and nil if the config wasn't loaded from a file in
         | 
| 116 | 
            +
                # in the first place
         | 
| 117 | 
            +
                def reload
         | 
| 118 | 
            +
                  if @file_path
         | 
| 119 | 
            +
                    initialize_from_yaml @file_path
         | 
| 120 | 
            +
                    true
         | 
| 121 | 
            +
                  else
         | 
| 122 | 
            +
                    nil
         | 
| 123 | 
            +
                  end
         | 
| 124 | 
            +
                rescue
         | 
| 125 | 
            +
                  false
         | 
| 126 | 
            +
                end
         | 
| 127 | 
            +
             | 
| 108 128 | 
             
                ##
         | 
| 109 129 | 
             
                # Implementaiton: load and initialise a config from a YAML file
         | 
| 110 130 | 
             
                #
         | 
| @@ -133,6 +153,8 @@ module Snooper | |
| 133 153 |  | 
| 134 154 | 
             
                    opts[key.to_sym] = value
         | 
| 135 155 | 
             
                  end
         | 
| 156 | 
            +
             | 
| 157 | 
            +
                  @file_path = (file_path.is_a?(String) && file_path) || file_path.path
         | 
| 136 158 |  | 
| 137 159 | 
             
                  initialize base_path, command, options
         | 
| 138 160 | 
             
                end
         | 
    
        data/lib/snooper/options.rb
    CHANGED
    
    | @@ -4,6 +4,7 @@ | |
| 4 4 | 
             
            # License::   Snooper is open source! See LICENCE.md for more details.
         | 
| 5 5 |  | 
| 6 6 | 
             
            module Snooper
         | 
| 7 | 
            +
              require 'snooper/version'
         | 
| 7 8 |  | 
| 8 9 | 
             
              module Options
         | 
| 9 10 | 
             
                require 'optparse'
         | 
| @@ -45,7 +46,7 @@ END | |
| 45 46 | 
             
                    end
         | 
| 46 47 |  | 
| 47 48 | 
             
                    parser.on("--version", "show version information") do
         | 
| 48 | 
            -
                      puts "Snooper v#{ | 
| 49 | 
            +
                      puts "Snooper v#{VERSION}"
         | 
| 49 50 | 
             
                      exit
         | 
| 50 51 | 
             
                    end
         | 
| 51 52 |  | 
    
        data/lib/snooper/snoop.rb
    CHANGED
    
    | @@ -144,6 +144,29 @@ module Snooper | |
| 144 144 | 
             
                #
         | 
| 145 145 | 
             
                # Returns the result of the listener
         | 
| 146 146 | 
             
                def run
         | 
| 147 | 
            +
                  if @config.file_path
         | 
| 148 | 
            +
                    dir = File.dirname @config.file_path
         | 
| 149 | 
            +
                    Listen.to dir, filter: %r{^#{@config.file_path}$} do |*args|
         | 
| 150 | 
            +
                      @listener.stop if @listener
         | 
| 151 | 
            +
                    end
         | 
| 152 | 
            +
                  end
         | 
| 153 | 
            +
             | 
| 154 | 
            +
                  # loop forever listening, each time the above block causes the listener
         | 
| 155 | 
            +
                  # to stop it will re-start listening with the new config.
         | 
| 156 | 
            +
                  while true
         | 
| 157 | 
            +
                    do_listening
         | 
| 158 | 
            +
                    @config.reload
         | 
| 159 | 
            +
                  end
         | 
| 160 | 
            +
                end
         | 
| 161 | 
            +
             | 
| 162 | 
            +
                ##
         | 
| 163 | 
            +
                # Internal : Do the Filesystem Listening
         | 
| 164 | 
            +
                #
         | 
| 165 | 
            +
                # This function blocks while it listens to the filsystem for changes. When
         | 
| 166 | 
            +
                # the lisetner terminates it returns the listener's status
         | 
| 167 | 
            +
                #
         | 
| 168 | 
            +
                # Returns the result of the listener
         | 
| 169 | 
            +
                def do_listening
         | 
| 147 170 | 
             
                  in_dir @config.base_path do
         | 
| 148 171 | 
             
                    # Force a change to start with
         | 
| 149 172 | 
             
                    run_command
         | 
| @@ -157,5 +180,6 @@ module Snooper | |
| 157 180 | 
             
                    @listener.start!
         | 
| 158 181 | 
             
                  end
         | 
| 159 182 | 
             
                end
         | 
| 183 | 
            +
             | 
| 160 184 | 
             
              end
         | 
| 161 185 | 
             
            end
         | 
    
        data/lib/snooper/version.rb
    CHANGED
    
    
    
        metadata
    CHANGED
    
    | @@ -1,14 +1,14 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: snooper
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version: 2. | 
| 4 | 
            +
              version: 2.1.0
         | 
| 5 5 | 
             
            platform: ruby
         | 
| 6 6 | 
             
            authors:
         | 
| 7 7 | 
             
            - Will Speak
         | 
| 8 8 | 
             
            autorequire: 
         | 
| 9 9 | 
             
            bindir: bin
         | 
| 10 10 | 
             
            cert_chain: []
         | 
| 11 | 
            -
            date: 2013-07- | 
| 11 | 
            +
            date: 2013-07-27 00:00:00.000000000 Z
         | 
| 12 12 | 
             
            dependencies:
         | 
| 13 13 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 14 14 | 
             
              name: colored
         |