kelredd-useful 0.3.4 → 0.3.5

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.
data/Rakefile CHANGED
@@ -18,7 +18,10 @@ spec = Gem::Specification.new do |s|
18
18
  s.homepage = 'http://code.kelredd.com'
19
19
  s.files = %w(README.rdoc Rakefile) + Dir.glob("{lib}/**/*")
20
20
  # s.executables = ['useful']
21
-
21
+
22
+ s.add_development_dependency("shoulda", [">= 2.10.2"])
23
+ s.add_development_dependency("leftright", [">= 0.0.6"])
24
+
22
25
  s.add_dependency('json')
23
26
  end
24
27
 
@@ -28,6 +28,28 @@ module Useful::RubyExtensions::Object
28
28
  $stderr = STDERR
29
29
  end
30
30
 
31
+ # Invokes a system command using `` and
32
+ # pass the status and result to a given block
33
+ def sudo(cmd, logger=nil, &block)
34
+ begin
35
+ require 'open4' unless defined?(::Open4)
36
+ rescue LoadError => err
37
+ puts "you need open4 to run the sudo helper: gem install open4"
38
+ else
39
+ logger.debug "`sudo #{cmd}` ..." if logger && logger.respond_to?(:debug)
40
+ result = {}
41
+ status = Open4.popen4("sudo #{cmd}") do |pid, stdin_io, stdout_io, stderr_io|
42
+ result[:out] = stdout_io.gets
43
+ result[:err] = stderr_io.gets
44
+ end
45
+ if block
46
+ block.call(status, status.success? ? result[:out] : result[:err])
47
+ else
48
+ status
49
+ end
50
+ end
51
+ end
52
+
31
53
  module FromActivesupport
32
54
 
33
55
  def blank?
@@ -3,7 +3,7 @@ module Useful
3
3
 
4
4
  MAJOR = 0
5
5
  MINOR = 3
6
- TINY = 4
6
+ TINY = 5
7
7
 
8
8
  def self.to_s # :nodoc:
9
9
  [MAJOR, MINOR, TINY].join('.')
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: kelredd-useful
3
3
  version: !ruby/object:Gem::Version
4
- hash: 27
4
+ hash: 25
5
5
  prerelease: false
6
6
  segments:
7
7
  - 0
8
8
  - 3
9
- - 4
10
- version: 0.3.4
9
+ - 5
10
+ version: 0.3.5
11
11
  platform: ruby
12
12
  authors:
13
13
  - Kelly Redding
@@ -15,13 +15,45 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2010-08-27 00:00:00 -05:00
18
+ date: 2010-08-28 00:00:00 -05:00
19
19
  default_executable:
20
20
  dependencies:
21
21
  - !ruby/object:Gem::Dependency
22
- name: json
22
+ name: shoulda
23
23
  prerelease: false
24
24
  requirement: &id001 !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - ">="
28
+ - !ruby/object:Gem::Version
29
+ hash: 35
30
+ segments:
31
+ - 2
32
+ - 10
33
+ - 2
34
+ version: 2.10.2
35
+ type: :development
36
+ version_requirements: *id001
37
+ - !ruby/object:Gem::Dependency
38
+ name: leftright
39
+ prerelease: false
40
+ requirement: &id002 !ruby/object:Gem::Requirement
41
+ none: false
42
+ requirements:
43
+ - - ">="
44
+ - !ruby/object:Gem::Version
45
+ hash: 19
46
+ segments:
47
+ - 0
48
+ - 0
49
+ - 6
50
+ version: 0.0.6
51
+ type: :development
52
+ version_requirements: *id002
53
+ - !ruby/object:Gem::Dependency
54
+ name: json
55
+ prerelease: false
56
+ requirement: &id003 !ruby/object:Gem::Requirement
25
57
  none: false
26
58
  requirements:
27
59
  - - ">="
@@ -31,7 +63,7 @@ dependencies:
31
63
  - 0
32
64
  version: "0"
33
65
  type: :runtime
34
- version_requirements: *id001
66
+ version_requirements: *id003
35
67
  description:
36
68
  email: kelly@kelredd.com
37
69
  executables: []