ro_thor 0.2.0 → 0.2.1

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: d0f90f19100b11c8bcf40023974d3b98bf89993a
4
- data.tar.gz: 8c1129336ace224bfb849a12dbb048e3c36ef4b4
3
+ metadata.gz: 9726973316d57343c8a351edb51914a331461feb
4
+ data.tar.gz: c994e488fd7e69990fd0a3249321b2419f71093e
5
5
  SHA512:
6
- metadata.gz: c655d67dc6ffb5bc5541f7d61f06651a9d85e8d1e44c53784db1acc2cb960b57d3c682972404a03db0b97411507d1874af0e6fb94d682d67e1051936f2b18aea
7
- data.tar.gz: a69e3df06d2af18c89a0fa33bf177c3a346a4171f2f3cfb607d1ad80516a22f80fd3f0547a2e6264c7b3741da373f15fe8313c688fa298299ac435a80e19f0e1
6
+ metadata.gz: 5b8dd05aef9afd824a472906fd10d7d7d2f219c3e3299db03c81b8273d6387ac5cd9921e6a74ada66859a3eabbb23d4e710a6da600708c067f1132c414f68aa0
7
+ data.tar.gz: e35773dd2ca6bf06b0de1a2d548566f4536f579943b4a0e9a6ced5779ad52ae85bf187735cffcf8f7a81c32105ac9337130df3bbf9484a6cb3222fb2544bb787
data/lib/ro_thor.rb CHANGED
@@ -1,6 +1,7 @@
1
+ $LOAD_PATH.unshift(File.expand_path("..", __FILE__))
2
+ require 'core_ext/array'
1
3
  require 'thor'
2
4
  require 'open3'
3
- require 'active_support/core_ext/array'
4
5
  require 'pathname'
5
6
 
6
7
  class RoThor < Thor
@@ -27,9 +28,17 @@ class RoThor < Thor
27
28
  system cmd
28
29
  end
29
30
 
31
+ def rt?(*args, &blk)
32
+ ENV['USER'] == 'root'
33
+ end
34
+
30
35
  def read(f, *args, &blk)
31
- bash "sudo cp -f #{f} #{buffer}"
32
- File.read(buffer)
36
+ if rt?
37
+ bash "sudo cp -f #{f} #{buffer}"
38
+ File.read(buffer)
39
+ else
40
+ File.read(f)
41
+ end
33
42
  end
34
43
 
35
44
  def grep(str, re, *args, &blk)
@@ -51,9 +60,13 @@ class RoThor < Thor
51
60
  end
52
61
 
53
62
  def write(f, *args, &blk)
54
- File.write(buffer, *args, &blk)
55
- pr = Pathname.new(f).parent
56
- bash("sudo mkdir -p #{pr}; sudo cp -f #{buffer} #{f}")
63
+ if rt?
64
+ File.write(buffer, *args, &blk)
65
+ pr = Pathname.new(f).parent
66
+ bash("sudo mkdir -p #{pr}; sudo cp -f #{buffer} #{f}")
67
+ else
68
+ File.write(f, *args, &blk)
69
+ end
57
70
  end
58
71
 
59
72
  class BashErr < StandardError
@@ -0,0 +1,20 @@
1
+ require 'spec_helper'
2
+
3
+ class TryArr < RoThor
4
+ def opts(*args, &blk)
5
+ args, opts = args.ro_opts
6
+ return opts
7
+ end
8
+ end
9
+
10
+ describe "RoThor.new" do
11
+ let(:o) do
12
+ TryArr.new
13
+ end
14
+
15
+ it :opts do
16
+ r = o.opts "key:val k2:v2"
17
+ expect(r).to eq({key: "val", k2: 'v2'})
18
+ end
19
+ end
20
+
@@ -0,0 +1,3 @@
1
+ require File.expand_path('../../conf/ro_thor', __FILE__)
2
+
3
+ require 'ro_thor'
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ro_thor
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.2.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - ''
@@ -33,6 +33,8 @@ extra_rdoc_files: []
33
33
  files:
34
34
  - README.md
35
35
  - lib/ro_thor.rb
36
+ - spec/lib/core_ext/array_spec.rb
37
+ - spec/spec_helper.rb
36
38
  homepage: ''
37
39
  licenses: []
38
40
  metadata: {}
@@ -56,4 +58,6 @@ rubygems_version: 2.4.5
56
58
  signing_key:
57
59
  specification_version: 4
58
60
  summary: ''
59
- test_files: []
61
+ test_files:
62
+ - spec/lib/core_ext/array_spec.rb
63
+ - spec/spec_helper.rb