robustly 0.0.3 → 0.0.4

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: e02c3021e070fa4899fa7f53aefcd64bffe6fe82
4
- data.tar.gz: 2aad8ec66ed86f10cb2614ddf3bf27d026755a45
3
+ metadata.gz: 3358a29e863fa2ee454fe1d98b28cce45552d8be
4
+ data.tar.gz: 36d2b9074c3539947d8b84471a5e02207db631a9
5
5
  SHA512:
6
- metadata.gz: 4c1b7cab85c2cb0fbe9f673018e6a2316df077e79854e854ab10ff5d71a9fdc63efe3799cda541a93a2719de281a4ad8c1d91797e995453447a3c1999dff45ff
7
- data.tar.gz: 888840c69445f1546f126369db68250502031feb38824a5344e4ea897aa2b47c1cab8f3d6d400609199cc74bf569f6dcacbde10f7cea0559a7833243f438b5b8
6
+ metadata.gz: 1533250d894eb14a9cf777554b0c6f02db0df96d472eda9c4898fd7e95f848312c53de1367b4ec906ee62d2024139bde2e6ce1f9962454b2b5bfc87b1a0136a3
7
+ data.tar.gz: 350ad47a7bf3e6b4f643e7cc8e910dde3fed37c0852acfe9b1967dcfba39fe690b075fa35aabf7c898b5a041773e39adf9cd66704a9301b64f3a3793d205cd6b
@@ -0,0 +1,32 @@
1
+ Style/StringLiterals:
2
+ EnforcedStyle: double_quotes
3
+
4
+ Style/SpaceInsideHashLiteralBraces:
5
+ EnforcedStyle: no_space
6
+
7
+ Style/Documentation:
8
+ Enabled: false
9
+
10
+ Style/SignalException:
11
+ Enabled: false
12
+
13
+ Metrics/AbcSize:
14
+ Enabled: false
15
+
16
+ Metrics/BlockNesting:
17
+ Enabled: false
18
+
19
+ Metrics/ClassLength:
20
+ Enabled: false
21
+
22
+ Metrics/CyclomaticComplexity:
23
+ Enabled: false
24
+
25
+ Metrics/LineLength:
26
+ Enabled: false
27
+
28
+ Metrics/MethodLength:
29
+ Enabled: false
30
+
31
+ Metrics/PerceivedComplexity:
32
+ Enabled: false
data/Gemfile CHANGED
@@ -1,4 +1,4 @@
1
- source 'https://rubygems.org'
1
+ source "https://rubygems.org"
2
2
 
3
3
  # Specify your gem's dependencies in robustly.gemspec
4
4
  gemspec
data/Rakefile CHANGED
@@ -1,7 +1,7 @@
1
1
  require "bundler/gem_tasks"
2
2
  require "rake/testtask"
3
3
 
4
- task :default => :test
4
+ task default: :test
5
5
  Rake::TestTask.new do |t|
6
6
  t.libs << "test"
7
7
  t.pattern = "test/**/*_test.rb"
@@ -2,7 +2,6 @@ require "robustly/version"
2
2
  require "errbase"
3
3
 
4
4
  module Robustly
5
-
6
5
  class << self
7
6
  attr_accessor :env, :report_exception_method
8
7
 
@@ -16,24 +15,25 @@ module Robustly
16
15
  end
17
16
 
18
17
  module Methods
19
-
20
- def safely(options = {}, &block)
18
+ def safely(options = {})
21
19
  class_names = Array(options[:only] || StandardError)
22
20
  begin
23
21
  yield
24
22
  rescue *class_names => e
25
- raise e if %w[development test].include?(Robustly.env)
23
+ raise e if %w(development test).include?(Robustly.env)
26
24
  if options[:throttle] ? rand < 1.0 / options[:throttle] : true
27
- Robustly.report_exception(e)
25
+ begin
26
+ Robustly.report_exception(e)
27
+ rescue => e2
28
+ $stderr.puts "FAIL-SAFE #{e2.class.name}: #{e2.message}"
29
+ end
28
30
  end
29
31
  options[:default]
30
32
  end
31
33
  end
32
34
  alias_method :yolo, :safely
33
35
  alias_method :robustly, :safely # legacy
34
-
35
36
  end
36
-
37
37
  end
38
38
 
39
39
  Object.send :include, Robustly::Methods
