Skip to content

Commit

Permalink
added bump generator
Browse files Browse the repository at this point in the history
  • Loading branch information
iamdionysus committed Apr 27, 2015
1 parent a312a8d commit d51b358
Show file tree
Hide file tree
Showing 5 changed files with 45 additions and 21 deletions.
3 changes: 1 addition & 2 deletions Rakefile
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,7 @@
lib = File.expand_path("../../lib", __FILE__)
$LOAD_PATH.unshift lib unless $LOAD_PATH.include?(lib)
require "bundler/gem_tasks"
require "flavor_gem/gem_tasks"

require "flavor_gem/bump_tasks"

task :default => :test

Expand Down
33 changes: 26 additions & 7 deletions lib/flavor_gem/bump.rb
Original file line number Diff line number Diff line change
Expand Up @@ -6,22 +6,41 @@ class Bump < Thor

desc "generate", "generate rake bump task to update version file easily"
def generate
insert_into_file "Rakefile", gem_tasks, :after => "bundler/gem_tasks\"\n"
add_bump_tasks "Rakefile"
end

desc "delete", "delete generated bump flavor"
def delete
gsub_file "Rakefile", /require "flavor_gem\/gem_tasks"/, ""
gsub_file "Rakefile", /require 'flavor_gem\/gem_tasks'/, ""
remove_bump_tasks "Rakefile"
end

private
def rakefile
File.read "Rakefile"
def bump_tasks
"require \"flavor_gem/bump_tasks\"\n"
end

def gem_tasks
'require "flavor_gem/gem_tasks"'
def bump_tasks_regex
/require ["']flavor_gem\/bump_tasks["']/
end

def add_bump_tasks file_name
rakefile = File.read file_name
single_quote_bundler_require = 'require "bundler\/bump_tasks"\n'
double_quote_bundler_require = "require 'bundler/bump_tasks'\n"
if rakefile =~ bump_tasks_regex
return
end
if rakefile.include? single_quote_bundler_require
insert_into_file file_name, bump_tasks, :after => single_quote_bundler_require
elsif rakefile.include? double_quote_bundler_require
insert_into_file file_name, bump_tasks, :after => double_quote_bundler_require
else
prepend_to_file file_name, bump_tasks
end
end

def remove_bump_tasks file_name
gsub_file file_name, /require ["']flavor_gem\/bump_tasks["']\n/, ""
end
end
end
File renamed without changes.
2 changes: 2 additions & 0 deletions test/minitest_helper.rb
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,8 @@
require 'flavor_gem'
require 'flavor_gem/runner'



# added by flavor-gem generate minitest
require 'minitest/autorun'

Expand Down
28 changes: 16 additions & 12 deletions test/test_bump.rb
Original file line number Diff line number Diff line change
@@ -1,23 +1,27 @@
require 'minitest_helper'

class FlavorGem::Bump
public :add_bump_tasks, :remove_bump_tasks
end

class TestBump < Minitest::Test
def setup
@bump = FlavorGem::Bump.new
end

def gem_tasks
'require "flavor_gem/gem_tasks"'
def bump_tasks_regex
/require ["']flavor_gem\/bump_tasks["']/
end

# test "should delete bump task from Rakefile" do
# @bump.delete
# rakefile = File.read "Rakefile"
# refute_match /#{gem_tasks}/, rakefile
# end
test "should add and delete bump task from Rakefile" do
rakefile_name = "lib/flavor_gem/template/Rakefile"

# test "should add bump task into Rakefile" do
# @bump.generate
# rakefile = File.read "Rakefile"
# assert_match /flavor_gem\/gem_tasks/, rakefile
# end
@bump.add_bump_tasks rakefile_name
rakefile = File.read rakefile_name
assert_match bump_tasks_regex, rakefile

@bump.remove_bump_tasks rakefile_name
rakefile = File.read rakefile_name
refute_match bump_tasks_regex, rakefile
end
end

0 comments on commit d51b358

Please sign in to comment.