rya 0.0.1 → 0.1.0

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: 9da701b0c5c26d75a33b94f4adf284dc48294cd7
4
- data.tar.gz: 0c266aef1ffc0a8dc328dab15f959386a25adaf0
3
+ metadata.gz: 5f8a75f1cb8b24ae881cba91acc95ba0aa87be6a
4
+ data.tar.gz: 978b0461783ef0d85976095296552d0106714656
5
5
  SHA512:
6
- metadata.gz: eac4529fa81a54aa89a16b7848e828f58af407b29d405fa18980cd03abaf2c82d273a67bbc4a3219ac382e3954d38d028327b062adcb3c6c59bfa80ede4d4479
7
- data.tar.gz: 120fbe44ba2d527182bddda196766e492f6737e8955ca7f686794a80c1af0bc331af0fedb3ce85234df35e5bc44cb3f68f735275631ed77148e0f0af1a22aaa9
6
+ metadata.gz: e285b89bf1b657ca1faf8a0f8a6ec10ed8bb3ae2f85d7398f9de32b2d3e72479e91c440e7ac4998d4b713eb7235d163e8318d7da71f5b61ab7ae3f6c2e533763
7
+ data.tar.gz: 4b0850b41acbcfc6beb8eac997b26eaaad119cddc562a933dfc35c97df23ccb0e165d90c29c4d2311b4e9f43314c2423485b2666d62e29d7ebfea7c547e0d528
data/Gemfile.lock CHANGED
@@ -1,11 +1,14 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- rya (0.0.1)
4
+ rya (0.1.0)
5
+ abort_if (~> 0.2.0)
6
+ systemu (~> 2.6, >= 2.6.5)
5
7
 
6
8
  GEM
7
9
  remote: https://rubygems.org/
8
10
  specs:
11
+ abort_if (0.2.0)
9
12
  diff-lcs (1.3)
10
13
  rake (10.5.0)
11
14
  rspec (3.7.0)
@@ -21,6 +24,8 @@ GEM
21
24
  diff-lcs (>= 1.2.0, < 2.0)
22
25
  rspec-support (~> 3.7.0)
23
26
  rspec-support (3.7.1)
27
+ systemu (2.6.5)
28
+ yard (0.9.15)
24
29
 
25
30
  PLATFORMS
26
31
  ruby
@@ -30,6 +35,7 @@ DEPENDENCIES
30
35
  rake (~> 10.0)
31
36
  rspec (~> 3.0)
32
37
  rya!
38
+ yard (~> 0.9.15)
33
39
 
34
40
  BUNDLED WITH
35
41
  1.16.3
@@ -0,0 +1,88 @@
1
+ module Rya
2
+ # Contains extensions to core Ruby classes and modules.
3
+ module CoreExtensions
4
+
5
+ module Time
6
+ # Nicely format date and time
7
+ def date_and_time fmt = "%F %T.%L"
8
+ Object::Time.now.strftime fmt
9
+ end
10
+
11
+ # Run whatever is in the block and log the time it takes.
12
+ def time_it title = "", logger = nil, run: true
13
+ if run
14
+ t = Object::Time.now
15
+
16
+ yield
17
+
18
+ time = Object::Time.now - t
19
+
20
+ if title == ""
21
+ msg = "Finished in #{time} seconds"
22
+ else
23
+ msg = "#{title} finished in #{time} seconds"
24
+ end
25
+
26
+ if logger
27
+ logger.info msg
28
+ else
29
+ STDERR.puts msg
30
+ end
31
+ end
32
+ end
33
+ end
34
+
35
+ module Process
36
+ include CoreExtensions::Time
37
+
38
+ # Runs a command and outputs stdout and stderr
39
+ def run_it *a, &b
40
+ exit_status, stdout, stderr = systemu *a, &b
41
+
42
+ puts stdout unless stdout.empty?
43
+ STDERR.puts stderr unless stderr.empty?
44
+
45
+ exit_status
46
+ end
47
+
48
+ # Like run_it() but will raise Rya::AbortIf::Exit on non-zero exit status.
49
+ def run_it! *a, &b
50
+ exit_status = self.run_it *a, &b
51
+
52
+ # Sometimes, exited? is not true and there will be no exit
53
+ # status. Success should catch all failures.
54
+ Rya::AbortIf.abort_unless exit_status.success?,
55
+ "Command failed with status " +
56
+ "'#{exit_status.to_s}' " +
57
+ "when running '#{a.inspect}', " +
58
+ "'#{b.inspect}'"
59
+
60
+ exit_status
61
+ end
62
+
63
+ # Run a command and time it as well!
64
+ #
65
+ # @example
66
+ #
67
+ # Process.extend Rya::CoreExtensions::Process
68
+ # Time.extend Rya::CoreExtensions::Time
69
+ #
70
+ # Process.run_and_time_it! "Saying hello",
71
+ # %Q{echo "hello world"}
72
+ #
73
+ # Process.run_and_time_it! "This will raise SystemExit",
74
+ # "ls arstoeiarntoairnt"
75
+ def run_and_time_it! title = "",
76
+ cmd = "",
77
+ logger = Rya::AbortIf::logger,
78
+ &b
79
+
80
+ Rya::AbortIf.logger.debug { "Running: #{cmd}" }
81
+
82
+ time_it title, logger do
83
+ run_it! cmd, &b
84
+ end
85
+ end
86
+ end
87
+ end
88
+ end
data/lib/rya/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Rya
2
- VERSION = "0.0.1"
2
+ VERSION = "0.1.0"
3
3
  end
