suture 1.1.2 → 1.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 163a4b24e5b0e5a27e41455d0fab014c19e96d9e7abe9b5ebf35d984094fdb95
4
- data.tar.gz: 6f5f28071fd9f3cb298fd16f7fe5ddf7b66e57941792b6e0142daeffb2965677
3
+ metadata.gz: 1326f7c00beb85b3516536b4a7c04783360dde2a15af83be7434201a112967b6
4
+ data.tar.gz: e099889a2efeccbafe0ef83733bd9b3488b6ec7c6e2eed43d2e640a09c0f0650
5
5
  SHA512:
6
- metadata.gz: e8d2bef6ec660786f4b3da2722c0e95b722e7f456ce4347da9e6e36627eff99446c5280d708a2c2b639d1543dfd1ddaa0ebb7c4a0cf7a101e9295eaef49063c7
7
- data.tar.gz: dd00faab3aca2bff8fe346170d0a31d2e80ecaf0a08ee7b2794900f25ef7a48b4db542b8a0c38e4fda21ad3c052d5638d555560a971d8a48149617a38349b172
6
+ metadata.gz: f198879578e76762c39a27ee395efbff86038f1f6c746ded31f46436761db14053d7f4a7c09abb327c6d28f822fdfb2cdbbeb4da6f1f30912f568fd480c36a5e
7
+ data.tar.gz: 4d8ddf4805fbe995f7c5a45cc1e64649f70c64e441127c2b2d9b0f2dccec9b8009529e9a49f6348e2ef94c0a23d71a9a3bae178d66bdf33401295284cab12eff
@@ -0,0 +1,31 @@
1
+ name: Ruby
2
+
3
+ on:
4
+ push:
5
+ branches:
6
+ - main
7
+
8
+ pull_request:
9
+
10
+ jobs:
11
+ build:
12
+ runs-on: ubuntu-latest
13
+ name: Ruby ${{ matrix.ruby }}
14
+ strategy:
15
+ matrix:
16
+ ruby:
17
+ - '3.2'
18
+ - '3.3'
19
+ - '3.4'
20
+ - '4.0'
21
+
22
+ steps:
23
+ - uses: actions/checkout@v7
24
+ - name: Set up Ruby
25
+ uses: ruby/setup-ruby@v1
26
+ with:
27
+ ruby-version: ${{ matrix.ruby }}
28
+ bundler-cache: true
29
+ - name: Run tests
30
+ run: bundle exec rake
31
+
data/.gitignore CHANGED
@@ -1,7 +1,6 @@
1
1
  /.bundle/
2
2
  /.yardoc
3
3
  /Dockerfile
4
- /Gemfile.lock
5
4
  /_yardoc/
6
5
  /coverage/
7
6
  /doc/
data/CHANGELOG.md CHANGED
@@ -1,5 +1,26 @@
1
1
  # Change Log
2
2
 
