dev_commands 0.0.4 → 0.0.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 5226ff1702d843827a6fc5bce804abdbac01b836
4
- data.tar.gz: 6aaf1e5b468a99edf293dc58a7eb3117a6cac0ec
3
+ metadata.gz: 5827bce78cb19042fdd07b2d243fc155e8cf60c7
4
+ data.tar.gz: 92ea3e418b5aa08ca64a75cd1c29291d5990e38c
5
5
  SHA512:
6
- metadata.gz: 63d53a6df6ce5c38dd9f808cf2e79b5ae4e1b86301b997a4c58b3ec33fea33cb9e1ac8de7f85d8c3d240cd450206a86ee5f06d9e34fbdebf06cd04a4046fa546
7
- data.tar.gz: b487b239f86e742b70248be2bb332391c624ee6926ff77e3dbde35fbfa062fdd935367b287ae7cbfbfdff1ed95f98ff2028bfab9653fa82fee4a6c54c4461f70
6
+ metadata.gz: 0e00c251347f44bb2e61f77d9d0607fd9ec52bc4e56d1ece80201eafb8e9adf0d702100844d164c91e01b58abd972e1e06be16a4c78771f550db06358e2c8501
7
+ data.tar.gz: 17da8d58f365de3f3340fa5ab764991facfb23a7c639d3a3f888b76f8eb024142d3941db284034a1d7a30a3a8a4959c2cc01d465e61fb2311438a68ac26a2e27
data/lib/array.rb ADDED
@@ -0,0 +1,18 @@
1
+ class Array
2
+ def execute
3
+ i=0
4
+ while i < self.length
5
+ self[i]=Command.new(self[i]) if(self[i].is_a?(String))
6
+ self[i].execute if(self[i].is_a?(Command))
7
+ i=i+1
8
+ end
9
+ end
10
+
11
+ def to_html
12
+ html=Array.new
13
+ self.each{|e|
14
+ html << e.to_html if e.respond_to?(:to_html)
15
+ }
16
+ html.join
17
+ end
18
+ end
data/lib/command.rb CHANGED
@@ -1,3 +1,5 @@
1
+ require_relative('./array.rb')
2
+ require_relative('./hash.rb')
1
3
  require_relative('./timer.rb')
2
4
 
3
5
  class Command < Hash
@@ -10,8 +12,8 @@ class Command < Hash
10
12
  self[:exit_code] = 0
11
13
  self[:output] = ''
12
14
  self[:error] = ''
13
- self[:machine_name] = ''
14
- self[:user_name] = ''
15
+ self[:machine] = ''
16
+ self[:user] = ''
15
17
  self[:start_time] = nil
16
18
  self[:end_time] = nil
17
19
  end
@@ -24,12 +26,12 @@ class Command < Hash
24
26
  end
25
27
 
26
28
  def execute
27
-
28
- #Logger.start_command self
29
-
30
29
  pwd=Dir.pwd
31
30
  Dir.chdir(self[:directory]) if(self.has_key?(:directory) && File.exists?(self[:directory]))
32
- #print " " + Color.green + self[:input] + Color.clear
31
+ self[:directory] = pwd if(self[:directory].length==0)
32
+
33
+ self[:machine] = Command.machine
34
+ self[:user] = Command.user
33
35
 
34
36
  self[:start_time]=Time.now
35
37
  timer=Timer.new
@@ -44,7 +46,6 @@ class Command < Hash
44
46
  raise "unable to eval(#{ruby})"
45
47
  end
46
48
 
47
- #puts " " + timer.elapsed_str
48
49
  self[:elapsed] = timer.elapsed_str
49
50
  self[:end_time] = Time.now
50
51
  else
@@ -55,7 +56,30 @@ class Command < Hash
55
56
  end
56
57
 
57
58
  Dir.chdir(pwd) if pwd != Dir.pwd
58
- #Logger.end_command self
59
59
  end
