Sha256: dc8cf5e777be4e4416d1e1ab6224850ec0615b40b0a440d267cd8b3ddca178e6
Contents?: true
Size: 1.69 KB
Versions: 3
Compression:
Stored size: 1.69 KB
Contents
class Bueller class GemSpecHelper class VersionMissing < StandardError; end class NoGemspecFound < StandardError; end attr_accessor :spec, :spec_source, :base_dir, :errors def errors @errors ||= [] end def initialize(base_dir = nil) self.base_dir = base_dir || '' end def valid? begin reload_spec spec rescue => e errors << "could not eval gemspec: #{e}" return false end begin spec.validate rescue => e errors << "gemspec is invalid: #{e}" return false end true end def write File.open(path, 'w') do |f| f.puts spec_source end end def path return @path unless @path.nil? denormalized_path = Dir.glob(File.join(base_dir, '*.gemspec')).first raise NoGemspecFound, "No gemspec found in #{base_dir}" if denormalized_path.nil? absolute_path = File.expand_path(denormalized_path) @path = absolute_path.gsub(Dir.getwd + File::SEPARATOR, '') end def spec_source @spec_source ||= File.read(path) end def reload_spec @spec = nil end def spec @spec ||= eval(spec_source) end def gem_path File.join(base_dir, 'pkg', spec.file_name) end def update_version(version) raise VersionMissing unless has_version? spec_source.sub! /\.version\s*=\s*.*/, %Q{.version = "#{version}"} reload_spec end def set_date spec_source.sub! /\.date\s*=\s*.*/, %Q{.date = "#{Time.now.strftime('%Y-%m-%d')}"} reload_spec end def has_version? !spec.version.nil? end def version spec.version end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
bueller-0.0.4 | lib/bueller/gemspec_helper.rb |
bueller-0.0.3 | lib/bueller/gemspec_helper.rb |
bueller-0.0.2 | lib/bueller/gemspec_helper.rb |