3
+ ## [v1.2.0](https://github.com/testdouble/suture/tree/v1.2.0) (2026-09-18)
4
+ [Full Changelog](https://github.com/testdouble/suture/compare/v1.1.2...v1.2.0)
5
+
6
+ **Implemented enhancements:**
7
+
8
+ - Add support for Ruby 3.4 and 4.0, including fixes for missing stdlib gem dependencies
9
+
10
+ ## [v1.1.2](https://github.com/testdouble/suture/tree/v1.1.2) (2018-11-12)
11
+ [Full Changelog](https://github.com/testdouble/suture/compare/v1.1.1...v1.1.2)
12
+
13
+ **Closed issues:**
14
+
15
+ - task to explode tests from recorded suture data? [\#69](https://github.com/testdouble/suture/issues/69)
16
+
17
+ **Merged pull requests:**
18
+
19
+ - Standardize [\#71](https://github.com/testdouble/suture/pull/71) ([searls](https://github.com/searls))
20
+ - Fix couple typos in README.md [\#70](https://github.com/testdouble/suture/pull/70) ([sharipov-ru](https://github.com/sharipov-ru))
21
+ - Make minor sentence changes to the README [\#66](https://github.com/testdouble/suture/pull/66) ([alexcameron89](https://github.com/alexcameron89))
22
+ - Add a Docker image [\#58](https://github.com/testdouble/suture/pull/58) ([seeflanigan](https://github.com/seeflanigan))
23
+
3
24
  ## [v1.1.1](https://github.com/testdouble/suture/tree/v1.1.1) (2016-09-19)
4
25
  [Full Changelog](https://github.com/testdouble/suture/compare/v1.1.0...v1.1.1)
5
26
 
@@ -122,6 +143,3 @@
122
143
  - Create/Initialize a sqlite database [\#2](https://github.com/testdouble/suture/issues/2)
123
144
  - Create a new Suture [\#1](https://github.com/testdouble/suture/issues/1)
124
145
 
125
-
126
-
127
- \* *This Change Log was automatically generated by [github_changelog_generator](https://github.com/skywinder/Github-Changelog-Generator)*
data/Gemfile CHANGED
@@ -2,3 +2,11 @@ source "https://rubygems.org"
2
2
 
3
3
  # Specify your gem's dependencies in suture.gemspec
4
4
  gemspec
5
+
6
+ gem "rake"
7
+ gem "tldr"
8
+ gem "gimme"
9
+ gem "standard"
10
+ gem "ostruct"
11
+ gem "logger"
12
+ gem "irb"
data/Gemfile.lock ADDED
@@ -0,0 +1,120 @@
1
+ PATH
2
+ remote: .
3
+ specs:
4
+ suture (1.2.0)
5
+ backports
6
+ bar-of-progress (>= 0.1.3)
7
+ bigdecimal
8
+ sqlite3
9
+
10
+ GEM
11
+ remote: https://rubygems.org/
12
+ specs:
13
+ ast (2.4.2)
14
+ attr_extras (7.1.0)
15
+ backports (3.24.1)
16
+ bar-of-progress (0.1.3)
17
+ base64 (0.1.1)
18
+ bigdecimal (4.1.3)
19
+ concurrent-ruby (1.3.8)
20
+ diff-lcs (1.5.0)
21
+ erb (6.0.7)
22
+ gimme (0.5.0)
23
+ io-console (0.9.4)
24
+ irb (1.18.0)
25
+ pp (>= 0.6.0)
26
+ prism (>= 1.3.0)
27
+ rdoc (>= 4.0.0)
28
+ reline (>= 0.4.2)
29
+ json (2.6.3)
30
+ language_server-protocol (3.17.0.3)
31
+ lint_roller (1.1.0)
32
+ logger (1.7.0)
33
+ optimist (3.1.0)
34
+ ostruct (0.6.3)
35
+ parallel (1.23.0)
36
+ parser (3.2.2.3)
37
+ ast (~> 2.4.1)
38
+ racc
39
+ patience_diff (1.2.0)
40
+ optimist (~> 3.0)
41
+ pp (0.6.4)
42
+ prettyprint
43
+ prettyprint (0.2.0)
44
+ prism (1.9.0)
45
+ racc (1.7.1)
46
+ rainbow (3.1.1)
47
+ rake (13.0.6)
48
+ rbs (4.1.3)
49
+ logger
50
+ prism (>= 1.6.0)
51
+ tsort
52
+ rdoc (8.0.0)
53
+ erb
54
+ prism (>= 1.6.0)
55
+ rbs (>= 4.0.0)
56
+ tsort
57
+ regexp_parser (2.8.1)
58
+ reline (0.7.0)
59
+ io-console (~> 0.5)
60
+ rexml (3.4.4)
61
+ rubocop (1.56.4)
62
+ base64 (~> 0.1.1)
63
+ json (~> 2.3)
64
+ language_server-protocol (>= 3.17.0)
65
+ parallel (~> 1.10)
66
+ parser (>= 3.2.2.3)
67
+ rainbow (>= 2.2.2, < 4.0)
68
+ regexp_parser (>= 1.8, < 3.0)
69
+ rexml (>= 3.2.5, < 4.0)
70
+ rubocop-ast (>= 1.28.1, < 2.0)
71
+ ruby-progressbar (~> 1.7)
72
+ unicode-display_width (>= 2.4.0, < 3.0)
73
+ rubocop-ast (1.29.0)
74
+ parser (>= 3.2.1.0)
75
+ rubocop-performance (1.19.1)
76
+ rubocop (>= 1.7.0, < 2.0)
77
+ rubocop-ast (>= 0.4.0)
78
+ ruby-progressbar (1.13.0)
79
+ sqlite3 (2.9.6-arm64-darwin)
80
+ sqlite3 (2.9.6-x86_64-linux-gnu)
81
+ standard (1.31.1)
82
+ language_server-protocol (~> 3.17.0.2)
83
+ lint_roller (~> 1.0)
84
+ rubocop (~> 1.56.2)
85
+ standard-custom (~> 1.0.0)
86
+ standard-performance (~> 1.2)
87
+ standard-custom (1.0.2)
88
+ lint_roller (~> 1.0)
89
+ rubocop (~> 1.50)
90
+ standard-performance (1.2.0)
91
+ lint_roller (~> 1.1)
92
+ rubocop-performance (~> 1.19.0)
93
+ super_diff (0.10.0)
94
+ attr_extras (>= 6.2.4)
95
+ diff-lcs
96
+ patience_diff
97
+ tldr (0.6.0)
98
+ concurrent-ruby (~> 1.2)
99
+ super_diff (~> 0.10)
100
+ tsort (0.2.0)
101
+ unicode-display_width (2.4.2)
102
+
103
+ PLATFORMS
104
+ arm64-darwin-22
105
+ arm64-darwin-24
106
+ arm64-darwin-25
107
+ x86_64-linux
108
+
109
+ DEPENDENCIES
110
+ gimme
111
+ irb
112
+ logger
113
+ ostruct
114
+ rake
115
+ standard
116
+ suture!
117
+ tldr
118
+
119
+ BUNDLED WITH
120
+ 4.0.20
data/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # Suture 🏥
2
2
 
3
- [![Build Status](https://travis-ci.org/testdouble/suture.svg?branch=master)](https://travis-ci.org/testdouble/suture) [![Code Climate](https://codeclimate.com/github/testdouble/suture/badges/gpa.svg)](https://codeclimate.com/github/testdouble/suture) [![Test Coverage](https://codeclimate.com/github/testdouble/suture/badges/coverage.svg)](https://codeclimate.com/github/testdouble/suture/coverage)
3
+ [![Build Status](https://travis-ci.org/testdouble/suture.svg?branch=main)](https://travis-ci.org/testdouble/suture) [![Code Climate](https://codeclimate.com/github/testdouble/suture/badges/gpa.svg)](https://codeclimate.com/github/testdouble/suture) [![Test Coverage](https://codeclimate.com/github/testdouble/suture/badges/coverage.svg)](https://codeclimate.com/github/testdouble/suture/coverage)
4
4
 
5
5
  A refactoring tool for Ruby, designed to make it safe to change code you don't
6
6
  confidently understand. In fact, changing untrustworthy code is so fraught,
@@ -11,7 +11,7 @@ code, from local development, to a staging environment, and even in production.
11
11
 
12
12
  # Video
13
13
 
14
- Suture was unveiled at Ruby Kaigi 2016 as a one approach that we can make
14
+ Suture was unveiled at Ruby Kaigi 2016 as one approach that can make
15
15
  refactors less scary and more predictable. You can watch the 45 minute screencast
16
16
  here:
17
17
 
@@ -21,7 +21,7 @@ here:
21
21
 
22
22
  Refactoring or reimplementing important code is an involved process! Instead of
23
23
  listing out Suture's API without sufficient exposition, here is an example that
24
- we'll take you through each stage of the lifecycle.
24
+ will take you through each stage of the lifecycle.
25
25
 
26
26
  ## Development
27
27
 
data/Rakefile CHANGED
@@ -1,53 +1,21 @@
1
1
  require "bundler/gem_tasks"
2
2
  require "rake/testtask"
3
+ require "tldr/rake"
3
4
 
4
- Rake::TestTask.new(:unit) do |t|
5
- t.libs << "test"
6
- t.libs << "lib"
7
- t.test_files = FileList["test/helper.rb", "test/**/*_test.rb"]
8
- end
5
+ TLDR::Task.new(:name => :unit)
9
6
 
10
- Rake::TestTask.new(:safe) do |t|
11
- t.libs << "safe"
12
- t.libs << "lib"
13
- t.test_files = FileList["safe/helper.rb", "safe/**/*_test.rb"]
14
- end
7
+ TLDR::Task.new(:name => :safe, :config => TLDR::Config.new(
8
+ :parallel => false,
9
+ :load_paths => ["safe", "lib"],
10
+ :helper_paths => ["safe/helper.rb"],
11
+ :paths => FileList["safe/**/*_test.rb"]
12
+ ))
15
13
 
16
- Rake::TestTask.new(:test) do |t|
17
- t.libs << "test"
18
- t.libs << "safe"
19
- t.libs << "lib"
20
- t.test_files = FileList[
21
- "safe/support/code_climate",
22
- "test/helper.rb",
23
- "test/**/*_test.rb",
24
- "safe/helper.rb",
25
- "safe/**/*_test.rb"
26
- ]
27
- end
14
+ TLDR::Task.new(:name => :test, :config => TLDR::Config.new(
15
+ :load_paths => ["safe", "test", "lib"],
16
+ :helper_paths => ["test/helper.rb", "safe/helper.rb"],
17
+ :paths => FileList["test/**/*_test.rb", "safe/**/*_test.rb"]
18
+ ))
28
19
 
29
- task :example do
30
- Dir.chdir("example/rails_app") do
31
- passed = system <<-SH
32
- BUNDLE_GEMFILE="$PWD/Gemfile" bundle install --quiet
33
- BUNDLE_GEMFILE="$PWD/Gemfile" bundle exec rake suture
34
- SH
35
- unless passed
36
- raise StandardError, "Rails example failed!"
37
- end
38
- end
39
- end
40
-
41
- if Gem.ruby_version >= Gem::Version.new("2.2.2")
42
- require "github_changelog_generator/task"
43
- GitHubChangelogGenerator::RakeTask.new :changelog
44
- task :changelog_commit do
45
- require "suture"
46
- cmd = "git commit -m \"Changelog for #{Suture::VERSION}\" -- CHANGELOG.md"
47
- puts "-------> #{cmd}"
48
- system cmd
49
- end
50
- Rake::Task["release:rubygem_push"].enhance([:changelog, :changelog_commit])
51
- end
52
-
53
- task :default => [:test, :example]
20
+ require "standard/rake"
21
+ task :default => [:test, :"standard:fix"]
data/bin/console CHANGED
@@ -6,9 +6,5 @@ require "suture"
6
6
  # You can add fixtures and/or initialization code here to make experimenting
7
7
  # with your gem easier. You can also use a different console, if you like.
8
8
 
9
- # (If you use this, don't forget to add pry to your Gemfile!)
10
- # require "pry"
11
- # Pry.start
12
-
13
9
  require "irb"
14
10
  IRB.start
@@ -7,7 +7,7 @@ module Suture
7
7
  :active_record_excluded_attributes => (
8
8
  options[:active_record_excluded_attributes] ||
9
9
  DEFAULT_ACTIVE_RECORD_EXCLUDED_ATTRIBUTES
10
- ).map(&:to_s),
10
+ ).map(&:to_s)
11
11
  }
12
12
  end
13
13
 
data/lib/suture/config.rb CHANGED
@@ -8,7 +8,7 @@ module Suture
8
8
  :log_stdout => true,
9
9
  :log_io => nil,
10
10
  :log_file => nil,
11
- :raise_on_result_mismatch => true,
11
+ :raise_on_result_mismatch => true
12
12
  }
13
13
 
14
14
  def self.config(config = {})
@@ -4,15 +4,15 @@ require "suture/util/env"
4
4
  module Suture
5
5
  class BuildsPlan
6
6
  UN_ENV_IABLE_OPTIONS = [:name, :old, :new, :args, :comparator, :after_new,
7
- :after_old, :on_new_error, :on_old_error,
8
- :expected_error_types,]
7
+ :after_old, :on_new_error, :on_old_error,
8
+ :expected_error_types]
9
9
 
10
10
  def build(name, options = {})
11
11
  Value::Plan.new(
12
- Suture.config.
13
- merge(options).
14
- merge(:name => name).
15
- merge(Suture::Util::Env.to_map(UN_ENV_IABLE_OPTIONS))
12
+ Suture.config
13
+ .merge(options)
14
+ .merge(:name => name)
15
+ .merge(Suture::Util::Env.to_map(UN_ENV_IABLE_OPTIONS))
16
16
  )
17
17
  end
18
18
  end
@@ -5,22 +5,22 @@ module Suture
5
5
  REQUIREMENTS = {
6
6
  :name => "in order to identify recorded calls",
7
7
  :old => "in order to call the legacy code path (must respond to `:call`)",
8
- :args => "in order to differentiate recorded calls (if the code you're changing doesn't take arguments, you can set :args to `[]` but should probably consider creating a seam inside of it which can--consult the README for more advice)",
8
+ :args => "in order to differentiate recorded calls (if the code you're changing doesn't take arguments, you can set :args to `[]` but should probably consider creating a seam inside of it which can--consult the README for more advice)"
9
9
  }
10
10
 
11
11
  VALIDATIONS = {
12
12
  :name => {
13
13
  :test => lambda { |name| name.to_s.size < 256 },
14
- :message => "must be less than 256 characters",
14
+ :message => "must be less than 256 characters"
15
15
  },
16
16
  :old => CALLABLE_VALIDATION = {
17
17
  :test => lambda { |old| old.respond_to?(:call) },
18
- :message => "must respond to `call` (e.g. `dog.method(:bark)` or `->(*args){ dog.bark(*args) }`)",
18
+ :message => "must respond to `call` (e.g. `dog.method(:bark)` or `->(*args){ dog.bark(*args) }`)"
19
19
  },
20
20
  :new => CALLABLE_VALIDATION,
21
21
  :comparator => CALLABLE_VALIDATION.merge(
22
22
  :message => "must respond to `call` (e.g. `MyComparator.new` or `->(recorded, actual) { recorded == actual }`)"
23
- ),
23
+ )
24
24
  }
25
25
 
26
26
  CONFLICTS = [
@@ -102,7 +102,7 @@ module Suture
102
102
  impact when set for other modes
103
103
  MSG
104
104
  end
105
- },
105
+ }
106
106
  ]
107
107
 
108
108
  def validate(plan)
@@ -8,7 +8,7 @@ module Suture::Error
8
8
 
9
9
  The following options are required:
10
10
 
11
- #{requirements.map {|(name, explanation)|
11
+ #{requirements.map { |(name, explanation)|
12
12
  "* #{name.inspect} - #{explanation}"
13
13
  }.join("\n ")}
14
14
  MSG
@@ -20,7 +20,7 @@ module Suture::Error
20
20
 
21
21
  The following options were invalid:
22
22
 
23
- #{invalids.map {|(name, rule)|
23
+ #{invalids.map { |(name, rule)|
24
24
  "* #{name.inspect} - #{rule[:message]}"
25
25
  }.join("\n ")}
26
26
  MSG
@@ -32,7 +32,7 @@ module Suture::Error
32
32
 
33
33
  Suture isn't sure how to best handle the combination of options passed:
34
34
 
35
- #{conflicts.map {|message|
35
+ #{conflicts.map { |message|
36
36
  "* #{message}"
37
37
  }.join("\n ")}
38
38
  MSG
@@ -6,7 +6,7 @@ module Suture::Error
6
6
  end
7
7
 
8
8
  def message
9
- "Your suture gem is too #{@expected > @actual ? "new" : "old"} for this schema. Either delete your database or #{@expected > @actual ? "upgrade" : "downgrade"} the gem (expected schema version #{@expected}, was #{@actual})"
9
+ "Your suture gem is too #{(@expected > @actual) ? "new" : "old"} for this schema. Either delete your database or #{(@expected > @actual) ? "upgrade" : "downgrade"} the gem (expected schema version #{@expected}, was #{@actual})"
10
10
  end
11
11
  end
12
12
  end
@@ -14,7 +14,7 @@ module Suture::Error
14
14
  describe_failures(@results.failed, @plan),
15
15
  configuration(@plan),
16
16
  summarize(@results),
17
- progress(@plan, @results),
17
+ progress(@plan, @results)
18
18
  ].compact.join("\n").tap do
19
19
  end
20
20
  end
@@ -102,7 +102,7 @@ module Suture::Error
102
102
  describe_failure(failure, index) if plan.error_message_limit.nil? || index < plan.error_message_limit
103
103
  },
