ffast 0.0.9 → 0.1.0

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
  SHA256:
3
- metadata.gz: b2cd44ce2405cd969c26c841d7d63d7c15b85cf7a0747ce1f2e08eebff83c490
4
- data.tar.gz: 848f0e3ce2904183e3f0f9ec44590110efb4786ddc98862c1671fec68c11df88
3
+ metadata.gz: 7b1063b0bb3b8dcc82515f0b10fc24601c6b322979d0a53eb6e65fa6f3ab439c
4
+ data.tar.gz: b984df89b42bb0f21c2f91567d37fe10e336fb489fdea3ad8ff5ae658dc1de34
5
5
  SHA512:
6
- metadata.gz: 461a90f7d5d42f9abe6fd425c85d3f6e36dc34fc3afa5abd1ce11f87492315166313e4a9b6876d5b8ada3323264c624fd965c07b1f4040c87c67a3044056ca9d
7
- data.tar.gz: 1118edfdc9f336d8fc7f351575ed5aaf93720856633e12b899a7c8b0e71818f9bd82979571b0c84b2419794ad960b699ea2dc7d91936d6bc3e7daf26986fe000
6
+ metadata.gz: adf2973bf7e616dbd7fe1866abda708afd1e667ee2938d74f3204d26f228b8f235b017f6729cc083651627aee97ac924d6042ef73248e8d5bcd4491065f18ade
7
+ data.tar.gz: b6c77021c7db79ed8e7382e168409cfbc2c66b94681b6ba8fbcd6ec0842aedf3fe431ce894034640a2dfe2b22a8cf22884498d2b40df674e6a697aa16dd1282d
data/lib/fast.rb CHANGED
@@ -95,7 +95,9 @@ module Fast
95
95
  end
96
96
 
97
97
  # Replaces content based on a pattern.
98
- # @param &replacement gives the [Rewriter] context in the block.
98
+ # @param [Astrolabe::Node] ast with the current AST to search.
99
+ # @param [String] pattern with the expression to be targeting nodes.
100
+ # @param [Proc] replacement gives the [Rewriter] context in the block.
99
101
  # @example
100
102
  # Fast.replace?(Fast.ast("a = 1"),"lvasgn") do |node|
101
103
  # replace(node.location.name, 'variable_renamed')
@@ -115,9 +117,7 @@ module Fast
115
117
  rewriter.rewrite(buffer, ast)
116
118
  end
117
119
 
118
- # Replaces the source of an {#ast_from_file} with
119
- # based on a search.
120
- # @return [String] with the content of the new file
120
+ # Replaces the source of an {Fast#ast_from_file} with
121
121
  # and the same source if the pattern does not match.
122
122
  def replace_file(file, pattern, &replacement)
123
123
  ast = ast_from_file(file)
@@ -125,7 +125,7 @@ module Fast
125
125
  end
126
126
 
127
127
  # Search with pattern directly on file
128
- # @return Array<Astrolabe::Node> that matches the pattern
128
+ # @return [Array<Astrolabe::Node>] that matches the pattern
129
129
  def search_file(pattern, file)
130
130
  node = ast_from_file(file)
131
131
  search node, pattern
@@ -133,7 +133,7 @@ module Fast
133
133
 
134
134
  # Capture elements from searches in files. Keep in mind you need to use `$`
135
135
  # in the pattern to make it work.
136
- # @return Array<Object> captured from the pattern matched in the file
136
+ # @return [Array<Object>] captured from the pattern matched in the file
137
137
  def capture_file(pattern, file)
138
138
  node = ast_from_file(file)
139
139
  capture node, pattern
@@ -155,7 +155,7 @@ module Fast
155
155
  end
156
156
 
157
157
  # Return only captures from a search
158
- # @return Array<Object> with all captured elements.
158
+ # @return [Array<Object>] with all captured elements.
159
159
  # If the result is only a single capture, it will return the single element.
160
160
  def capture(node, pattern)
161
161
  res =
@@ -227,8 +227,8 @@ module Fast
227
227
  result
228
228
  end
229
229
 
230
- # @return Array<String> with all ruby files from arguments.
231
- # @param *files can be files or directories.
230
+ # @return [Array<String>] with all ruby files from arguments.
231
+ # @param files can be file paths or directories.
232
232
  # When the argument is a folder, it recursively fetches all `.rb` files from it.
