tailor 1.4.0 → 1.4.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (70) hide show
  1. checksums.yaml +4 -4
  2. data/.travis.yml +2 -3
  3. data/Gemfile.lock +39 -31
  4. data/History.md +220 -207
  5. data/README.md +58 -45
  6. data/features/step_definitions/indentation_steps.rb +1 -1
  7. data/lib/tailor/reporter.rb +19 -7
  8. data/lib/tailor/rulers/spaces_before_lbrace_ruler.rb +0 -1
  9. data/lib/tailor/rulers/spaces_before_rbrace_ruler.rb +0 -1
  10. data/lib/tailor/rulers/spaces_in_empty_braces_ruler.rb +0 -1
  11. data/lib/tailor/version.rb +1 -1
  12. data/spec/functional/conditional_parentheses_spec.rb +1 -1
  13. data/spec/functional/conditional_spacing_spec.rb +1 -1
  14. data/spec/functional/configuration_spec.rb +61 -52
  15. data/spec/functional/horizontal_spacing/braces_spec.rb +134 -134
  16. data/spec/functional/horizontal_spacing/brackets_spec.rb +34 -36
  17. data/spec/functional/horizontal_spacing/comma_spacing_spec.rb +25 -27
  18. data/spec/functional/horizontal_spacing/hard_tabs_spec.rb +42 -42
  19. data/spec/functional/horizontal_spacing/long_lines_spec.rb +15 -17
  20. data/spec/functional/horizontal_spacing/long_methods_spec.rb +4 -4
  21. data/spec/functional/horizontal_spacing/parens_spec.rb +45 -45
  22. data/spec/functional/horizontal_spacing/trailing_whitespace_spec.rb +7 -8
  23. data/spec/functional/horizontal_spacing_spec.rb +10 -11
  24. data/spec/functional/indentation_spacing/argument_alignment_spec.rb +33 -62
  25. data/spec/functional/indentation_spacing/bad_indentation_spec.rb +176 -179
  26. data/spec/functional/indentation_spacing_spec.rb +13 -14
  27. data/spec/functional/naming/camel_case_methods_spec.rb +4 -6
  28. data/spec/functional/naming/screaming_snake_case_classes_spec.rb +28 -31
  29. data/spec/functional/naming_spec.rb +3 -3
  30. data/spec/functional/rake_task_spec.rb +9 -28
  31. data/spec/functional/string_interpolation_spec.rb +1 -1
  32. data/spec/functional/string_quoting_spec.rb +1 -1
  33. data/spec/functional/vertical_spacing/class_length_spec.rb +4 -6
  34. data/spec/functional/vertical_spacing/method_length_spec.rb +15 -17
  35. data/spec/functional/vertical_spacing_spec.rb +3 -3
  36. data/spec/spec_helper.rb +2 -0
  37. data/spec/support/argument_alignment_cases.rb +32 -32
  38. data/spec/support/conditional_parentheses_cases.rb +26 -26
  39. data/spec/support/good_indentation_cases.rb +205 -205
  40. data/spec/support/horizontal_spacing_cases.rb +53 -54
  41. data/spec/support/line_indentation_cases.rb +20 -20
  42. data/spec/support/naming_cases.rb +12 -12
  43. data/spec/support/string_interpolation_cases.rb +17 -17
  44. data/spec/support/string_quoting_cases.rb +12 -12
  45. data/spec/support/vertical_spacing_cases.rb +8 -8
  46. data/spec/unit/tailor/cli/options_spec.rb +20 -14
  47. data/spec/unit/tailor/cli_spec.rb +29 -43
  48. data/spec/unit/tailor/composite_observable_spec.rb +1 -1
  49. data/spec/unit/tailor/configuration/file_set_spec.rb +10 -11
  50. data/spec/unit/tailor/configuration/style_spec.rb +41 -42
  51. data/spec/unit/tailor/configuration_spec.rb +14 -12
  52. data/spec/unit/tailor/formatter_spec.rb +3 -3
  53. data/spec/unit/tailor/formatters/yaml_spec.rb +12 -13
  54. data/spec/unit/tailor/lexed_line_spec.rb +67 -69
  55. data/spec/unit/tailor/lexer/token_spec.rb +7 -7
  56. data/spec/unit/tailor/lexer_spec.rb +24 -24
  57. data/spec/unit/tailor/problem_spec.rb +12 -12
  58. data/spec/unit/tailor/reporter_spec.rb +8 -9
  59. data/spec/unit/tailor/ruler_spec.rb +10 -10
  60. data/spec/unit/tailor/rulers/indentation_spaces_ruler/indentation_manager_spec.rb +90 -86
  61. data/spec/unit/tailor/rulers/indentation_spaces_ruler_spec.rb +13 -13
  62. data/spec/unit/tailor/rulers/spaces_after_comma_ruler_spec.rb +4 -4
  63. data/spec/unit/tailor/rulers/spaces_after_lbrace_ruler_spec.rb +19 -19
  64. data/spec/unit/tailor/rulers/spaces_before_lbrace_ruler_spec.rb +6 -6
  65. data/spec/unit/tailor/rulers/spaces_before_rbrace_ruler_spec.rb +6 -6
  66. data/spec/unit/tailor/rulers_spec.rb +1 -1
  67. data/spec/unit/tailor/version_spec.rb +1 -2
  68. data/spec/unit/tailor_spec.rb +2 -2
  69. data/tailor.gemspec +3 -3
  70. metadata +20 -6
