class Jeweler::GemSpecHelper
def gem_path
def gem_path File.join(@base_dir, 'pkg', parse.file_name) end
def initialize(spec, base_dir = nil)
def initialize(spec, base_dir = nil) self.spec = spec self.base_dir = base_dir || '' yield spec if block_given? end
def parse
def parse data = File.read(path) parsed_gemspec = nil Thread.new { parsed_gemspec = eval("$SAFE = 3\n#{data}", binding, path) }.join parsed_gemspec end
def path
def path denormalized_path = File.join(@base_dir, "#{@spec.name}.gemspec") absolute_path = File.expand_path(denormalized_path) absolute_path.gsub(Dir.getwd + File::SEPARATOR, '') end
def update_version(version)
def update_version(version) @spec.version = version.to_s end
def valid?
def valid? begin parse true rescue false end end
def write
def write File.open(path, 'w') do |f| f.write @spec.to_ruby end end