@@ -1,3 +1,3 @@
1
1
  module Robustly
2
- VERSION = "0.0.3"
2
+ VERSION = "0.0.4"
3
3
  end
@@ -1,15 +1,15 @@
1
1
  # coding: utf-8
2
- lib = File.expand_path('../lib', __FILE__)
2
+ lib = File.expand_path("../lib", __FILE__)
3
3
  $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
- require 'robustly/version'
4
+ require "robustly/version"
5
5
 
6
6
  Gem::Specification.new do |spec|
7
7
  spec.name = "robustly"
8
8
  spec.version = Robustly::VERSION
9
9
  spec.authors = ["Andrew Kane"]
10
10
  spec.email = ["andrew@chartkick.com"]
11
- spec.summary = %q{Don’t let small errors bring down the system}
12
- spec.description = %q{Don’t let small errors bring down the system}
11
+ spec.summary = "Don’t let small errors bring down the system"
12
+ spec.description = "Don’t let small errors bring down the system"
13
13
  spec.homepage = "https://github.com/ankane/robustly"
14
14
  spec.license = "MIT"
15
15
 
@@ -1,10 +1,9 @@
1
1
  require_relative "test_helper"
2
2
 
3
3
  class TestRobustly < Minitest::Test
4
-
5
4
  def setup
6
5
  Robustly.env = "production"
7
- Robustly.report_exception_method = proc {|e| Errbase.report(e) }
6
+ Robustly.report_exception_method = proc { |e| Errbase.report(e) }
8
7
  end
9
8
 
10
9
  def test_safely_development_environment
@@ -29,7 +28,7 @@ class TestRobustly < Minitest::Test
29
28
  exception = Robustly::TestError.new
30
29
  mock = MiniTest::Mock.new
31
30
  mock.expect :report_exception, nil, [exception]
32
- Robustly.report_exception_method = proc {|e| mock.report_exception(e) }
31
+ Robustly.report_exception_method = proc { |e| mock.report_exception(e) }
33
32
  safely do
34
33
  raise exception
35
34
  end
@@ -40,7 +39,7 @@ class TestRobustly < Minitest::Test
40
39
  exception = Robustly::TestError.new
41
40
  mock = MiniTest::Mock.new
42
41
  mock.expect :report_exception, nil, [exception]
43
- Robustly.report_exception_method = proc {|e| mock.report_exception(e) }
42
+ Robustly.report_exception_method = proc { |e| mock.report_exception(e) }
44
43
  yolo do
45
44
  raise exception
46
45
  end
@@ -51,7 +50,7 @@ class TestRobustly < Minitest::Test
51
50
  exception = Robustly::TestError.new
52
51
  mock = MiniTest::Mock.new
53
52
  mock.expect :report_exception, nil, [exception]
54
- Robustly.report_exception_method = proc {|e| mock.report_exception(e) }
53
+ Robustly.report_exception_method = proc { |e| mock.report_exception(e) }
55
54
  robustly do
56
55
  raise exception
57
56
  end
@@ -78,4 +77,11 @@ class TestRobustly < Minitest::Test
78
77
  assert_raises(RuntimeError, "Boom") { safely(only: [Robustly::TestError]) { raise RuntimeError.new("Boom") } }
79
78
  end
80
79
 
80
+ def test_failsafe
81
+ Robustly.report_exception_method = proc { raise "oops" }
82
+ out, err = capture_io do
83
+ safely { raise "boom" }
84
+ end
85
+ assert_equal "FAIL-SAFE RuntimeError: oops\n", err
86
+ end
81
87
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: robustly
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.3
4
+ version: 0.0.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Andrew Kane
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-08-14 00:00:00.000000000 Z
11
+ date: 2015-03-11 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: errbase
@@ -74,6 +74,7 @@ extensions: []
74
74
  extra_rdoc_files: []
75
75
  files:
76
76
  - ".gitignore"
77
+ - ".rubocop.yml"
77
78
  - Gemfile
78
79
  - LICENSE.txt
79
80
  - README.md
@@ -103,7 +104,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
103
104
  version: '0'
104
105
  requirements: []
105
106
  rubyforge_project:
106
- rubygems_version: 2.2.2
107
+ rubygems_version: 2.4.5
107
108
  signing_key:
108
109
  specification_version: 4
109
110
  summary: Don’t let small errors bring down the system