data/lib/rya.rb CHANGED
@@ -1,5 +1,18 @@
1
+ require "abort_if"
2
+
3
+ # Needed for Rya::CoreExtensions::Process
4
+ require "systemu"
5
+
1
6
  require "rya/version"
7
+ require "rya/core_extensions"
2
8
 
3
9
  module Rya
4
- # Your code goes here...
10
+ # If you want to use AbortIf from this module, you can use it as Rya::AbortIf
11
+ module AbortIf
12
+ # To include the methods
13
+ extend Object::AbortIf
14
+
15
+ # To include the helper classes
16
+ include Object::AbortIf
17
+ end
5
18
  end
data/rya.gemspec CHANGED
@@ -25,4 +25,8 @@ Gem::Specification.new do |spec|
25
25
  spec.add_development_dependency "bundler", "~> 1.16"
26
26
  spec.add_development_dependency "rake", "~> 10.0"
27
27
  spec.add_development_dependency "rspec", "~> 3.0"
28
+ spec.add_development_dependency "yard", "~> 0.9.15"
29
+
30
+ spec.add_runtime_dependency "abort_if", "~> 0.2.0"
31
+ spec.add_runtime_dependency "systemu", "~> 2.6", ">= 2.6.5"
28
32
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rya
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ryan Moore
@@ -52,6 +52,54 @@ dependencies:
52
52
  - - "~>"
53
53
  - !ruby/object:Gem::Version
54
54
  version: '3.0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: yard
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - "~>"
60
+ - !ruby/object:Gem::Version
61
+ version: 0.9.15
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - "~>"
67
+ - !ruby/object:Gem::Version
68
+ version: 0.9.15
69
+ - !ruby/object:Gem::Dependency
70
+ name: abort_if
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - "~>"
74
+ - !ruby/object:Gem::Version
75
+ version: 0.2.0
76
+ type: :runtime
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - "~>"
81
+ - !ruby/object:Gem::Version
82
+ version: 0.2.0
83
+ - !ruby/object:Gem::Dependency
84
+ name: systemu
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - "~>"
88
+ - !ruby/object:Gem::Version
89
+ version: '2.6'
90
+ - - ">="
91
+ - !ruby/object:Gem::Version
92
+ version: 2.6.5
93
+ type: :runtime
94
+ prerelease: false
95
+ version_requirements: !ruby/object:Gem::Requirement
96
+ requirements:
97
+ - - "~>"
98
+ - !ruby/object:Gem::Version
99
+ version: '2.6'
100
+ - - ">="
101
+ - !ruby/object:Gem::Version
102
+ version: 2.6.5
55
103
  description: My personal library
56
104
  email:
57
105
  - moorer@udel.edu
@@ -71,6 +119,7 @@ files:
71
119
  - bin/console
72
120
  - bin/setup
73
121
  - lib/rya.rb
122
+ - lib/rya/core_extensions.rb
74
123
  - lib/rya/version.rb
75
124
  - rya.gemspec
76
125
  homepage: https://github.com/mooreryan/rya