issue-beaver 0.1.1 → 0.1.2

Sign up to get free protection for your applications and to get access to all the features.
data/issue-beaver.gemspec CHANGED
@@ -1,9 +1,10 @@
1
1
  # -*- encoding: utf-8 -*-
2
2
  $:.push File.expand_path("../lib", __FILE__)
3
+ require 'issue_beaver/version'
3
4
 
4
5
  Gem::Specification.new do |s|
5
6
  s.name = "issue-beaver"
6
- s.version = "0.1.1"
7
+ s.version = IssueBeaver::VERSION
7
8
  s.platform = Gem::Platform::RUBY
8
9
  s.authors = ["Stephan Eckardt"]
9
10
  s.email = ["mail@stephaneckardt.com"]
@@ -101,8 +101,8 @@ module IssueBeaver
101
101
 
102
102
  class Match
103
103
 
104
- TITLE_THRESHOLD = 0.4
105
- BODY_THRESHOLD = 0.9
104
+ TITLE_THRESHOLD = 0.2
105
+ TITLE_LENGTH = 8
106
106
 
107
107
  def initialize(todo, issue)
108
108
  @todo = todo
@@ -113,29 +113,25 @@ module IssueBeaver
113
113
 
114
114
 
115
115
  def sane?
116
- (title_degree < TITLE_THRESHOLD) ||
117
- ((body_degree < BODY_THRESHOLD) && (body_accuracy < 0.1))
116
+ (title_degree < TITLE_THRESHOLD) && (title_length > TITLE_LENGTH)
118
117
  end
119
118
 
120
119
 
121
120
  def degree
122
- title_degree + (body_degree * 0.25)
121
+ title_degree
123
122
  end
124
123
 
125
124
 
126
125
  def title_degree() levenshtein(@issue.title, @todo.title) end
127
126
 
128
-
129
- def body_degree() levenshtein(@issue.body, @todo.body) end
130
-
131
-
132
- def body_accuracy() 1.0/[@issue.body.to_s.length, @todo.body.to_s.length].min.to_f end
127
+ def title_length() [@issue.title.to_s.length, @todo.title.to_s.length].min end
133
128
 
134
129
 
135
130
  private
136
131
 
132
+ # Normalized levenshtein distance
137
133
  def levenshtein(a, b)
138
- Levenshtein.distance(a.to_s, b.to_s).to_f / [1, a.to_s.length, b.to_s.length].max
134
+ Levenshtein.normalized_distance(a.to_s, b.to_s)
139
135
  end
140
136
 
141
137
  end
@@ -9,7 +9,7 @@ module IssueBeaver
9
9
  def self.run(*args)
10
10
  command = args[0]
11
11
  runner = self.new
12
- command = args[0]
12
+ command = args[0] || "help"
13
13
  command = "unknown" unless COMMANDS.include? command
14
14
  runner.send(command, *args)
15
15
  end
@@ -57,16 +57,18 @@ module IssueBeaver
57
57
  end
58
58
 
59
59
 
60
- def help
61
- puts "Available commands: #{COMMANDS.join(", ")}"
60
+ def help(*args)
61
+ puts "Issue Beaver version #{IssueBeaver::VERSION}"
62
+ puts "usage: issuebeaver <command> [directory]"
63
+ puts " Available commands: #{COMMANDS.join(", ")}"
62
64
  end
63
65
 
64
66
 
65
67
  private
66
68
 
67
69
  def unknown(command = "", *args, &block)
68
- puts "#{command}: Command not found"
69
70
  help
71
+ puts "#{command}: Command not found"
70
72
  end
71
73
 
72
74
 
@@ -0,0 +1,3 @@
1
+ module IssueBeaver
2
+ VERSION = '0.1.2'
3
+ end
data/lib/issue_beaver.rb CHANGED
@@ -1,6 +1,7 @@
1
1
  $LOAD_PATH.unshift File.expand_path('../../lib', __FILE__)
2
2
 
3
3
  require 'enumerable/merge'
4
+ require 'issue_beaver/version'
4
5
  require 'issue_beaver/shared'
5
6
  require 'issue_beaver/grammars'
6
7
  require 'issue_beaver/models'
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: issue-beaver
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 0.1.2
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-09-23 00:00:00.000000000 Z
12
+ date: 2012-10-08 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: treetop
@@ -217,6 +217,7 @@ files:
217
217
  - lib/issue_beaver/shared/attributes_model.rb
218
218
  - lib/issue_beaver/shared/hash.rb
219
219
  - lib/issue_beaver/shared/model_collection.rb
220
+ - lib/issue_beaver/version.rb
220
221
  - lib/password/password.rb
221
222
  - spec/fixtures/ruby.rb
222
223
  - spec/fixtures/ruby2.rb