104
104
  describe_squelched_failure_messages(failures.size, plan.error_message_limit),
105
- describe_general_failure_advice(plan),
105
+ describe_general_failure_advice(plan)
106
106
  ].flatten.compact.join("\n")
107
107
  end
108
108
 
@@ -117,7 +117,7 @@ module Suture::Error
117
117
  Expected #{expected.result.errored? ? "error raised" : "returned value"}: ```
118
118
  #{expected.result.value.inspect}
119
119
  ```
120
- Actual #{failure[:error] || failure[:new_result].errored? ? "error raised" : "returned value"}: ```
120
+ Actual #{(failure[:error] || failure[:new_result].errored?) ? "error raised" : "returned value"}: ```
121
121
  #{if failure[:error]
122
122
  stringify_error(failure[:error])
123
123
  else
@@ -10,7 +10,7 @@ module Suture::Surgeon
10
10
  dictaphone.record(result)
11
11
  end
12
12
  rescue => error
13
- if plan.expected_error_types.any? {|e| error.is_a?(e) }
13
+ if plan.expected_error_types.any? { |e| error.is_a?(e) }
14
14
  dictaphone.record_error(error)
15
15
  end
16
16
  raise error
@@ -2,16 +2,16 @@ module Suture::Util
2
2
  module Env
