guerrilla_patch 2.8.7 → 3.0.2

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 25ce0c43673c51855562aa9b2ad730bd9785c864
4
- data.tar.gz: b73e4ec9f0981702d4cdb5c014da52c556b2460e
3
+ metadata.gz: ddc9dac2282bcf39b6a79c7d71fb5ced82712773
4
+ data.tar.gz: e2def0850fe7cc1fadbf2d787aa6fe275596fb57
5
5
  SHA512:
6
- metadata.gz: edb23ab42444b88ccbdd989c6343e5321c6436991968591c811180fd6f00edb0ae4427004cd45268540efeb758b5b707a7233aee03f09f2e5276e8e22b62cc1a
7
- data.tar.gz: 1769f366c9067ce4e22be25f4a36361cb77ee836c63461f5e6055d4dc45622f360367211a0bc5887c240e57369606d24f45769827b80539de3956600e53fb981
6
+ metadata.gz: be95f230f216a62dfa009459ee0f69abead61ecc431dcbfdf7718c2f2a1a077008f0131b7f484a40f723367a3304244cb100d029683ec250148612ae172460d1
7
+ data.tar.gz: 34bf830eb720eb1883cabae852affe2c822deebced450a74152c6683ece909c2cee18117f709d31607f62d2541eba50c93bad98e0acba99209b802756855dedc
data/README.md CHANGED
@@ -1,11 +1,9 @@
1
1
  Guerrilla Patch
2
2
  ================
