flay 1.4.3 → 2.0.0.b1

Sign up to get free protection for your applications and to get access to all the features.
data.tar.gz.sig CHANGED
Binary file
@@ -1,3 +1,18 @@
1
+ === 2.0.0.b1 / 2012-08-07
2
+
3
+ * 2 major enhancements:
4
+
5
+ * Parses ruby 1.9! (still in beta)
6
+ * Moved Sexp#deep_each and Sexp#each_sexp to sexp_processor
7
+
8
+ * 1 minor enhancements:
9
+
10
+ * Use File.binread (File.read in 1.8) to bypass encoding errors
11
+
12
+ * 1 bug fix:
13
+
14
+ * Fixed failing tests against ruby_parser 3
15
+
1
16
  === 1.4.3 / 2011-08-10
2
17
 
3
18
  * 1 bug fix:
data/README.txt CHANGED
@@ -27,10 +27,11 @@ braces vs do/end, etc are all ignored. Making this totally rad.
27
27
 
28
28
  * Editor integration (emacs, textmate, other contributions welcome).
29
29
  * Score sequence fragments (a;b;c;d;e) vs (b;c;d) etc.
30
+ * Persistent DB for efficient cross-project flaying.
30
31
 
31
32
  == SYNOPSIS:
32
33
 
33
- % flay -v ~/Work/svn/ruby/ruby_1_8/lib/cgi.rb
34
+ % flay -v --diff ~/Work/svn/ruby/ruby_1_8/lib/cgi.rb
34
35
  Processing /Users/ryan/Work/svn/ruby/ruby_1_8/lib/cgi.rb...
35
36
 
36
37
  Matches found in :defn (mass = 184)
@@ -72,6 +73,7 @@ braces vs do/end, etc are all ignored. Making this totally rad.
72
73
 
73
74
  * ruby_parser
74
75
  * sexp_processor
76
+ * ruby2ruby -- soft dependency: only if you want to use --diff
75
77
 
76
78
  == INSTALL:
77
79
 
data/Rakefile CHANGED
@@ -15,8 +15,8 @@ Hoe.spec 'flay' do
15
15
  self.rubyforge_name = 'seattlerb'
16
16
  self.flay_threshold = 250
17
17
 
18
- extra_deps << ['sexp_processor', '~> 3.0']
19
- extra_deps << ['ruby_parser', '~> 2.0']
18
+ extra_deps << ['sexp_processor', '~> 4.0']
19
+ extra_deps << ['ruby_parser', '~> 3.0.0.a4']
20
20
  end
21
21
 
22
22
  # vim: syntax=ruby
@@ -5,8 +5,16 @@ require 'rubygems'
5
5
  require 'sexp_processor'
6
6
  require 'ruby_parser'
7
7
 
8
+ class File
9
+ RUBY19 = "<3".respond_to? :encoding
10
+
11
+ class << self
12
+ alias :binread :read unless RUBY19
13
+ end
14
+ end
15
+
8
16
  class Flay
9
- VERSION = '1.4.3'
17
+ VERSION = '2.0.0.b1'
10
18
 
11
19
  def self.default_options
