Class: RakeTasks::Gem

Inherits:
Object
  • Object
show all
Defined in:
lib/rake_tasks/gem.rb

Overview

This class will handle gem utilities.

Defined Under Namespace

Classes: Version

Class Method Summary collapse

Class Method Details

.gem_fileObject



114
115
116
# File 'lib/rake_tasks/gem.rb', line 114

def gem_file
  @gem_file ||= System.dir_glob('*.gem').first
end

.gem_file?Boolean

Returns:

  • (Boolean)


92
93
94
# File 'lib/rake_tasks/gem.rb', line 92

def gem_file?
  return !gem_file.nil?
end

.gem_specObject

Get the gem specification.



105
106
107
# File 'lib/rake_tasks/gem.rb', line 105

def gem_spec
  System.load_gemspec(gem_spec_file) if gemspec_file?
end

.gem_spec_fileObject

Check for a gem spec file.



110
111
112
# File 'lib/rake_tasks/gem.rb', line 110

def gem_spec_file
  System.dir_glob('*.gemspec').first
end

.gem_title(spec = gem_spec) ⇒ Object

Returns the gem title. This is the gem name with underscores removed. Wherever an underscore is removed, the next letter is capitalized.



99
100
101
102
# File 'lib/rake_tasks/gem.rb', line 99

def gem_title(spec = gem_spec)
  return nil unless spec.respond_to?(:name)
  spec.name.split('_').map { |w| w.capitalize }.join('')
end

.gem_versionObject



130
131
132
# File 'lib/rake_tasks/gem.rb', line 130

def gem_version
  Version.new version_number
end

.gemspec_file?Boolean

Check whether a gem spec file exists for this project.

Returns:

  • (Boolean)


88
89
90
# File 'lib/rake_tasks/gem.rb', line 88

def gemspec_file?
  return !gem_spec_file.nil?
end

.pushObject



145
146
147
148
149
150
# File 'lib/rake_tasks/gem.rb', line 145

def push
  ::Gems.configure do |config|
    config.key = ENV['RUBYGEMS_API_KEY']
  end
  ::Gems.push File.new(gem_file)
end

.version(spec = gem_spec) ⇒ Object

Returns the name and version from the specified gem specification.



119
120
121
122
123
# File 'lib/rake_tasks/gem.rb', line 119

def version(spec = gem_spec)
  if spec.respond_to?(:name) && spec.respond_to?(:version)
    "#{spec.name} version #{spec.version}"
  end
end

.version!(value, spec = gem_spec) ⇒ Object

Updates the version in the gem specification file.



135
136
137
138
139
140
141
142
143
# File 'lib/rake_tasks/gem.rb', line 135

def version!(value, spec = gem_spec)
  return unless gem_spec_file

  temp = StringIO.new
  write_temp spec, temp, gem_spec_file, value

  temp.rewind
  write_file gem_spec_file, temp
end

.version_number(spec = gem_spec) ⇒ Object

Returns the version from the specified gem specification.



126
127
128
# File 'lib/rake_tasks/gem.rb', line 126

def version_number(spec = gem_spec)
  spec.version.to_s if spec.respond_to?(:version)
end