3
- [![Build Status](https://travis-ci.org/drKreso/guerrilla_patch.png)](https://travis-ci.org/drKreso/guerrilla_patch)
4
-
5
3
 
6
4
  I am tired of hunting and tracking down my own monkey patches. Not to mention hassle of dragging them between projects. I figured gem is a remedy for this.
7
5
 
8
- Assign instance variables automaticaly
6
+ Assign instance variables automatically
9
7
  ---------------------------------------
10
8
  You know that neat coffee script trick that shortens code below.
11
9
 
@@ -144,14 +142,6 @@ end
144
142
 
145
143
  Somehow for my convoluted brain the later reads better.
146
144
 
147
- Text matching
148
- -----------------------------------------
149
- ```
150
- source = { 1 => "Petar goes to the store.", 2 => "It is crazy there." }
151
- target = { 1 => "Petar goes to the store. It is crazy there." }
152
- TextMatcher.match(source,target).should == { 1 => [1, 2] }
153
- ```
154
-
155
145
  Contributing to guerrilla_patch
156
146
  -------------------------------
157
147
 
@@ -1,3 +1,3 @@
1
1
  module GuerrillaPatch
2
- VERSION = "2.8.7"
2
+ VERSION = "3.0.2"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: guerrilla_patch
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.8.7
4
+ version: 3.0.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - drKreso
@@ -35,14 +35,12 @@ files:
35
35
  - lib/guerrilla_patch/allocate.rb
36
36
  - lib/guerrilla_patch/kernel.rb
37
37
  - lib/guerrilla_patch/string.rb
38
- - lib/guerrilla_patch/text_matcher.rb
39
38
  - lib/guerrilla_patch/version.rb
40
39
  - spec/guerrilla_patch/aggregate_by_type/aggregator_spec.rb
41
40
  - spec/guerrilla_patch/aggregate_by_type/divide_by_type_spec.rb
42
41
  - spec/guerrilla_patch/allocate_spec.rb
43
42
  - spec/guerrilla_patch/kernel_spec.rb
44
43
  - spec/guerrilla_patch/string_spec.rb
45
- - spec/guerrilla_patch/text_matcher_spec.rb
46
44
  homepage: http://github.com/drKreso/guerrilla_patch
47
45
  licenses:
48
46
  - MIT
@@ -74,4 +72,3 @@ test_files:
74
72
  - spec/guerrilla_patch/allocate_spec.rb
75
73
  - spec/guerrilla_patch/kernel_spec.rb
76
74
  - spec/guerrilla_patch/string_spec.rb
77
- - spec/guerrilla_patch/text_matcher_spec.rb
@@ -1,60 +0,0 @@
1
- class TextMatcher
2
-
3
- def self.match(source, target)
4
- result = {}
5
- source.each_pair { |key,value| source[key] = value.gsub(' ', '').downcase }
6
- target.each_pair { |key,value| target[key] = value.gsub(' ', '').downcase }
7
-
8
- mapped_source = source.each_with_index.map { |key_value,index| [index] * key_value[1].size }.flatten(1)
9
- mapped_target = target.each_with_index.map { |key_value,index| [index] * key_value[1].size }.flatten(1)
10
-
11
- source_clean_chars = source.each_value.map {|v| v}.join('')
12
- target_clean_chars = target.each_value.map {|v| v}.join('')
13
-
14
- #we have difference so we'll clean up source to match target
15
- if source_clean_chars != target_clean_chars
16
- source_index = 0
17
- target_index = 0
18
- while(target_index < target_clean_chars.size)
19
- if source_clean_chars[source_index] == nil
20
- target_index += 1
21
- elsif source_clean_chars[source_index] != target_clean_chars[target_index]
22
- mapped_source.insert(source_index, '-')
23
- source_index += 1
24
- else
25
- source_index += 1
26
- target_index += 1
27
- end
28
- puts target_index
29
- end
30
- puts " "
31
- puts "#{mapped_source}"
32
- puts "#{mapped_target}"
33
- end
34
-
35
- (0...mapped_target.size).each do |index|
36
- if index == "-"
37
- #nothing should happen
38
- else
39
- result[mapped_target[index]] ||= []
40
- if mapped_source[index] == "-"
41
- #nothing should happen
42
- else
43
- result[mapped_target[index]] << [mapped_source[index]]
44
- end
45
- end
46
- end
47
- result.each_pair { |key, value| result[key] = value.flatten.uniq }
48
-
49
- #map real ids
50
- target_as_pairs = target.map {|key, value| [key, value]}
51
- source_as_pairs = source.map {|key, value| [key, value]}
52
- real_result = {}
53
- result.each_pair do |target_index, source_indexes|
54
- real_result[target_as_pairs[target_index][0]] = source_indexes.map { |source_index| source_as_pairs[source_index][0] }
55
- end
56
-
57
- real_result
58
- end
59
-
60
- end
@@ -1,76 +0,0 @@
1
- require 'guerrilla_patch/text_matcher.rb'
2
-
3
- describe TextMatcher do
4
-
5
- it 'should pair exact matches' do
6
- source = { 1 => "Petar ide u ducan.", 2 => "Tamo je ludnica"}
7
- target = { 1 => "Petar ide u ducan.", 2 => "Tamo je ludnica"}
8
- TextMatcher.match(source,target).should == { 1 => [1], 2 => [2] }
9
- end
10
-
11
- it 'should pair exact matches' do
12
- source = { 1 => "Petar ide u ducan.", 2 => "Tamo je ludnica.", 3=> "Sve je na popustu."}
13
- target = { 1 => "Petar ide u ducan.", 2 => "Tamo je ludnica.", 3=> "Sve je na popustu."}
14
- TextMatcher.match(source,target).should == { 1 => [1], 2 => [2], 3 => [3] }
15
- end
16
-
17
- it 'should pair two for one target' do
18
- source = { 1 => "Petar ide u ducan.", 2 => "Tamo je ludnica." }
19
- target = { 1 => "Petar ide u ducan.Tamo je ludnica." }
20
- TextMatcher.match(source,target).should == { 1 => [1, 2] }
21
- end
22
-
23
- it 'should pair mismatced case' do
24
- source = { 1 => "Petar ide u Ducan.", 2 => "Tamo je ludnica." }
25
- target = { 1 => "Petar ide u ducan.Tamo je ludnica." }
26
- TextMatcher.match(source,target).should == { 1 => [1, 2] }
27
- end
28
-
29
- it 'should pair two for one target and continue matching' do
30
- source = { 1 => "Petar ide u ducan.", 2 => "Tamo je ludnica.", 3 => "A" }
31
- target = { 1 => "Petar ide u ducan.Tamo je ludnica.", 2 => "A" }
32
- TextMatcher.match(source,target).should == { 1 => [1, 2], 2 => [3] }
33
- end
34
-
35
- it 'should pair when index is bigger than single digit number' do
36
- source = { 1 => "A", 2 => "B", 3 => "C", 4 => "D", 5 => "EF", 6 => "G", 7 => "H", 8 => "I",
37
- 9 => "J", 10 => "KL", 11 => "M", 12 => "N", 13 => "O" }
38
- target = { 1 => "A", 2 => "B", 3 => "C", 4 => "D", 5 => "E", 6 => "FG", 7 => "H", 8 => "I",
39
- 9 => "J", 10 => "K", 11 => "LM", 12 => "N", 13 => "O" }
40
- TextMatcher.match(source,target).should == { 1=>[1], 2=>[2], 3=>[3], 4=>[4], 5=>[5], 6=>[5, 6],
41
- 7=>[7], 8=>[8], 9=>[9], 10=>[10], 11=>[10, 11],
42
- 12=>[12], 13=>[13]
43
- }
44
- end
45
-
46
- it 'should pair two for one target regardless of spacing' do
47
- source = { 1 => "Petar ide u ducan.", 2 => "Tamo je ludnica." }
48
- target = { 1 => "Petar ide u ducan. Tamo je ludnica." }
49
- TextMatcher.match(source,target).should == { 1 => [1, 2] }
50
- end
51
-
52
- xit 'should recover after missing target' do
53
- source = { 1 => "Petar ide u ducan.", 2 => "Tamo je ludnica." }
54
- target = { 1 => "Petar ide u ducan.", 2 => "missing", 3=> "Tamo je ludnica." }
55
- TextMatcher.match(source,target).should == { 1 => [1], 2 => [], 3 => [2] }
56
- end
57
-
58
- xit 'should recover after missing source' do
59
- source = { 1 => "Petar ide u ducan.", 2 => "missing", 3 => "Tamo je ludnica." }
60
- target = { 1 => "Petar ide u ducan.", 2=> "Tamo je ludnica." }
61
- TextMatcher.match(source,target).should == { 1 => [1], 2 => [3] }
62
- end
63
-
64
- it 'should recover on half match' do
65
- source = { 1 => "Petar ide u ducan.", 2 => "Tamo je ludnica.", 3 => "Ovo je ok.", 4 => "Sadrzi zadnje dvije." }
66
- target = { 1 => "Petar ide u ducan. Tamo", 2=> "je ludnica." , 3 => "Ovo je ok. Sadrzi zadnje dvije." }
67
- TextMatcher.match(source,target).should == { 1 => [1,2], 2 => [2], 3 => [3,4] }
68
- end
69
-
70
- it 'should recover on half match from source side' do
71
- source = { 1 => "Petar ide u ducan. Tamo", 2 => "je ludnica.", 3 => "Ovo je ok.", 4 => "Sadrzi zadnje dvije." }
72
- target = { 1 => "Petar ide u ducan.", 2=> "Tamo je ludnica." , 3 => "Ovo je ok. Sadrzi zadnje dvije." }
73
- TextMatcher.match(source,target).should == { 1 => [1], 2 => [1,2], 3 => [3,4] }
74
- end
75
-
76
- end