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



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

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

.gem_file?Boolean

Returns:

  • (Boolean)


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

def gem_file?
  return !gem_file.nil?
end

.gem_specObject

Get the gem specification.



112
113
114
# File 'lib/rake_tasks/gem.rb', line 112

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

.gem_spec_fileObject

Check for a gem spec file.



117
118
119
# File 'lib/rake_tasks/gem.rb', line 117

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.



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

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

.gem_versionObject



137
138
139
# File 'lib/rake_tasks/gem.rb', line 137

def gem_version
  Version.new version_number
end

.gemspec_file?Boolean

Check whether a gem spec file exists for this project.

Returns:

  • (Boolean)


95
96
97
# File 'lib/rake_tasks/gem.rb', line 95

def gemspec_file?
  return !gem_spec_file.nil?
end

.pushObject



152
153
154
155
156
157
# File 'lib/rake_tasks/gem.rb', line 152

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.



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

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.



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

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.



133
134
135
# File 'lib/rake_tasks/gem.rb', line 133

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