SpecMe 0.0.1.pre3 → 0.0.1

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: 2f1ebde4dbe4932ee6c6d524ce26b4d9d76e54fc
4
- data.tar.gz: a81c5823843a8b79622093f9606a4067e9c493ec
3
+ metadata.gz: 6feeb4ec8f1646fd0348b2a9e370c1816483391d
4
+ data.tar.gz: 3bb19d98bd11bc9354136f3678e238e2fe6779f0
5
5
  SHA512:
6
- metadata.gz: 900466d98a2c32fe4064f2f8b079cc9ad338eb55e5ac4a90ede0c9edd572ba9b2144e3eabbd97ed27c436f451fa4eb5fe6439bf0f5d4294b302e1b358518f16f
7
- data.tar.gz: aac54adf925d1d61391717bc651b906554a459016c364de1f9657cd64d5ddbea56814d02c07baf7b3ab746041cdabe8332daa4a1281d2bb74bad68289b6feb5c
6
+ metadata.gz: 04202fe805bac5d6d87b1a394b91c50fbb54a69b0666a4199a7f420afe5dfaa0cc77c2df25b3f503ae858e199f3dccae23c8d1c62dd289d41d0e1e5c3a42da76
7
+ data.tar.gz: 5f7bea2dfb0a026fa7e5bf878bae3694583109ed1ab17c2a37056f0924128d68c7cc6965da2b89f9c9468e930043c0f36e6e0bee3752ee9bc89301ecaa78941e
data/lib/spec_me.rb CHANGED
@@ -38,7 +38,7 @@ class SpecMe
38
38
  lines.each do | line |
39
39
  state_machine line.chomp
40
40
  end
41
- post_parse
41
+ # post_parse
42
42
  end
43
43
 
44
44
  def parse_line line
@@ -54,9 +54,16 @@ class SpecMe
54
54
 
55
55
  def post_parse
56
56
  # No need to create specs if there are no expectations
57
- self.ast = [] unless ast.any?{ |node| %r{_xp\z} === node.first }
58
57
  end
58
+
59
59
  private
60
+ def add_block_to_ast
61
+ self.ast << []
62
+ end
63
+
64
+ def clean_last_node
65
+ ast.pop unless ast.last.any?{ |node| %r{_xp\z} === node.first }
66
+ end
60
67
 
61
68
  def state_machine line
62
69
  case @state
@@ -64,11 +71,13 @@ class SpecMe
64
71
  # update_config_from line if config.instruction_line === line
65
72
  return unless config.start_code_block === line
66
73
  @state = :inside
74
+ add_block_to_ast
67
75
  when :inside
68
76
  if config.end_code_block === line
69
77
  @state = :outside
78
+ clean_last_node
70
79
  else
71
- self.ast << parse_line( line )
80
+ ast.last << parse_line( line )
72
81
  end
73
82
  end
74
83
  end
@@ -6,10 +6,19 @@ class SpecMe
6
6
  (
7
7
  spec_helper_lines(spec_helper) +
8
8
  description( file_name: file_name, count: count, **params ) +
9
+ ast.each_with_index.map do | block_node, idx |
10
+ render_one( block_node, count: count + idx, **params )
11
+ end +
12
+ end_lines( 1 )
13
+ ).flatten
14
+ end
15
+
16
+ def render_one( block_node, count:1, **params)
17
+ (
9
18
  example( count: count ) +
10
- code(ast) +
11
- end_lines( 2 )
12
- ) # .tap{ |r| puts r }
19
+ code(block_node) +
20
+ end_lines(1, 1)
21
+ )# .tap{ |r| puts r }
13
22
  end
14
23
 
15
24
  def code(ast)
@@ -22,9 +31,9 @@ class SpecMe
22
31
  [%{describe '#{example_group_name}', :#{rspec_tag} do}] #.tap{|r| p description: r}
23
32
  end
24
33
 
25
- def end_lines n
34
+ def end_lines n, indent=0
26
35
  n.times.map{ |i|
27
- ' ' * (n-i.succ) + 'end'
36
+ ' ' * (n-i.succ+indent) + 'end'
28
37
  }
29
38
  end
30
39
 
@@ -1,3 +1,3 @@
1
1
  class SpecMe
2
- VERSION = "0.0.1.pre3"
2
+ VERSION = "0.0.1"
3
3
  end # class SpecMe
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: SpecMe
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1.pre3
4
+ version: 0.0.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Robert Dober
@@ -67,9 +67,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
67
67
  version: 2.1.0
68
68
  required_rubygems_version: !ruby/object:Gem::Requirement
69
69
  requirements:
70
- - - ">"
70
+ - - ">="
71
71
  - !ruby/object:Gem::Version
72
- version: 1.3.1
72
+ version: '0'
73
73
  requirements: []
74
74
  rubyforge_project:
75
75
  rubygems_version: 2.2.0