kronk 1.7.5 → 1.7.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/History.rdoc +6 -0
- data/README.rdoc +3 -0
- data/Rakefile +3 -3
- data/lib/kronk.rb +1 -1
- data/lib/kronk/diff.rb +15 -6
- data/test/test_diff.rb +21 -0
- metadata +75 -76
data/History.rdoc
CHANGED
data/README.rdoc
CHANGED
@@ -75,6 +75,9 @@ Parse the data and run an IRB console with the response:
|
|
75
75
|
|
76
76
|
== CONFIGURATION:
|
77
77
|
|
78
|
+
Although Kronk supports Ruby-1.8.7, it's been fine-tuned for Ruby-1.9.2 and
|
79
|
+
runs about 5x faster when benchmarking between 1.8.7p249 and 1.9.2p180.
|
80
|
+
|
78
81
|
Kronk pulls it's config from $HOME/.kronk/rc and supports the following:
|
79
82
|
|
80
83
|
Set the file to save the last http response retrieved in:
|
data/Rakefile
CHANGED
@@ -80,10 +80,10 @@ namespace :bm do
|
|
80
80
|
|
81
81
|
desc "Run performance benchmarks on diffs"
|
82
82
|
task :diff do
|
83
|
-
left = Kronk
|
84
|
-
right = Kronk
|
83
|
+
left = Kronk.retrieve("prod.txt").body
|
84
|
+
right = Kronk.retrieve("beta.txt").body
|
85
85
|
|
86
|
-
diff = Kronk::Diff.
|
86
|
+
diff = Kronk::Diff.new left, right
|
87
87
|
|
88
88
|
arr1 = diff.str1.split "\n"
|
89
89
|
arr2 = diff.str2.split "\n"
|
data/lib/kronk.rb
CHANGED
data/lib/kronk/diff.rb
CHANGED
@@ -126,12 +126,16 @@ class Kronk
|
|
126
126
|
common_sequences(arr1, arr2) do |seq|
|
127
127
|
next if used1[seq[1]] || used2[seq[2]]
|
128
128
|
|
129
|
-
next if used1[seq[1], seq[0]].
|
130
|
-
used2[seq[2], seq[0]].
|
131
|
-
|
132
|
-
|
133
|
-
|
134
|
-
|
129
|
+
next if Array(used1[seq[1], seq[0]]).index(true) ||
|
130
|
+
Array(used2[seq[2], seq[0]]).index(true)
|
131
|
+
|
132
|
+
if seq[1] > (used1.length / 2)
|
133
|
+
next if Array(used1[seq[1]+seq[0]..-1]).nitems !=
|
134
|
+
Array(used2[seq[2]+seq[0]..-1]).nitems
|
135
|
+
else
|
136
|
+
next if Array(used1[0..seq[1]]).nitems !=
|
137
|
+
Array(used2[0..seq[2]]).nitems
|
138
|
+
end
|
135
139
|
|
136
140
|
used1.fill(true, seq[1], seq[0])
|
137
141
|
used2.fill(true, seq[2], seq[0])
|
@@ -183,6 +187,11 @@ class Kronk
|
|
183
187
|
|
184
188
|
sequences[len] ||= []
|
185
189
|
sequences[len] << [len, i, start_j]
|
190
|
+
|
191
|
+
if len > 1
|
192
|
+
sequences[len-1] ||= []
|
193
|
+
sequences[len-1] << [(len-1), i, start_j]
|
194
|
+
end
|
186
195
|
end
|
187
196
|
end
|
188
197
|
|
data/test/test_diff.rb
CHANGED
@@ -204,6 +204,27 @@ class TestDiff < Test::Unit::TestCase
|
|
204
204
|
end
|
205
205
|
|
206
206
|
|
207
|
+
def test_create_diff_duplicate_match
|
208
|
+
str1 = "line2\nline3a\nline4\nline5\nline6\nline4\nline6\nline7\nline8\nline9"
|
209
|
+
str2 = "line2\nline4\nline5\nline6\nline7\nline8\nline9"
|
210
|
+
|
211
|
+
expected = [
|
212
|
+
"line2",
|
213
|
+
[["line3a"], []],
|
214
|
+
"line4",
|
215
|
+
"line5",
|
216
|
+
[["line6", "line4"], []],
|
217
|
+
"line6",
|
218
|
+
"line7",
|
219
|
+
"line8",
|
220
|
+
"line9"
|
221
|
+
]
|
222
|
+
|
223
|
+
diff = Kronk::Diff.new str1, str2
|
224
|
+
assert_equal expected, diff.create_diff
|
225
|
+
end
|
226
|
+
|
227
|
+
|
207
228
|
def test_count
|
208
229
|
assert_equal 4, @diff.count
|
209
230
|
end
|
metadata
CHANGED
@@ -1,109 +1,107 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
2
|
name: kronk
|
3
|
-
version: !ruby/object:Gem::Version
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 1.7.6
|
4
5
|
prerelease:
|
5
|
-
version: 1.7.5
|
6
6
|
platform: ruby
|
7
|
-
authors:
|
7
|
+
authors:
|
8
8
|
- Jeremie Castagna
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
- !ruby/object:Gem::Dependency
|
12
|
+
date: 2011-10-29 00:00:00.000000000Z
|
13
|
+
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
16
15
|
name: json
|
17
|
-
|
18
|
-
requirement: &id001 !ruby/object:Gem::Requirement
|
16
|
+
requirement: &2168882440 !ruby/object:Gem::Requirement
|
19
17
|
none: false
|
20
|
-
requirements:
|
18
|
+
requirements:
|
21
19
|
- - ~>
|
22
|
-
- !ruby/object:Gem::Version
|
23
|
-
version:
|
20
|
+
- !ruby/object:Gem::Version
|
21
|
+
version: '1.5'
|
24
22
|
type: :runtime
|
25
|
-
version_requirements: *id001
|
26
|
-
- !ruby/object:Gem::Dependency
|
27
|
-
name: cookiejar
|
28
23
|
prerelease: false
|
29
|
-
|
24
|
+
version_requirements: *2168882440
|
25
|
+
- !ruby/object:Gem::Dependency
|
26
|
+
name: cookiejar
|
27
|
+
requirement: &2168881680 !ruby/object:Gem::Requirement
|
30
28
|
none: false
|
31
|
-
requirements:
|
29
|
+
requirements:
|
32
30
|
- - ~>
|
33
|
-
- !ruby/object:Gem::Version
|
31
|
+
- !ruby/object:Gem::Version
|
34
32
|
version: 0.3.0
|
35
33
|
type: :runtime
|
36
|
-
version_requirements: *id002
|
37
|
-
- !ruby/object:Gem::Dependency
|
38
|
-
name: plist
|
39
34
|
prerelease: false
|
40
|
-
|
35
|
+
version_requirements: *2168881680
|
36
|
+
- !ruby/object:Gem::Dependency
|
37
|
+
name: plist
|
38
|
+
requirement: &2168880700 !ruby/object:Gem::Requirement
|
41
39
|
none: false
|
42
|
-
requirements:
|
40
|
+
requirements:
|
43
41
|
- - ~>
|
44
|
-
- !ruby/object:Gem::Version
|
42
|
+
- !ruby/object:Gem::Version
|
45
43
|
version: 3.1.0
|
46
44
|
type: :development
|
47
|
-
version_requirements: *id003
|
48
|
-
- !ruby/object:Gem::Dependency
|
49
|
-
name: nokogiri
|
50
45
|
prerelease: false
|
51
|
-
|
46
|
+
version_requirements: *2168880700
|
47
|
+
- !ruby/object:Gem::Dependency
|
48
|
+
name: nokogiri
|
49
|
+
requirement: &2168879840 !ruby/object:Gem::Requirement
|
52
50
|
none: false
|
53
|
-
requirements:
|
51
|
+
requirements:
|
54
52
|
- - ~>
|
55
|
-
- !ruby/object:Gem::Version
|
56
|
-
version:
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '1.4'
|
57
55
|
type: :development
|
58
|
-
version_requirements: *id004
|
59
|
-
- !ruby/object:Gem::Dependency
|
60
|
-
name: mocha
|
61
56
|
prerelease: false
|
62
|
-
|
57
|
+
version_requirements: *2168879840
|
58
|
+
- !ruby/object:Gem::Dependency
|
59
|
+
name: mocha
|
60
|
+
requirement: &2168878580 !ruby/object:Gem::Requirement
|
63
61
|
none: false
|
64
|
-
requirements:
|
62
|
+
requirements:
|
65
63
|
- - ~>
|
66
|
-
- !ruby/object:Gem::Version
|
64
|
+
- !ruby/object:Gem::Version
|
67
65
|
version: 0.9.12
|
68
66
|
type: :development
|
69
|
-
version_requirements: *id005
|
70
|
-
- !ruby/object:Gem::Dependency
|
71
|
-
name: em-http-request
|
72
67
|
prerelease: false
|
73
|
-
|
68
|
+
version_requirements: *2168878580
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: em-http-request
|
71
|
+
requirement: &2168877780 !ruby/object:Gem::Requirement
|
74
72
|
none: false
|
75
|
-
requirements:
|
73
|
+
requirements:
|
76
74
|
- - ~>
|
77
|
-
- !ruby/object:Gem::Version
|
75
|
+
- !ruby/object:Gem::Version
|
78
76
|
version: 1.0.0
|
79
77
|
type: :development
|
80
|
-
version_requirements: *id006
|
81
|
-
- !ruby/object:Gem::Dependency
|
82
|
-
name: hoe
|
83
78
|
prerelease: false
|
84
|
-
|
79
|
+
version_requirements: *2168877780
|
80
|
+
- !ruby/object:Gem::Dependency
|
81
|
+
name: hoe
|
82
|
+
requirement: &2168876780 !ruby/object:Gem::Requirement
|
85
83
|
none: false
|
86
|
-
requirements:
|
84
|
+
requirements:
|
87
85
|
- - ~>
|
88
|
-
- !ruby/object:Gem::Version
|
89
|
-
version:
|
86
|
+
- !ruby/object:Gem::Version
|
87
|
+
version: '2.11'
|
90
88
|
type: :development
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
89
|
+
prerelease: false
|
90
|
+
version_requirements: *2168876780
|
91
|
+
description: ! 'Kronk runs diffs against data from live and cached http responses.
|
92
|
+
|
93
|
+
Kronk was made possible by the sponsoring of AT&T Interactive.'
|
94
|
+
email:
|
96
95
|
- yaksnrainbows@gmail.com
|
97
|
-
executables:
|
96
|
+
executables:
|
98
97
|
- kronk
|
99
98
|
extensions: []
|
100
|
-
|
101
|
-
extra_rdoc_files:
|
99
|
+
extra_rdoc_files:
|
102
100
|
- Manifest.txt
|
103
101
|
- History.rdoc
|
104
102
|
- README.rdoc
|
105
103
|
- TODO.rdoc
|
106
|
-
files:
|
104
|
+
files:
|
107
105
|
- .autotest
|
108
106
|
- History.rdoc
|
109
107
|
- Manifest.txt
|
@@ -173,33 +171,34 @@ files:
|
|
173
171
|
- .gemtest
|
174
172
|
homepage: https://github.com/yaksnrainbows/kronk
|
175
173
|
licenses: []
|
176
|
-
|
177
174
|
post_install_message:
|
178
|
-
rdoc_options:
|
175
|
+
rdoc_options:
|
179
176
|
- --main
|
180
177
|
- README.rdoc
|
181
|
-
require_paths:
|
178
|
+
require_paths:
|
182
179
|
- lib
|
183
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
180
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
184
181
|
none: false
|
185
|
-
requirements:
|
186
|
-
- -
|
187
|
-
- !ruby/object:Gem::Version
|
188
|
-
version:
|
189
|
-
|
182
|
+
requirements:
|
183
|
+
- - ! '>='
|
184
|
+
- !ruby/object:Gem::Version
|
185
|
+
version: '0'
|
186
|
+
segments:
|
187
|
+
- 0
|
188
|
+
hash: -2280556396485806807
|
189
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
190
190
|
none: false
|
191
|
-
requirements:
|
192
|
-
- -
|
193
|
-
- !ruby/object:Gem::Version
|
194
|
-
version:
|
191
|
+
requirements:
|
192
|
+
- - ! '>='
|
193
|
+
- !ruby/object:Gem::Version
|
194
|
+
version: '0'
|
195
195
|
requirements: []
|
196
|
-
|
197
196
|
rubyforge_project: kronk
|
198
|
-
rubygems_version: 1.8.
|
197
|
+
rubygems_version: 1.8.10
|
199
198
|
signing_key:
|
200
199
|
specification_version: 3
|
201
200
|
summary: Kronk runs diffs against data from live and cached http responses
|
202
|
-
test_files:
|
201
|
+
test_files:
|
203
202
|
- test/test_assertions.rb
|
204
203
|
- test/test_cmd.rb
|
205
204
|
- test/test_core_ext.rb
|