3
3
  def self.to_map(excludes = {})
4
4
  Hash[
5
- ENV.keys.
6
- select { |k| k.start_with?("SUTURE_") }.
7
- map { |k| [to_sym(k), sanitize_value(ENV[k])] }
5
+ ENV.keys
6
+ .select { |k| k.start_with?("SUTURE_") }
7
+ .map { |k| [to_sym(k), sanitize_value(ENV[k])] }
8
8
  ].reject { |(k, _)| excludes.include?(k) }
9
9
  end
10
10
 
11
11
  # private
12
12
 
13
13
  def self.to_sym(name)
14
- name.gsub(/^SUTURE\_/, "").downcase.to_sym
14
+ name.gsub(/^SUTURE_/, "").downcase.to_sym
15
15
  end
16
16
 
17
17
  def self.sanitize_value(value)
@@ -43,7 +43,7 @@ module Suture::Util
43
43
  end
44
44
 
45
45
  def expected_error?(plan, error)
46
- plan.expected_error_types.any? {|e| error.is_a?(e) }
46
+ plan.expected_error_types.any? { |e| error.is_a?(e) }
47
47
  end
48
48
 
49
49
  def args_for(plan, args_override)
@@ -22,7 +22,7 @@ module Suture::Value
22
22
  other.is_a?(self.class) && other.state == state
