Skip to content

Commit

Permalink
#20 Resolve unexpected autorun behaviour caused by initialize
Browse files Browse the repository at this point in the history
  • Loading branch information
baygunm committed Sep 19, 2013
1 parent 373b26a commit 632117c
Show file tree
Hide file tree
Showing 6 changed files with 106 additions and 92 deletions.
4 changes: 4 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,9 @@

#### [Current]


#### 1.2.1
* [05b92d4](../../commit/05b92d4) - __(Murat Kemal BAYGÜN)__ Release 1.2.1
* [6391f34](../../commit/6391f34) - __(Murat Kemal BAYGÜN)__ [#21](../../issues/21) Add multiline commit support

Multiline commit note support added as referenced in common
Expand Down
81 changes: 8 additions & 73 deletions bin/katip
Original file line number Diff line number Diff line change
@@ -1,80 +1,15 @@
#!/usr/bin/env ruby

COMMIT_URL='../../commit/'
ISSUE_URL='../../issues/'
$LOAD_PATH.unshift(File.expand_path(File.dirname(__FILE__) + "/../lib"))

def git_repository?
initialized = `git rev-parse --is-inside-work-tree`.chomp
require 'katip'
require 'katip/change_logger'

if initialized != 'true'
initialized = false
puts 'Exiting. Nothing to create log file.'
end
initialized
if ARGV.size > 0
change_logger = Katip::ChangeLogger.new(ARGV.first)
else
change_logger = Katip::ChangeLogger.new()
end

def write_file(output)

file_name='CHANGELOG.md'

if ARGV.length > 0
file_name=ARGV[0]
end

begin
file = File.open(file_name, 'w')
file.puts output

puts "Create #{file_name}"
rescue IOError => e
#some error occur, dir not writable etc.
ensure
file.close unless file == nil
end
end

def parse_change_log

output = []

tags=`git for-each-ref --sort='*authordate' --format='%(tag)' refs/tags | grep -v '^$'`

tags = tags.split

tags.reverse!

output << "\n#### [Current]"

previous_tag=''
tags.each do |tag|
current_tag = tag

unless previous_tag.empty?
output << "\n#### #{previous_tag}"
end

output << `git log --pretty=format:" * [%h](#{COMMIT_URL}%h) - __(%an)__ %s%n%n%-b" "#{current_tag}".."#{previous_tag}" | grep -v "Merge branch "`

previous_tag = current_tag
end

output << "\n#### #{previous_tag}"

output << `git log --pretty=format:" * [%h](#{COMMIT_URL}%h) - __(%an)__ %s%n%n%-b" #{previous_tag} | grep -v "Merge branch "`

output.each do |line|

line.encode!('utf-8', invalid: :replace, undef: :replace, replace: '')

if line.index(/#[1-9][0-9]*/)
line.gsub!(/#[1-9][0-9]*/) {|s| "[#{s}](#{ISSUE_URL}#{s[-(s.length-1)..-1]})"}
end
end

output
end

if git_repository?
write_file parse_change_log
end
change_logger.log_changes

18 changes: 2 additions & 16 deletions lib/katip.rb
Original file line number Diff line number Diff line change
@@ -1,20 +1,6 @@
require 'katip/version'
require 'katip/change_logger'
require 'katip/railtie'

module Katip
require 'katip/railtie' if defined?(Rails)

@@katip = `katip`

def self.set(param)
@@katip = param
end

def self.get
@@katip
end

def self.get_file(file_name)
@@katip = "katip #{file_name}"
end

end
88 changes: 88 additions & 0 deletions lib/katip/change_logger.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,88 @@
# encoding: utf-8
require 'katip'
require 'katip/change_logger'
module Katip
class ChangeLogger
COMMIT_URL='../../commit/'
ISSUE_URL='../../issues/'

# initialize
#
# @param [String] file_name with path
def initialize(file_name='CHANGELOG.md')
@file_name = file_name
end

def log_changes
if git_repository?
write_file parse_change_log
end
end

private
def git_repository?
initialized = `git rev-parse --is-inside-work-tree`.chomp

if initialized != 'true'
initialized = false
puts 'Exiting. Nothing to create log file.'
end
initialized
end

def write_file(output)

begin
file = File.open(@file_name, 'w')
file.puts output

puts "Create #{@file_name}"
rescue IOError => e
#some error occur, dir not writable etc.
ensure
file.close unless file == nil
end
end

def parse_change_log

output = []

tags=`git for-each-ref --sort='*authordate' --format='%(tag)' refs/tags | grep -v '^$'`

tags = tags.split

tags.reverse!

output << "\n#### [Current]"

previous_tag=''
tags.each do |tag|
current_tag = tag

unless previous_tag.empty?
output << "\n#### #{previous_tag}"
end

output << `git log --pretty=format:" * [%h](#{COMMIT_URL}%h) - __(%an)__ %s%n%n%-b" "#{current_tag}".."#{previous_tag}" | grep -v "Merge branch "`

previous_tag = current_tag
end

output << "\n#### #{previous_tag}"

output << `git log --pretty=format:" * [%h](#{COMMIT_URL}%h) - __(%an)__ %s%n%n%-b" #{previous_tag} | grep -v "Merge branch "`

output.each do |line|

line.encode!('utf-8', invalid: :replace, undef: :replace, replace: '')

if line.index(/#[1-9][0-9]*/)
line.gsub!(/#[1-9][0-9]*/) {|s| "[#{s}](#{ISSUE_URL}#{s[-(s.length-1)..-1]})"}
end
end

output
end
end
end
2 changes: 1 addition & 1 deletion lib/katip/railtie.rb
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ class Railtie < Rails::Railtie
railtie_name :katip

rake_tasks do
load "tasks/katip.rake"
load 'tasks/katip.rake'
end
end
end
5 changes: 3 additions & 2 deletions lib/tasks/katip.rake
Original file line number Diff line number Diff line change
@@ -1,10 +1,11 @@
namespace :katip do
desc 'Create CHANGELOG.md'
desc 'Create change log'
task :create => [:environment] do

file_name = ENV['file'] || 'CHANGELOG.md'

exec Katip.get_file(file_name)
change_logger = Katip::ChangeLogger.new(file_name)

change_logger.log_changes
end
end

0 comments on commit 632117c

Please # to comment.