12
20
  {
@@ -162,7 +170,7 @@ class Flay
162
170
  end
163
171
 
164
172
  def process_rb file
165
- RubyParser.new.process(File.read(file), file)
173
+ RubyParser.new.process(File.binread(file), file)
166
174
  end
167
175
 
168
176
  def process_sexp pt
@@ -303,21 +311,4 @@ class Sexp
303
311
  end
304
312
  hashes
305
313
  end
306
-
307
- # REFACTOR: move to sexp.rb
308
- def deep_each(&block)
309
- self.each_sexp do |sexp|
310
- block[sexp]
311
- sexp.deep_each(&block)
312
- end
313
- end
314
-
315
- # REFACTOR: move to sexp.rb
316
- def each_sexp
317
- self.each do |sexp|
318
- next unless Sexp === sexp
319
-
320
- yield sexp
321
- end
322
- end
323
314
  end
@@ -53,7 +53,7 @@ class TestSexp < MiniTest::Unit::TestCase
53
53
  def test_process_sexp
54
54
  flay = Flay.new
55
55
 
56
- s = RubyParser.new.process <<-RUBY
56
+ s = Ruby18Parser.new.process <<-RUBY
57
57
  def x(n)
58
58
  if n % 2 == 0
59
59
  return n
@@ -63,9 +63,7 @@ class TestSexp < MiniTest::Unit::TestCase
63
63
  end
64
64
  RUBY
65
65
 
66
- expected = [[:block],
67
- # HACK [:defn],
68
- [:scope]] # only ones big enough
66
+ expected = [] # only ones big enough
69
67
 
70
68
  flay.process_sexp s
71
69
 
@@ -77,7 +75,7 @@ class TestSexp < MiniTest::Unit::TestCase
77
75
  def test_process_sexp_full
78
76
  flay = Flay.new(:mass => 1)
79
77
 
80
- s = RubyParser.new.process <<-RUBY
78
+ s = Ruby18Parser.new.process <<-RUBY
81
79
  def x(n)
82
80
  if n % 2 == 0
83
81
  return n
@@ -87,14 +85,11 @@ class TestSexp < MiniTest::Unit::TestCase
87
85
  end
88
86
  RUBY
89
87
 
90
- expected = [[:arglist, :arglist, :arglist],
91
- [:block],
92
- [:call, :call],
88
+ expected = [[:call, :call],
93
89
  [:call],
94
90
  [:if],
95
91
  [:return],
96
- [:return],
97
- [:scope]]
92
+ [:return]]
98
93
 
99
94
  flay.process_sexp s
100
95
 
@@ -124,7 +119,7 @@ class TestSexp < MiniTest::Unit::TestCase
124
119
 
125
120
  flay = Flay.new opts
126
121
 
127
- s = RubyParser.new.process <<-RUBY
122
+ s = Ruby18Parser.new.process <<-RUBY
128
123
  class Dog
129
124
  def x
130
125
  return "Hello"
metadata CHANGED
@@ -1,13 +1,15 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: flay
3
3
  version: !ruby/object:Gem::Version
4
- hash: 1
5
- prerelease:
4
+ hash: 4094303487
5
+ prerelease: 6
6
6
  segments:
7
+ - 2
8
+ - 0
9
+ - 0
10
+ - b
7
11
  - 1
8
- - 4
9
- - 3
10
- version: 1.4.3
12
+ version: 2.0.0.b1
11
13
  platform: ruby
12
14
  authors:
13
15
  - Ryan Davis
@@ -36,7 +38,7 @@ cert_chain:
36
38
  FBHgymkyj/AOSqKRIpXPhjC6
37
39
  -----END CERTIFICATE-----
38
40
 
39
- date: 2011-08-10 00:00:00 Z
41
+ date: 2012-08-07 00:00:00 Z
40
42
  dependencies:
41
43
  - !ruby/object:Gem::Dependency
42
44
  name: sexp_processor
@@ -46,11 +48,11 @@ dependencies:
46
48
  requirements:
47
49
  - - ~>
48
50
  - !ruby/object:Gem::Version
49
- hash: 7
51
+ hash: 27
50
52
  segments:
51
- - 3
53
+ - 4
52
54
  - 0
53
- version: "3.0"
55
+ version: "4.0"
54
56
  type: :runtime
55
57
  version_requirements: *id001
56
58
  - !ruby/object:Gem::Dependency
@@ -61,11 +63,14 @@ dependencies:
61
63
  requirements:
62
64
  - - ~>
63
65
  - !ruby/object:Gem::Version
64
- hash: 3
66
+ hash: 4094286549
65
67
  segments:
66
- - 2
68
+ - 3
67
69
  - 0
68
- version: "2.0"
70
+ - 0
71
+ - a
72
+ - 4
73
+ version: 3.0.0.a4
69
74
  type: :runtime
70
75
  version_requirements: *id002
71
76
  - !ruby/object:Gem::Dependency
@@ -74,31 +79,45 @@ dependencies:
74
79
  requirement: &id003 !ruby/object:Gem::Requirement
75
80
  none: false
76
81
  requirements:
77
- - - ">="
82
+ - - ~>
78
83
  - !ruby/object:Gem::Version
79
- hash: 1
84
+ hash: 3
80
85
  segments:
81
- - 2
82
86
  - 3
83
- - 1
84
- version: 2.3.1
87
+ - 2
88
+ version: "3.2"
85
89
  type: :development
86
90
  version_requirements: *id003
87
91
  - !ruby/object:Gem::Dependency
88
- name: hoe
92
+ name: rdoc
89
93
  prerelease: false
90
94
  requirement: &id004 !ruby/object:Gem::Requirement
91
95
  none: false
92
96
  requirements:
93
97
  - - ~>
94
98
  - !ruby/object:Gem::Version
95
- hash: 23
99
+ hash: 19
96
100
  segments:
97
- - 2
101
+ - 3
98
102
  - 10
99
- version: "2.10"
103
+ version: "3.10"
100
104
  type: :development
101
105
  version_requirements: *id004
106
+ - !ruby/object:Gem::Dependency
107
+ name: hoe
108
+ prerelease: false
109
+ requirement: &id005 !ruby/object:Gem::Requirement
110
+ none: false
111
+ requirements:
112
+ - - ~>
113
+ - !ruby/object:Gem::Version
114
+ hash: 7
115
+ segments:
116
+ - 3
117
+ - 0
118
+ version: "3.0"
119
+ type: :development
120
+ version_requirements: *id005
102
121
  description: |-
103
122
  Flay analyzes code for structural similarities. Differences in literal
104
123
  values, variable, class, method names, whitespace, programming style,
@@ -146,16 +165,18 @@ required_ruby_version: !ruby/object:Gem::Requirement
146
165
  required_rubygems_version: !ruby/object:Gem::Requirement
147
166
  none: false
148
167
  requirements:
149
- - - ">="
168
+ - - ">"
150
169
  - !ruby/object:Gem::Version
151
- hash: 3
170
+ hash: 25
152
171
  segments:
153
- - 0
154
- version: "0"
172
+ - 1
173
+ - 3
174
+ - 1
175
+ version: 1.3.1
155
176
  requirements: []
156
177
 
157
178
  rubyforge_project: seattlerb
158
- rubygems_version: 1.8.2
179
+ rubygems_version: 1.8.24
159
180
  signing_key:
160
181
  specification_version: 3
161
182
  summary: Flay analyzes code for structural similarities
metadata.gz.sig CHANGED
Binary file