Sha256: 7d8759e1b0503c5c7c92e234a21cc2f6caa52210037db0b9cd3fd76d54eaf95c

Contents?: true

Size: 873 Bytes

Versions: 6

Compression:

Stored size: 873 Bytes

Contents

module Resque
  class Cluster
    class Config
      class File < Pathname
        extend Forwardable

        delegate :[] => :contents

        def exist?
          super.tap { |exists| errors << "Configuration file doesn't exist" unless exists }
        end

        def valid?
          if contents.is_a?(Hash)
            errors << "Config file is empty" unless contents.any?
          else
            errors << "Parsed config as invalid type: expected Hash, got #{contents.class}"
          end

          contents.is_a?(Hash) && contents.any?
        end

        def errors
          @errors ||= Set.new
        end

        def contents
          @contents ||=
            begin
              YAML.load(ERB.new(self.read).result)
            rescue => e
              errors << e.message

              nil
            end
        end
      end
    end
  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
resque-cluster-0.2.5 lib/resque/cluster/config/file.rb
resque-cluster-0.2.4 lib/resque/cluster/config/file.rb
resque-cluster-0.2.3 lib/resque/cluster/config/file.rb
resque-cluster-0.2.2 lib/resque/cluster/config/file.rb
resque-cluster-0.2.1 lib/resque/cluster/config/file.rb
resque-cluster-0.2.0 lib/resque/cluster/config/file.rb