Class: Semverve::Task

Inherits:
Object
  • Object
show all
Includes:
Rake::DSL
Defined in:
lib/semverve/task.rb

Overview

Defines Semverve's Rake tasks for the current Rake application.

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize {|configuration| ... } ⇒ Semverve::Task

Configures and defines Semverve tasks if needed.

Yield Parameters:



63
64
65
66
67
68
69
70
# File 'lib/semverve/task.rb', line 63

def initialize
  yield Semverve.configuration if block_given?

  unless self.class.send(:installed_for_current_application?)
    define
    self.class.send(:mark_current_application_installed)
  end
end

Class Method Details

.installSemverve::Task?

Installs Semverve tasks once for the current Rake application.

Returns:



24
25
26
27
28
# File 'lib/semverve/task.rb', line 24

def install
  return if installed_for_current_application?

  new
end

Instance Method Details

#definevoid

This method returns an undefined value.

Defines the semverve:* Rake tasks.



76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
# File 'lib/semverve/task.rb', line 76

def define
  namespace :semverve do
    desc "Print the current version from the version.rb file"
    task :current do
      puts VersionFile.new(Semverve.configuration.resolved).current
    end

    namespace :increment do
      desc "Increment the version's PATCH level"
      task :patch do
        increment(:patch)
      end

      desc "Increment the version's MINOR level"
      task :minor do
        increment(:minor)
      end

      desc "Increment the version's MAJOR level"
      task :major do
        increment(:major)
      end
    end

    desc "Generate a version.rb file"
    task :generate, [:version, :format, :force] do |_task, args|
      generator_options = generate_options(args)
      puts "Generated #{Generator.new(
        Semverve.configuration.resolved,
        version: generator_options[:version],
        format: generator_options[:format],
        force: generator_options[:force]
      ).generate}"
    end

    desc "Set the version.rb file to version"
    task :set, [:version] do |_task, args|
      set(args)
    end

    desc "Check version references, code literals, and metadata"
    task :check, [:version] do |_task, args|
      check(args)
    end

    namespace :check do
      version_checks.each do |version_check|
        desc version_check.check_description
        task version_check.task_name, version_check.task_arguments do |_task, args|
          check_version_check(version_check, args)
        end
      end

      desc "Check whether the current gem version is already published"
      task :rubygems do
        check_rubygems
      end

      desc "Check configured release-readiness surfaces"
      task :release do
        check_release
      end
    end

    desc "Fix version references, code literals, and metadata"
    task :fix, [:version] do |_task, args|
      fix(args)
    end

    namespace :fix do
      version_checks.each do |version_check|
        desc version_check.fix_description
        task version_check.task_name, version_check.task_arguments do |_task, args|
          fix_version_check(version_check, args)
        end
      end
    end
  end
end