data/README.md CHANGED
@@ -1,14 +1,14 @@
1
- # tailor
1
+ tailor
2
+ ======
2
3
 
3
4
  * http://github.com/turboladen/tailor
4
5
 
5
6
 
6
7
  [<img src="https://secure.travis-ci.org/turboladen/tailor.png?branch=master"
7
- alt="Build Status" />](http://travis-ci.org/turboladen/tailor) [<img
8
- src="https://codeclimate.com/badge.png"
9
- />](https://codeclimate.com/github/turboladen/tailor)
8
+ alt="Build Status" />](http://travis-ci.org/turboladen/tailor) [![Code Climate](https://codeclimate.com/github/turboladen/tailor.png)](https://codeclimate.com/github/turboladen/tailor)
10
9
 
11
- ## DESCRIPTION:
10
+ DESCRIPTION:
11
+ ------------
12
12
 
13
13
  tailor parses Ruby files and measures them with some style and static analysis
14
14
  "rulers". Default values for the Rulers are based on a number of style guides
@@ -18,7 +18,8 @@ http://wiki.github.com/turboladen/tailor.
18
18
  tailor's goal is to help you be consistent with your style, throughout your
19
19
  project, whatever style that may be.
20
20
 
21
- ## FEATURES/PROBLEMS:
21
+ FEATURES/PROBLEMS:
22
+ ------------------
22
23
 
23
24
  * Checks for bad style in Ruby files
24
25
  * Recursively in a directory, or...
@@ -61,17 +62,17 @@ project, whatever style that may be.
61
62
  * (Well, this may be stretching things a bit, but...) Exit 1 on failures
62
63
 
63
64
 
65
+ SYNOPSIS:
66
+ ---------
64
67
 
65
- ## SYNOPSIS:
66
-
67
- ### Why style check?
68
+ ### Why style check? ###
68
69
 
69
70
  If you're reading this, there's a good chance you already have your own
70
71
  reasons for doing so. If you're not familiar with static analysis, give
71
72
  tailor a go for a few days and see if you think it improves your code's
72
73
  readability.
73
74
 
74
- ### What's it do?
75
+ ### What's it do? ###
75
76
 
76
77
  At tailor's inception, there were some other static analysis tools for Ruby,
77
78
  but none which checked style stuff; tailor started off as a means to fill this
@@ -80,7 +81,7 @@ various Ruby 1.9 incompatibilities, and left a bigger tool gap for Rubyists.
80
81
  Right now it's mostly a style-checker, but might into a tool for analyzing
81
82
  other aspects of your Ruby code.
82
83
 
83
- ### Since 0.x...
84
+ ### Since 0.x... ###
84
85
 
85
86
  tailor 1.x is a marked improvement over 0.x. While 0.x provided a few (pretty
86
87
  inconsistent) style checks, its design made the code get all spaghetti-like,
@@ -88,7 +89,7 @@ with lots of really gnarly regular expression matching, making it a really bear
88
89
  to add new features and fix bugs. tailor 1.x is completely redesigned to make
89
90
  that whole process much easier.
90
91
 
91
- ### Measure Stuff
92
+ ### Measure Stuff ###
92
93
 
93
94
  Check *all* files in a directory:
94
95
 
@@ -131,7 +132,7 @@ require 'tailor/rake_task'
131
132
  Tailor::RakeTask.new
132
133
  ```
133
134
 
134
- #### On style...
135
+ #### On style... ####
135
136
 
136
137
  The features list, above, shows some aspects of style that should be fairly
137
138
  straightforward (as to their meaning and reason), however, others make some
@@ -199,7 +200,7 @@ uses; it just might not support your style yet. If tailor doesn't support
199
200
  your style, please feel free to take a look at the issues list and make a
200
201
  request. ...or fork away!
201
202
 
202
- ### Configurable:
203
+ ### Configurable: ###
203
204
 
204
205
  Not everyone prefers the same style of, well, anything really. tailor is
205
206
  configurable to allow you to check your code against the style measurements
@@ -208,7 +209,7 @@ that you want.
208
209
  It has default values for each of the "rulers" it uses, but if you want to
209
210
  customize these, there are a number of ways you can do so.
210
211
 
211
- #### CLI
212
+ #### CLI ####
212
213
 
213
214
  At any time, you can tell tailor to show you the configuration that it's going
214
215
  to use by doing:
@@ -236,7 +237,7 @@ If you want to simply disable a ruler, just pass `off` to the option:
236
237
  $ tailor --max-line-length off lib/
237
238
  ```
238
239
 
239
- #### Configuration File
240
+ #### Configuration File ####
240
241
 
241
242
  While you can drive most tailor options from the command line, configuration
242
243
  files allow for some more flexibility with style rulers, file lists, and
@@ -264,7 +265,7 @@ end
264
265
 
265
266
  This brings us to the concept of "file sets"...
266
267
 
267
- ##### File Sets
268
+ ##### File Sets #####
268
269
 
269
270
  File sets allow you to use different style rulers against different groups of
270
271
  files. You may, for example, want your Rails app code to allow for longer
@@ -330,7 +331,7 @@ Tailor.config do |config|
330
331
  end
331
332
  ```
332
333
 
333
- ##### Formatters
334
+ ##### Formatters #####
334
335
 
335
336
  By default Tailor uses the text formatter, printing the results on console.
336
337
  Tailor also provides a YAML formatter, that accepts an output file if using
@@ -346,36 +347,36 @@ Tailor.config do |config|
346
347
  end
347
348
  ```
348
349
 
349
- ### Define A Custom Ruler
350
+ ### Define A Custom Ruler ###
350
351
 
351
352
  While tailor provides a number of Rulers for checking style, it also provides
352
353
  a way for you to add your own rulers without having to delve into its innards.
353
354
  To do this, you need to do the following.
354
355
 
355
- #### Create the Ruler
356
+ #### Create the Ruler ####
356
357
 
357
358
  Before jumping in to this, take a look at {Tailor::Ruler} and any of the
358
359
  existing Rulers in `lib/tailor/rulers/`. There are some key things a new
359
360
  Ruler must have:
360
361
 
361
- * the class name ends with "Ruler"
362
- * it inherits {Tailor::Ruler}
363
- * it's defined within the {Tailor::Rulers} module
364
- * `#initialize` defines two parameters:
365
- 1. `config` sets `@config` to the "golden rule" value for what you're
366
- measuring
367
- 2. `options` is a Hash, that should at least be passed the `:level =>` you
368
- want the problem to be logged as
362
+ * the class name ends with "Ruler"
363
+ * it inherits {Tailor::Ruler}
364
+ * it's defined within the {Tailor::Rulers} module
365
+ * `#initialize` defines two parameters:
366
+ 1.`config` sets `@config` to the "golden rule" value for what you're
367
+ measuring
368
+ 2.`options` is a Hash, that should at least be passed the `:level =>` you
369
+ want the problem to be logged as
369
370
 
370
- * `#add_lexer_observers` gets passed a list of {Tailor::Lexer} event types
371
- that the ruler should get notified on
372
- * it defines call-back methods for {Tailor::Lexer} to call when it comes
373
- across an event of interest
374
- * it calls `#measure` to assess if the criteria it's checking has been met
375
- * it adds a {Tailor::Problem} to +@problems+ when one is found in `#measure`
371
+ * `#add_lexer_observers` gets passed a list of {Tailor::Lexer} event types
372
+ that the ruler should get notified on
373
+ * it defines call-back methods for {Tailor::Lexer} to call when it comes
374
+ across an event of interest
375
+ * it calls `#measure` to assess if the criteria it's checking has been met
376
+ * it adds a {Tailor::Problem} to +@problems+ when one is found in `#measure`
376
377
 
377
378
 
378
- #### Add the Ruler to the list of Styles
379
+ #### Add the Ruler to the list of Styles ####
379
380
 
380
381
  Internally, this all happens in `lib/tailor/configuration/style.rb`, but you
381
382
  can add information about your ruler to your config file. If you created a
@@ -427,7 +428,7 @@ end
427
428
 
428
429
  Next time you run tailor, your Ruler will get initialized and used.
429
430
 
430
- ### Using the lib
431
+ ### Using the lib ###
431
432
 
432
433
  Sometimes you could use tailor as a lib, getting the results as a hash and
433
434
  manipulate them according your domain.
@@ -448,13 +449,12 @@ tailor = Tailor::CLI.new %w(--output-file=results.yaml)
448
449
  tailor.execute!
449
450
  ```
450
451
 
451
- ## REQUIREMENTS:
452
+ REQUIREMENTS:
453
+ -------------
452
454
 
453
455
  * Rubies (tested)
454
- * 1.9.3
455
- * 2.0.0
456
- * 2.1.0
457
-
456
+ * ruby-2.0.0
457
+ * ruby-2.1.4
458
458
  * Gems
459
459
  * log_switch
460
460
  * nokogiri
@@ -462,16 +462,29 @@ tailor.execute!
462
462
  * text-table
463
463
 
464
464
 
465
-
466
- ## INSTALL:
465
+ INSTALL:
466
+ --------
467
467
 
468
468
  $ (sudo) gem install tailor
469
469
 
470
- ## LICENSE:
470
+
471
+ RELATED PROJECTS:
472
+ -----------------
473
+
474
+ * [rubocop](https://github.com/bbatsov/rubocop). *A robust Ruby code analyzer, based on the community Ruby style guide.*
475
+ * [cane](https://github.com/square/cane). *Code quality threshold checking as part of your build*
476
+ * [roodi](https://github.com/roodi/roodi). *Ruby Object Oriented Design Inferometer*
477
+ * [reek](https://github.com/troessner/reek/wiki). *Code smell detector for Ruby*
478
+ * [flog](http://ruby.sadi.st/Ruby_Sadist.html). *Flog shows you the most torturous code you wrote. The more painful the code, the higher the score.*
479
+ * [foodcritic](http://www.foodcritic.io). *Foodcritic is a helpful lint tool you can use to check your Chef cookbooks for common problems.*
480
+ * [metric_fu](https://github.com/metricfu/metric_fu). *A fist full of code metrics*
481
+
482
+ LICENSE:
483
+ --------
471
484
 
472
485
  (The MIT License)
473
486
 
474
- Copyright (c) 2010-2013 Steve Loveless
487
+ Copyright (c) 2010-2014 Steve Loveless
475
488
 
476
489
  Permission is hereby granted, free of charge, to any person obtaining a copy
477
490
  of this software and associated documentation files (the 'Software'), to deal
@@ -1,6 +1,6 @@
1
1
  Given /^(.+) exists with(\w*) a newline at the end$/ do |file_name, no_newline|
2
2
  file_contents = get_file_contents(file_name)
3
- file_contents.should_not be_nil
3
+ expect(file_contents).to_not be_nil
4
4
 
5
5
  if no_newline.empty?
6
6
  file_contents << "\n" unless file_contents[-1] == "\n"
@@ -1,5 +1,4 @@
1
1
  class Tailor
2
-
3
2
  # Objects of this type are responsible for sending the right data to report
4
3
  # formatters.
5
4
  class Reporter
@@ -11,13 +10,26 @@ class Tailor
11
10
  #
12
11
  # @param [Array] formats A list of formatters to use for generating reports.
13
12
  def initialize(*formats)
14
- @formatters = []
15
- formats = %w[text] if formats.nil? || formats.empty?
13
+ formats = %w(text) if formats.nil? || formats.empty?
16
14
 
17
- formats.flatten.each do |formatter|
18
- require_relative "formatters/#{formatter}"
19
- @formatters << eval("Tailor::Formatters::#{formatter.capitalize}.new")
20
- end
15
+ @formatters = formats.flatten.map do |formatter|
16
+ retried = false
17
+
18
+ begin
19
+ Tailor::Formatters.const_get(formatter.capitalize).new
20
+ rescue NameError
21
+ require_relative "formatters/#{formatter}"
22
+
23
+ if retried
24
+ next
25
+ else
26
+ retried = true
27
+ retry
28
+ end
29
+ end
30
+ end.uniq
31
+
32
+ @formatters.compact!
21
33
  end
22
34
 
23
35
  # Sends the data to each +@formatters+ to generate the report of problems
@@ -2,7 +2,6 @@ require_relative '../ruler'
2
2
 
3
3
  class Tailor
4
4
  module Rulers
5
-
6
5
  # Detects spaces before a +{+ as given by +@config+. It skips checking
7
6
  # when:
8
7
  # * it's the first char in the line.
@@ -2,7 +2,6 @@ require_relative '../ruler'
2
2
 
3
3
  class Tailor
4
4
  module Rulers
5
-
6
5
  # Checks for spaces before a +}+ as given by +@config+. It skips checking
7
6
  # when:
8
7
  # * it's the first char in the line.
@@ -2,7 +2,6 @@ require_relative '../ruler'
2
2
 
3
3
  class Tailor
4
4
  module Rulers
5
-
6
5
  # Checks for spaces that exist between a +{+ and +}+ when there is only
7
6
  # space in between them.
8
7
  class SpacesInEmptyBracesRuler < Tailor::Ruler
@@ -1,3 +1,3 @@
1
1
  class Tailor
2
- VERSION = '1.4.0'
2
+ VERSION = '1.4.1'
3
3
  end
@@ -16,7 +16,7 @@ describe 'Conditional parentheses' do
16
16
  end
17
17
 
18
18
  before do
19
- Tailor::Logger.stub(:log)
19
+ allow(Tailor::Logger).to receive(:log)
20
20
  FakeFS.activate!
21
21
  FileUtils.touch file_name
22
22
  File.open(file_name, 'w') { |f| f.write contents }
@@ -16,7 +16,7 @@ describe 'Conditional spacing' do
16
16
  end
17
17
 
18
18
  before do
19
- Tailor::Logger.stub(:log)
19
+ allow(Tailor::Logger).to receive(:log)
20
20
  FakeFS.activate!
21
21
  FileUtils.touch file_name
22
22
  File.open(file_name, 'w') { |f| f.write contents }
@@ -1,10 +1,9 @@
1
1
  require 'spec_helper'
2
2
  require 'tailor/configuration'
3
3
 
4
-
5
4
  describe 'Config File' do
6
5
  before do
7
- Tailor::Logger.stub(:log)
6
+ allow(Tailor::Logger).to receive(:log)
8
7
  FakeFS.deactivate!
9
8
  end
10
9
 
@@ -22,22 +21,24 @@ describe 'Config File' do
22
21
 
23
22
  context '.tailor does not exist' do
24
23
  before do
25
- Tailor::Configuration.any_instance.stub(:config_file).and_return false
24
+ allow_any_instance_of(Tailor::Configuration).to receive(:config_file).
25
+ and_return false
26
26
  end
27
27
 
28
28
  it "sets formatters to 'text'" do
29
- config.formatters.should == %w(text)
29
+ expect(config.formatters).to eq %w(text)
30
30
  end
31
31
 
32
32
  it 'sets file_sets[:default].style to the default style' do
33
- config.file_sets[:default].style.should_not be_nil
34
- config.file_sets[:default].style.should == Tailor::Configuration::Style.new.to_hash
33
+ expect(config.file_sets[:default].style).to_not be_nil
34
+ expect(config.file_sets[:default].style).
35
+ to eq Tailor::Configuration::Style.new.to_hash
35
36
  end
36
37
 
37
38
  it 'sets file_sets[:default].file_list to the files in lib/**/*.rb' do
38
- config.file_sets[:default].file_list.all? do |path|
39
+ expect(config.file_sets[:default].file_list.all? do |path|
39
40
  path =~ /tailor\/lib/
40
- end.should be_true
41
+ end).to eq true
41
42
  end
42
43
  end
43
44
 
@@ -56,23 +57,25 @@ end
56
57
  end
57
58
 
58
59
  before do
59
- File.should_receive(:read).and_return config_file
60
+ expect(File).to receive(:read).and_return config_file
60
61
  end
61
62
 
62
63
  it 'creates the default file set' do
63
- config.file_sets[:default].style.should == Tailor::Configuration::Style.new.to_hash
64
- config.file_sets[:default].file_list.all? do |path|
64
+ expect(config.file_sets[:default].style).
65
+ to eq Tailor::Configuration::Style.new.to_hash
66
+
67
+ expect(config.file_sets[:default].file_list.all? do |path|
65
68
  path =~ /tailor\/lib/
66
- end.should be_true
69
+ end).to eq true
67
70
  end
68
71
 
69
72
  it 'creates the :features file set' do
70
73
  style = Tailor::Configuration::Style.new
71
74
  style.max_line_length(90, level: :warn)
72
- config.file_sets[:features].style.should == style.to_hash
73
- config.file_sets[:features].file_list.all? do |path|
75
+ expect(config.file_sets[:features].style).to eq style.to_hash
76
+ expect(config.file_sets[:features].file_list.all? do |path|
74
77
  path =~ /features/
75
- end.should be_true
78
+ end).to eq true
76
79
  end
77
80
  end
78
81
  end
@@ -89,15 +92,15 @@ end
89
92
  end
90
93
 
91
94
  before do
92
- File.should_receive(:read).and_return config_file
95
+ expect(File).to receive(:read).and_return config_file
93
96
  end
94
97
 
95
98
  it 'does not create a :default file set' do
96
- config.file_sets.should_not include :default
99
+ expect(config.file_sets).to_not include :default
97
100
  end
98
101
 
99
102
  it 'creates the non-default file set' do
100
- config.file_sets.should include :features
103
+ expect(config.file_sets).to include :features
101
104
  end
102
105
  end
103
106
 
@@ -113,17 +116,17 @@ end
113
116
  end
114
117
 
115
118
  before do
116
- File.should_receive(:read).and_return config_file
119
+ expect(File).to receive(:read).and_return config_file
117
120
  end
118
121
 
119
122
  it 'creates a :default file set' do
120
- config.file_sets.keys.should == [:default]
123
+ expect(config.file_sets.keys).to eq [:default]
121
124
  end
122
125
 
123
126
  it 'has files in the file list levels deep' do
124
- config.file_sets[:default].file_list.all? do |file|
127
+ expect(config.file_sets[:default].file_list.all? do |file|
125
128
  file =~ /spec\.rb$/
126
- end.should be_true
129
+ end).to eq true
127
130
  end
128
131
 
129
132
  it 'applies the nested configuration within the fileset' do
@@ -144,21 +147,24 @@ end
144
147
 
145
148
  context '.tailor does not exist' do
146
149
  before do
147
- Tailor::Configuration.any_instance.stub(:config_file).and_return false
150
+ allow_any_instance_of(Tailor::Configuration).
151
+ to receive(:config_file).and_return false
148
152
  end
149
153
 
150
154
  it "sets formatters to 'text'" do
151
- config.formatters.should == %w(text)
155
+ expect(config.formatters).to eq %w(text)
152
156
  end
153
157
 
154
158
  it 'sets file_sets[:default].style to the default style' do
155
- config.file_sets[:default].style.should_not be_nil
156
- config.file_sets[:default].style.should == Tailor::Configuration::Style.new.to_hash
159
+ expect(config.file_sets[:default].style).to_not be_nil
160
+ expect(config.file_sets[:default].style).
161
+ to eq Tailor::Configuration::Style.new.to_hash
157
162
  end
158
163
 
159
164
  it 'sets file_sets[:default].file_list to the runtime files' do
160
- config.file_sets[:default].file_list.size.should be 1
161
- config.file_sets[:default].file_list.first.match /lib\/tailor\.rb$/
165
+ expect(config.file_sets[:default].file_list.size).to eq 1
166
+ expect(config.file_sets[:default].file_list.first).
167
+ to match(/lib\/tailor\.rb$/)
162
168
  end
163
169
  end
164
170
 
@@ -179,19 +185,20 @@ end
179
185
  end
180
186
 
181
187
  before do
182
- File.should_receive(:read).and_return config_file
188
+ expect(File).to receive(:read).and_return config_file
183
189
  end
184
190
 
185
191
  it 'creates the default file set using the runtime files' do
186
192
  style = Tailor::Configuration::Style.new
187
193
  style.max_line_length 85
188
- config.file_sets[:default].style.should == style.to_hash
189
- config.file_sets[:default].file_list.size.should be 1
190
- config.file_sets[:default].file_list.first.match /lib\/tailor\.rb$/
194
+ expect(config.file_sets[:default].style).to eq style.to_hash
195
+ expect(config.file_sets[:default].file_list.size).to eq 1
196
+ expect(config.file_sets[:default].file_list.first).
197
+ to match(/lib\/tailor\.rb$/)
191
198
  end
192
199
 
193
200
  it 'does not create the :features file set' do
194
- config.file_sets.should_not include :features
201
+ expect(config.file_sets).to_not include :features
195
202
  end
196
203
  end
197
204
  end
@@ -208,17 +215,19 @@ end
208
215
  end
209
216
 
210
217
  before do
211
- File.should_receive(:read).and_return config_file
218
+ expect(File).to receive(:read).and_return config_file
212
219
  end
213
220
 
214
- it 'creates a :default file set with the runtime file and default style' do
215
- config.file_sets[:default].style.should == Tailor::Configuration::Style.new.to_hash
216
- config.file_sets[:default].file_list.size.should be 1
217
- config.file_sets[:default].file_list.first.match /lib\/tailor\.rb$/
221
+ it 'creates a :default file set with the runtime file & default style' do
222
+ expect(config.file_sets[:default].style).
223
+ to eq Tailor::Configuration::Style.new.to_hash
224
+ expect(config.file_sets[:default].file_list.size).to eq 1
225
+ expect(config.file_sets[:default].file_list.first).
226
+ to match(/lib\/tailor\.rb$/)
218
227
  end
219
228
 
220
229
  it 'does not create the non-default file set' do
221
- config.file_sets.should_not include :features
230
+ expect(config.file_sets).to_not include :features
222
231
  end
223
232
  end
224
233
 
@@ -234,20 +243,21 @@ end
234
243
  end
235
244
 
236
245
  before do
237
- File.should_receive(:read).and_return config_file
246
+ expect(File).to receive(:read).and_return config_file
238
247
  end
239
248
 
240
249
  it 'creates a :default file set' do
241
- config.file_sets.keys.should == [:default]
250
+ expect(config.file_sets.keys).to eq [:default]
242
251
  end
243
252
 
244
- it 'creates a :default file set with the runtime file and default style' do
245
- style = Tailor::Configuration::Style.new.tap do |style|
246
- style.max_line_length 90, level: :warn
253
+ it 'creates a :default file set with the runtime file & default style' do
254
+ style = Tailor::Configuration::Style.new.tap do |s|
255
+ s.max_line_length 90, level: :warn
247
256
  end.to_hash
248
- config.file_sets[:default].style.should == style
249
- config.file_sets[:default].file_list.size.should be 1
250
- config.file_sets[:default].file_list.first.match /lib\/tailor\.rb$/
257
+ expect(config.file_sets[:default].style).to eq style
258
+ expect(config.file_sets[:default].file_list.size).to eq 1
259
+ expect(config.file_sets[:default].file_list.first).
260
+ to match(/lib\/tailor\.rb$/)
251
261
  end
252
262
  end
253
263
 
@@ -261,11 +271,11 @@ end
261
271
  end
262
272
 
263
273
  before do
264
- File.should_receive(:read).and_return config_file
274
+ expect(File).to receive(:read).and_return config_file
265
275
  end
266
276
 
267
277
  it "sets formatters to 'yaml'" do
268
- config.formatters.should == %w(yaml)
278
+ expect(config.formatters).to eq %w(yaml)
269
279
  end
270
280
  end
271
281
 
@@ -279,13 +289,12 @@ end
279
289
  end
280
290
 
281
291
  before do
282
- File.should_receive(:read).and_return config_file
292
+ expect(File).to receive(:read).and_return config_file
283
293
  end
284
294
 
285
295
  it 'sets formatters to the defined' do
286
- config.formatters.should == %w(yaml text)
296
+ expect(config.formatters).to eq %w(yaml text)
287
297
  end
288
-
289
298
  end
290
299
  end
291
300
  end