class Jeweler::GemSpecHelper
Constants
- PARSE_SAFE
Attributes
base_dir[RW]
spec[RW]
Public Class Methods
new(spec, base_dir = nil) { |spec| ... }
click to toggle source
# File lib/jeweler/gemspec_helper.rb, line 5 def initialize(spec, base_dir = nil) self.spec = spec self.base_dir = base_dir || '' yield spec if block_given? end
Public Instance Methods
gem_path()
click to toggle source
# File lib/jeweler/gemspec_helper.rb, line 74 def gem_path File.join(@base_dir, 'pkg', parse.file_name) end
has_version?()
click to toggle source
Checks whether it uses the version helper or the users defined version.
# File lib/jeweler/gemspec_helper.rb, line 83 def has_version? !@spec.version.nil? end
normalize_files(array_attribute)
click to toggle source
# File lib/jeweler/gemspec_helper.rb, line 55 def normalize_files(array_attribute) array = @spec.send(array_attribute) # only keep files, no directories, and sort array = array.select do |path| File.file? File.join(@base_dir, path) end.sort @spec.send("#{array_attribute}=", array) end
parse()
click to toggle source
# File lib/jeweler/gemspec_helper.rb, line 48 def parse data = to_ruby parsed_gemspec = nil Thread.new { parsed_gemspec = eval("$SAFE = #{PARSE_SAFE}\n#{data}", binding, path) }.join parsed_gemspec end
path()
click to toggle source
# File lib/jeweler/gemspec_helper.rb, line 40 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
prettyify_array(gemspec_ruby, array_name)
click to toggle source
Adds extra space when outputting an array. This helps create better version control diffs, because otherwise it is all on the same line.
# File lib/jeweler/gemspec_helper.rb, line 66 def prettyify_array(gemspec_ruby, array_name) gemspec_ruby.gsub(/s\.#{array_name.to_s} = \[.+?\]/) do |match| leadin, files = match[0..-2].split('[') leadin + "[\n #{files.gsub(%(", "), %(",\n "))}\n ]" end end
to_ruby()
click to toggle source
# File lib/jeweler/gemspec_helper.rb, line 25 def to_ruby normalize_files(:files) normalize_files(:extra_rdoc_files) gemspec_ruby = @spec.to_ruby gemspec_ruby = prettyify_array(gemspec_ruby, :files) gemspec_ruby = prettyify_array(gemspec_ruby, :extra_rdoc_files) gemspec_ruby = <<-END # Generated by jeweler # DO NOT EDIT THIS FILE DIRECTLY # Instead, edit Jeweler::Tasks in #{Rake.application.rakefile}, and run 'rake gemspec' #{gemspec_ruby} END end
update_version(version)
click to toggle source
# File lib/jeweler/gemspec_helper.rb, line 78 def update_version(version) @spec.version = version.to_s end
valid?()
click to toggle source
# File lib/jeweler/gemspec_helper.rb, line 12 def valid? parse true rescue false end
write()
click to toggle source
# File lib/jeweler/gemspec_helper.rb, line 19 def write File.open(path, 'w') do |f| f.write to_ruby end end