23
23
  end
24
24
 
25
- alias eql? ==
25
+ alias_method :eql?, :==
26
26
 
27
27
  def hash
28
28
  state.hash
@@ -31,8 +31,8 @@ module Suture::Value
31
31
 
32
32
  def massage_values(attrs, names)
33
33
  Hash[
34
- attrs.select {|(k, _)| names.include?(k) }.
35
- map { |(k, v)| [k, v.nil? ? nil : yield(v)]}
34
+ attrs.select { |(k, _)| names.include?(k) }
35
+ .map { |(k, v)| [k, v.nil? ? nil : yield(v)] }
36
36
  ]
37
37
  end
38
38
 
@@ -14,14 +14,14 @@ module Suture
14
14
  result = Value::Result.returned(@scalpel.cut(test_plan, :subject, observation.args))
15
15
  {
16
16
  :new_result => result,
17
- :passed => compares_results.compare(observation.result, result),
17
+ :passed => compares_results.compare(observation.result, result)
18
18
  }
19
19
  rescue => error
20
20
  if observation.result.errored?
21
21
  result = Value::Result.errored(error)
22
22
  {
23
23
  :new_result => result,
24
- :passed => compares_results.compare(observation.result, result),
24
+ :passed => compares_results.compare(observation.result, result)
25
25
  }