233
233
  def ruby_files_from(*files)
234
234
  directories = files.select(&File.method(:directory?))
@@ -314,11 +314,6 @@ module Fast
314
314
  # ExpressionParser empowers the AST search in Ruby.
315
315
  # All classes inheriting Fast::Find have a grammar shortcut that is processed here.
316
316
  #
317
- # Exclamation Mark to negate: `!(int _)` is equivalent to a `not integer` node.
318
- # Curly Braces allows [Any]: `({int float} _)` or `{(int _) (float _)}`.
319
- # Square Braquets allows [All]: [(int _) !(int 0)] # all integer less zero.
320
- # Dollar sign can be used to capture values: `(${int float} _)` will capture the node type.
321
- #
322
317
  # @example find a simple int node
323
318
  # Fast.expression("int")
324
319
  # # => #<Fast::Find:0x00007ffae39274e0 @token="int">
@@ -620,7 +615,8 @@ module Fast
620
615
  end
621
616
 
622
617
  # Matches any of the internal expressions. Works like a **OR** condition.
623
- # `{int float}` means int or float.
618
+ # @example Matchig int or float
619
+ # Fast.expression("{int float}")
624
620
  class Any < Find
625
621
  def match?(node)
626
622
  token.any? { |expression| Fast.match?(node, expression) }
@@ -717,8 +713,8 @@ module Fast
717
713
 
718
714
  # Find search captures recursively.
719
715
  #
720
- # @return Array<Object> of captures from the expression
721
- # @return true in case of no captures in the expression
716
+ # @return [Array<Object>] of captures from the expression
717
+ # @return [true] in case of no captures in the expression
722
718
  # @see Fast::Capture
723
719
  # @see Fast::FindFromArgument
724
720
  def find_captures(fast = @fast)
@@ -748,9 +744,10 @@ module Fast
748
744
  end
749
745
  end
750
746
 
751
- # @param [FindWithCapture] set the current captures
752
- # as previous captures to the current node.
753
- # @return [void] and only set [FindWithCapture#previous_captures]
747
+ # Prepare token with previous captures
748
+ # @param [FindWithCapture] token set the current captures
749
+ # @return [void]
750
+ # @see [FindWithCapture#previous_captures]
754
751
  def prepare_token(token)
755
752
  case token
756
753
  when Fast::FindWithCapture
@@ -109,20 +109,20 @@ module Fast
109
109
  @expression = expression
110
110
  end
111
111
 
112
- # @param &block yields the node that matches and return the block in the
112
+ # @param block yields the node that matches and return the block in the
113
113
  # instance context of a [Fast::Rewriter]
114
114
  def edit(&block)
115
115
  @replacement = block
116
116
  end
117
117
 
118
- # @param [String] that will be combined to find the {#files}
118
+ # @param [String] files_or_folders that will be combined to find the {#files}
119
119
  def lookup(files_or_folders)
120
120
  @files_or_folders = files_or_folders
121
121
  end
122
122
 
123
123
  # It calls the block after the replacement and use the result
124
124
  # to drive the {Fast::ExperimentFile#ok_experiments} and {Fast::ExperimentFile#fail_experiments}.
125
- # @param &block yields a temporary file with the content replaced in the current round.
125
+ # @param block yields a temporary file with the content replaced in the current round.
126
126
  def policy(&block)
127
127
  @ok_if = block
128
128
  end
@@ -359,10 +359,10 @@ module Fast
359
359
  end
360
360
  done!
361
361
  end
362
- #
362
+
363
363
  # Writes a new file with partial replacements based on the current combination.
364
364
  # Raise error if no changes was made with the given combination indices.
365
- # @param [Array<Integer>] combinations to be replaced.
365
+ # @param [Array<Integer>] combination to be replaced.
366
366
  def run_partial_replacement_with(combination)
367
367
  content = partial_replace(*combination)
368
368
  experimental_file = experimental_filename(combination)
data/lib/fast/version.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Fast
4
- VERSION = '0.0.9'
4
+ VERSION = '0.1.0'
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ffast
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.9
4
+ version: 0.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jônatas Davi Paganini