coffee_trace 0.0.2 → 0.0.3

Sign up to get free protection for your applications and to get access to all the features.
data/README.md CHANGED
@@ -40,6 +40,10 @@ Coffee Trace will remove all log statements that it added to files below the cur
40
40
 
41
41
  ***
42
42
 
43
+ For those interested in the source code, I was experimenting with a pattern where class names are not nouns, but the single responsibility of the class. I am not convinced yet that it is a pattern I'd use on a bigger project, but it is quite interesting and seems to help keep classes small and testable.
44
+
45
+ ***
46
+
43
47
  Copyright (c) 2011 Chris Aitchison. See LICENSE for details.
44
48
 
45
49
 
@@ -1,6 +1,5 @@
1
1
  module CoffeeTrace
2
2
  class CLI
3
-
4
3
  def initialize insert_logging=CoffeeTrace::InsertLogging.new
5
4
  @insert_logging = insert_logging
6
5
  @files = Dir.glob "**/*.coffee"
@@ -8,27 +7,27 @@ module CoffeeTrace
8
7
 
9
8
  def insert_logging
10
9
  @files.each do |file|
11
- prefix =File.basename file, ".coffee"
12
- result = @insert_logging.into File.readlines(file), prefix
13
- write_lines file, result
10
+ prefix =File.basename file, ".coffee"
11
+ result = @insert_logging.into File.readlines(file), prefix
12
+ write_lines file, result
14
13
  end
15
14
  end
16
15
 
17
16
  def remove_logging
18
17
  @files.each do |file|
19
- lines = @insert_logging.into File.readlines(file)
18
+ lines = @insert_logging.into File.readlines(file)
20
19
  result = lines.select do |line|
21
- /console\.log.*#coffee_trace.*/.match(line).nil?
22
- end
23
- write_lines file, result
20
+ /console\.log.*#coffee_trace.*/.match(line).nil?
21
+ end
22
+ write_lines file, result
24
23
  end
25
24
  end
26
-
25
+
26
+ private
27
27
  def write_lines(path, data)
28
28
  File.open(path, "wb") do |file|
29
29
  file.puts data
30
30
  end
31
31
  end
32
-
33
32
  end
34
33
  end
@@ -1,7 +1,5 @@
1
- module CoffeeTrace
2
-
1
+ module CoffeeTrace
3
2
  class InsertLogStatement
4
-
5
3
  def for line, prefix=nil
6
4
  leading_spaces, method_name, args = parse_function line
7
5
  return unless leading_spaces
@@ -13,17 +11,14 @@ module CoffeeTrace
13
11
  end
14
12
 
15
13
  private
16
-
17
14
  def parse_function line
18
15
  no_arg_function_match = line.scan(/^( *)(\w+): * \(? *\)? *[-=]> *$/)
19
- return parse_function_with_args(line) if no_arg_function_match.empty?
20
- no_arg_function_match[0]
16
+ no_arg_function_match.empty? ? parse_function_with_args(line) : no_arg_function_match.first
21
17
  end
22
18
 
23
19
  def parse_function_with_args line
24
20
  arg_function_match = line.scan(/^( *)(\w+): *\((.*)\) *[-=]> *$/)
25
- return if arg_function_match.empty?
26
- return arg_function_match[0]
21
+ arg_function_match.empty? ? nil : arg_function_match.first
27
22
  end
28
23
  end
29
24
 
@@ -9,8 +9,8 @@ module CoffeeTrace
9
9
  result = []
10
10
  lines.each do |line|
11
11
  result.pop if is_coffee_trace_log?(line)
12
- result << line
13
- result << (@insert_log_statement.for line, prefix)
12
+ result << line
13
+ result << (@insert_log_statement.for line, prefix)
14
14
  end
15
15
  result.compact
16
16
  end
@@ -1,3 +1,3 @@
1
1
  module CoffeeTrace
2
- VERSION = "0.0.2"
2
+ VERSION = "0.0.3"
3
3
  end
@@ -31,7 +31,6 @@ describe CoffeeTrace::InsertLogStatement do
31
31
  assert " renderPoi: (poi) =>", " console.log 'renderPoi', poi #coffee_trace"
32
32
  end
33
33
 
34
-
35
34
  it "handles trailing spaces" do
36
35
  assert " initialize: -> ", " console.log 'initialize' #coffee_trace"
37
36
  end
@@ -39,6 +38,7 @@ describe CoffeeTrace::InsertLogStatement do
39
38
  it "adds a prefix if given" do
40
39
  assert_with_prefix " initialize: -> ","trace_logger"," console.log 'trace_logger-initialize' #coffee_trace"
41
40
  end
41
+
42
42
  it "indents correctly" do
43
43
  assert "a: ->", " console.log 'a' #coffee_trace"
44
44
  assert " a: ->", " console.log 'a' #coffee_trace"
metadata CHANGED
@@ -2,7 +2,7 @@
2
2
  name: coffee_trace
3
3
  version: !ruby/object:Gem::Version
4
4
  prerelease:
5
- version: 0.0.2
5
+ version: 0.0.3
6
6
  platform: ruby
7
7
  authors:
8
8
  - Chris Aitchison