rya 0.0.1 → 0.1.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
  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