Sha256: 769524e304cb30f0765b5fb77a6dd1f98ef35a580399b41db6ad0cdfdd78a0b0

Contents?: true

Size: 1.61 KB

Versions: 30

Compression:

Stored size: 1.61 KB

Contents


module Rubber
  module Util

    def self.symbolize_keys(map)
      map.inject({}) do |options, (key, value)|
        options[key.to_sym || key] = value
        options
      end
    end
    
    def self.stringify(val)
      case val
      when String
        val
      when Hash
        val.inject({}) {|h, a| h[stringify(a[0])] = stringify(a[1]); h}
      when Enumerable
        val.collect {|v| stringify(v)}
      else
        val.to_s
      end
      
    end

    # Opens the file for writing by root
    def self.sudo_open(path, perms, &block)
      open("|sudo tee #{path} > /dev/null", perms, &block)
    end

    def self.is_rails?
      File.exist?(File.join(RUBBER_ROOT, 'config', 'boot.rb'))
    end

    def self.is_rails2?
      defined?(Rails) && defined?(Rails::VERSION) && Rails::VERSION::MAJOR == 2
    end

    def self.is_rails3?
      defined?(Rails) && defined?(Rails::VERSION) && Rails::VERSION::MAJOR == 3
    end

    def self.is_bundler?
      File.exist?(File.join(RUBBER_ROOT, 'Gemfile'))
    end

    def self.rubber_as_plugin?
      File.exist?(File.join(RUBBER_ROOT, 'vendor/plugins/rubber'))
    end

    def self.prompt(name, desc, required=false, default=nil)
      value = ENV.delete(name)
      msg = "#{desc}"
      msg << " [#{default}]" if default
      msg << ": "
      unless value
        print msg
        value = gets
      end
      value = value.size == 0 ? default : value
      self.fatal "#{name} is required, pass using environment or enter at prompt" if required && ! value
      return value
    end

    def self.fatal(msg, code=1)
      puts msg
      exit code
    end
    
  end
end

Version data entries

30 entries across 30 versions & 5 rubygems

Version Path
rubber-1.11.0 lib/rubber/util.rb
rubber-1.10.2 lib/rubber/util.rb
rubber-1.10.1 lib/rubber/util.rb
rubber-jcarnegie-0.0.1 lib/rubber/util.rb
rubber-1.9.1 lib/rubber/util.rb
rubber-1.9.0 lib/rubber/util.rb
rubber-1.8.0 lib/rubber/util.rb
nogara-rubber-1.7.2 lib/rubber/util.rb
rubber-1.7.2 lib/rubber/util.rb
rubber-1.7.1 lib/rubber/util.rb
rubber-1.7.0 lib/rubber/util.rb
rubber-1.6.3 lib/rubber/util.rb
rubber-1.6.2 lib/rubber/util.rb
rubber-1.6.1 lib/rubber/util.rb
rubber-1.6.0 lib/rubber/util.rb
rubber-1.5.11 lib/rubber/util.rb
rubber-1.5.10 lib/rubber/util.rb
rubber-1.5.9 lib/rubber/util.rb
rubber-1.5.8 lib/rubber/util.rb
axtro-rubber-1.5.7.1 lib/rubber/util.rb