60
60
 
61
+ def self.machine
62
+ if !ENV['COMPUTERNAME'].nil?
63
+ return ENV['COMPUTERNAME']
64
+ end
65
+
66
+ machine = `hostname`
67
+ machine = machine.split('.')[0] if machine.include?('.')
68
+ return machine.strip
69
+ end
70
+
71
+ def self.user
72
+ ENV['USER'].nil? ? ENV['USERNAME'] : ENV['USER']
73
+ end
74
+
75
+ def to_html
76
+ [
77
+ '<h2>',
78
+ self[:input],
79
+ '</h2>',
80
+ '<ul>',
81
+ map { |k, v| ["<li><strong>#{k}</strong>", v.respond_to?(:to_html) ? v.to_html : "<span>#{v}</span></li>"] },
82
+ '</ul>'
83
+ ].join
84
+ end
61
85
  end
data/lib/hash.rb ADDED
@@ -0,0 +1,14 @@
1
+ class Hash
2
+ def execute
3
+ self.each{|k,v|
4
+ v.execute if v.respond_to?(:execute)
5
+ }
6
+ end
7
+ def to_html
8
+ [
9
+ '<ul>',
10
+ map { |k, v| ["<li><strong>#{k}</strong>", v.respond_to?(:to_html) ? v.to_html : "<span>#{v}</span></li>"] },
11
+ '</ul>'
12
+ ].join
13
+ end
14
+ end
data/spec/command_spec.rb CHANGED
@@ -35,15 +35,15 @@ describe Command do
35
35
  cmd[:error]='error_test'
36
36
  expect(cmd[:error]).to eq('error_test')
37
37
 
38
- # MachineName
39
- expect(cmd[:machine_name]).to eq('')
40
- cmd[:machine_name]='machine_name_test'
41
- expect(cmd[:machine_name]).to eq('machine_name_test')
38
+ # Machine
39
+ expect(cmd[:machine]).to eq('')
40
+ cmd[:machine]='machine_test'
41
+ expect(cmd[:machine]).to eq('machine_test')
42
42
 
43
- # UserName
44
- expect(cmd[:user_name]).to eq('')
45
- cmd[:user_name]='user_name_test'
46
- expect(cmd[:user_name]).to eq('user_name_test')
43
+ # User
44
+ expect(cmd[:user]).to eq('')
45
+ cmd[:user]='user_test'
46
+ expect(cmd[:user]).to eq('user_test')
47
47
 
48
48
  # StartTime
49
49
  expect(cmd[:start_time]).to eq(nil)
@@ -81,4 +81,18 @@ describe Command do
81
81
  expect(cmd[:output].include?('rake_test')).to eq(true)
82
82
 
83
83
  end
84
+
85
+ it "should be able to execute an array of commands" do
86
+ help=['git --help','rake --help','ruby --help']
87
+ help.execute
88
+ File.open('help.html','w'){|f|f.write(help.to_html)}
89
+ end
90
+
91
+ it "should be able to execute a hash with arrays or commands" do
92
+ commands=Hash.new
93
+ commands[:help]=['git --help','rake --help','ruby --help']
94
+ commands[:version]=['git --version','rake --version','ruby --version']
95
+ commands.execute
96
+ File.open('commands.html','w'){|f|f.write(commands.to_html)}
97
+ end
84
98
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dev_commands
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.4
4
+ version: 0.0.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Lou Parslow
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-01-08 00:00:00.000000000 Z
11
+ date: 2015-01-09 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rake
@@ -58,8 +58,10 @@ executables: []
58
58
  extensions: []
59
59
  extra_rdoc_files: []
60
60
  files:
61
+ - lib/array.rb
61
62
  - lib/command.rb
62
63
  - lib/dev_commands.rb
64
+ - lib/hash.rb
63
65
  - lib/timer.rb
64
66
  - spec/command_spec.rb
65
67
  - LICENSE