26
26
  else
27
27
  {:error => error, :passed => false}
@@ -4,13 +4,13 @@ require "suture/util/env"
4
4
  module Suture
5
5
  class PrescribesTestPlan
6
6
  UN_ENV_IABLE_OPTIONS = [:name, :subject, :comparator, :after_subject,
7
- :on_subject_error, :expected_error_types,]
7
+ :on_subject_error, :expected_error_types]
8
8
 
9
9
  def prescribe(name, options = {})
10
- Value::TestPlan.new(Suture.config.
11
- merge(options).
12
- merge(:name => name).
13
- merge(Suture::Util::Env.to_map(UN_ENV_IABLE_OPTIONS)))
10
+ Value::TestPlan.new(Suture.config
11
+ .merge(options)
12
+ .merge(:name => name)
13
+ .merge(Suture::Util::Env.to_map(UN_ENV_IABLE_OPTIONS)))
14
14
  end
15
15
  end
16
16
  end
@@ -24,12 +24,12 @@ module Suture
24
24
  if should_skip?(test_plan, experienced_failure_in_life, i, timer)
25
25
  {
26
26
  :observation => observation,
27
- :ran => false,
27
+ :ran => false
28
28
  }
29
29
  else
30
30
  @administers_test.administer(test_plan, observation).merge({
31
31
  :observation => observation,
32
- :ran => true,
32
+ :ran => true
33
33
  }).tap { |r| experienced_failure_in_life = true unless r[:passed] }
34
34
  end
35
35
  })
@@ -1,3 +1,3 @@
1
1
  module Suture
2
- VERSION = "1.1.2"
2
+ VERSION = "1.2.0"
3
3
  end
@@ -36,7 +36,7 @@ module Suture::Wrap
36
36
  end
37
37
 
38
38
  def read(count = nil, _buffer = nil)
39
- count && count > 0 ? nil : ""
39
+ (count && count > 0) ? nil : ""
40
40
  end
41
41
 
42
42
  def rewind
@@ -16,7 +16,7 @@ module Suture::Wrap
16
16
  SQL
17
17
  db.execute("insert or ignore into suture_schema_info values (?)", [SCHEMA_VERSION])
18
18
  actual_schema_version = db.execute("select * from suture_schema_info").first[0]
19
- if SCHEMA_VERSION != actual_schema_version
19
+ if actual_schema_version != SCHEMA_VERSION
20
20
  raise Suture::Error::SchemaVersion.new(SCHEMA_VERSION, actual_schema_version)
21
21
  end
22
22
 
data/suture.gemspec CHANGED
@@ -5,40 +5,22 @@ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
5
5
  require "suture/version"
6
6
 
7
7
  Gem::Specification.new do |spec|
8
- spec.name = "suture"
9
- spec.version = Suture::VERSION
10
- spec.authors = ["Justin Searls"]
11
- spec.email = ["searls@gmail.com"]
12
-
13
- spec.summary = "A gem that helps people refactor or reimplement legacy code"
14
- spec.description = "Provides tools to record calls to legacy code and verify new implementations still work"
15
- spec.homepage = "https://github.com/testdouble/suture"
16
-
17
- spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(example|test|db|log|safe|spec|features)/}) }
18
- spec.bindir = "exe"
19
- spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
8
+ spec.name = "suture"
9
+ spec.version = Suture::VERSION
10
+ spec.authors = ["Justin Searls"]
11
+ spec.email = ["searls@gmail.com"]
12
+
13
+ spec.summary = "A gem that helps people refactor or reimplement legacy code"
14
+ spec.description = "Provides tools to record calls to legacy code and verify new implementations still work"
15
+ spec.homepage = "https://github.com/testdouble/suture"
16
+
17
+ spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(example|test|db|log|safe|spec|features)/}) }
18
+ spec.bindir = "exe"
19
+ spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
20
20
  spec.require_paths = ["lib"]
21
21
 
22
22
  spec.add_dependency "sqlite3"
23
23
  spec.add_dependency "backports"
24
24
  spec.add_dependency "bar-of-progress", ">= 0.1.3"
25
-
26
- spec.add_development_dependency "bundler", "~> 1.12"
27
- spec.add_development_dependency "rake", "~> 10.0"
28
- spec.add_development_dependency "pry", "~> 0.9.12.6"
29
- spec.add_development_dependency "minitest", "~> 5.9"
30
- spec.add_development_dependency "gimme", "~> 0.5"
31
-
32
- if Gem.ruby_version >= Gem::Version.new("1.9.3")
33
- spec.add_development_dependency "codeclimate-test-reporter"
34
- spec.add_development_dependency "simplecov", "~> 0.11.2" # <--only here to lock
35
- end
36
-
37
- if Gem.ruby_version >= Gem::Version.new("2.2.0")
38
- spec.add_development_dependency "standard"
39
- end
40
-
41
- if Gem.ruby_version >= Gem::Version.new("2.2.2")
42
- spec.add_development_dependency "github_changelog_generator"
43
- end
25
+ spec.add_dependency "bigdecimal"
44
26
  end
metadata CHANGED
@@ -1,14 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: suture
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.2
4
+ version: 1.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Justin Searls
8
- autorequire:
9
8
  bindir: exe
10
9
  cert_chain: []
11
- date: 2018-11-12 00:00:00.000000000 Z
10
+ date: 1980-01-02 00:00:00.000000000 Z
12
11
  dependencies:
13
12
  - !ruby/object:Gem::Dependency
14
13
  name: sqlite3
@@ -53,125 +52,13 @@ dependencies:
53
52
  - !ruby/object:Gem::Version
54
53
  version: 0.1.3
55
54
  - !ruby/object:Gem::Dependency
56
- name: bundler
55
+ name: bigdecimal
57
56
  requirement: !ruby/object:Gem::Requirement
58
- requirements:
59
- - - "~>"
60
- - !ruby/object:Gem::Version
61
- version: '1.12'
62
- type: :development
63
- prerelease: false
64
- version_requirements: !ruby/object:Gem::Requirement
65
- requirements:
66
- - - "~>"
67
- - !ruby/object:Gem::Version
68
- version: '1.12'
69
- - !ruby/object:Gem::Dependency
70
- name: rake
71
- requirement: !ruby/object:Gem::Requirement
72
- requirements:
73
- - - "~>"
74
- - !ruby/object:Gem::Version
75
- version: '10.0'
76
- type: :development
77
- prerelease: false
78
- version_requirements: !ruby/object:Gem::Requirement
79
- requirements:
80
- - - "~>"
81
- - !ruby/object:Gem::Version
82
- version: '10.0'
83
- - !ruby/object:Gem::Dependency
84
- name: pry
85
- requirement: !ruby/object:Gem::Requirement
86
- requirements:
87
- - - "~>"
88
- - !ruby/object:Gem::Version
89
- version: 0.9.12.6
90
- type: :development
91
- prerelease: false
92
- version_requirements: !ruby/object:Gem::Requirement
93
- requirements:
94
- - - "~>"
95
- - !ruby/object:Gem::Version
96
- version: 0.9.12.6
97
- - !ruby/object:Gem::Dependency
98
- name: minitest
99
- requirement: !ruby/object:Gem::Requirement
100
- requirements:
101
- - - "~>"
102
- - !ruby/object:Gem::Version
103
- version: '5.9'
104
- type: :development
105
- prerelease: false
106
- version_requirements: !ruby/object:Gem::Requirement
107
- requirements:
108
- - - "~>"
109
- - !ruby/object:Gem::Version
110
- version: '5.9'
111
- - !ruby/object:Gem::Dependency
112
- name: gimme
113
- requirement: !ruby/object:Gem::Requirement
114
- requirements:
115
- - - "~>"
116
- - !ruby/object:Gem::Version
117
- version: '0.5'
118
- type: :development
119
- prerelease: false
120
- version_requirements: !ruby/object:Gem::Requirement
121
- requirements:
122
- - - "~>"
123
- - !ruby/object:Gem::Version
124
- version: '0.5'
125
- - !ruby/object:Gem::Dependency
126
- name: codeclimate-test-reporter
127
- requirement: !ruby/object:Gem::Requirement
128
- requirements:
129
- - - ">="
130
- - !ruby/object:Gem::Version
131
- version: '0'
132
- type: :development
133
- prerelease: false
134
- version_requirements: !ruby/object:Gem::Requirement
135
- requirements:
136
- - - ">="
137
- - !ruby/object:Gem::Version
138
- version: '0'
139
- - !ruby/object:Gem::Dependency
140
- name: simplecov
141
- requirement: !ruby/object:Gem::Requirement
142
- requirements:
143
- - - "~>"
144
- - !ruby/object:Gem::Version
145
- version: 0.11.2
146
- type: :development
147
- prerelease: false
148
- version_requirements: !ruby/object:Gem::Requirement
149
- requirements:
150
- - - "~>"
151
- - !ruby/object:Gem::Version
152
- version: 0.11.2
153
- - !ruby/object:Gem::Dependency
154
- name: standard
155
- requirement: !ruby/object:Gem::Requirement
156
- requirements:
157
- - - ">="
158
- - !ruby/object:Gem::Version
159
- version: '0'
160
- type: :development
161
- prerelease: false
162
- version_requirements: !ruby/object:Gem::Requirement
163
57
  requirements:
164
58
  - - ">="
165
59
  - !ruby/object:Gem::Version
166
60
  version: '0'
167
- - !ruby/object:Gem::Dependency
168
- name: github_changelog_generator
169
- requirement: !ruby/object:Gem::Requirement
170
- requirements:
171
- - - ">="
172
- - !ruby/object:Gem::Version
173
- version: '0'
174
- type: :development
61
+ type: :runtime
175
62
  prerelease: false
176
63
  version_requirements: !ruby/object:Gem::Requirement
177
64
  requirements:
@@ -187,13 +74,14 @@ extensions: []
187
74
  extra_rdoc_files: []
188
75
  files:
189
76
  - ".codeclimate.yml"
77
+ - ".github/workflows/main.yml"
190
78
  - ".gitignore"
191
79
  - ".projections.json"
192
80
  - ".rubocop.yml"
193
81
  - ".standard.yml"
194
- - ".travis.yml"
195
82
  - CHANGELOG.md
196
83
  - Gemfile
84
+ - Gemfile.lock
197
85
  - LICENSE.txt
198
86
  - README.md
199
87
  - Rakefile
@@ -245,7 +133,6 @@ files:
245
133
  homepage: https://github.com/testdouble/suture
246
134
  licenses: []
247
135
  metadata: {}
248
- post_install_message:
249
136
  rdoc_options: []
250
137
  require_paths:
251
138
  - lib
@@ -260,9 +147,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
260
147
  - !ruby/object:Gem::Version
261
148
  version: '0'
262
149
  requirements: []
263
- rubyforge_project:
264
- rubygems_version: 2.7.6
265
- signing_key:
150
+ rubygems_version: 4.0.21
266
151
  specification_version: 4
267
152
  summary: A gem that helps people refactor or reimplement legacy code
268
153
  test_files: []
data/.travis.yml DELETED
@@ -1,17 +0,0 @@
1
- language: ruby
2
- sudo: false
3
- rvm:
4
- - 1.8.7
5
- - 1.9
6
- - 2.0
7
- - 2.1
8
- - 2.2
9
- - 2.3.3
10
- before_install:
11
- - gem install bundler
12
- - cd example/rails_app && ./script/setup.sh && cd ../..
13
- after_success:
14
- - bundle exec codeclimate-test-reporter
15
- addons:
16
- code_climate:
17
- repo_token: 05e3e31164d59aa626b730b92eb9b7418326dbf23420a4b87eab2555840b39ef