execute_shell 0.0.3 → 0.0.4

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/Gemfile CHANGED
@@ -1,11 +1,12 @@
1
1
  source "http://rubygems.org"
2
2
 
3
- gem 'Platform', '~> 0.4.0', :group => [:rake, :test],
4
- :require => 'platform'
5
- gem 'open4', '~> 1.0.1', :group => [:rake, :test]
6
- gem 'win32-open3-19', '~> 0.0.1', :group => [:rake, :test], :require => 'open3'
7
-
8
3
  group :rake do
9
- gem 'rake', '0.8.7'
10
- gem 'highline', '~> 1.6.1', :require => 'highline/import'
4
+ gem 'rake_tasks', '~> 0.0.1'
5
+ end
6
+
7
+ group :test do
8
+ gem 'Platform', '~> 0.4.0', :require => 'platform'
9
+ gem 'app_mode', '~> 0.0.1'
10
+ gem 'open4', '~> 1.0.1'
11
+ gem 'win32-open3-19', '~> 0.0.1', :require => 'open3'
11
12
  end
data/Gemfile.lock CHANGED
@@ -2,9 +2,11 @@ GEM
2
2
  remote: http://rubygems.org/
3
3
  specs:
4
4
  Platform (0.4.0)
5
- highline (1.6.1)
5
+ app_mode (0.0.1)
6
6
  open4 (1.0.1)
7
7
  rake (0.8.7)
8
+ rake_tasks (0.0.1)
9
+ rake (~> 0.8.7)
8
10
  win32-open3-19 (0.0.1)
9
11
 
10
12
  PLATFORMS
@@ -12,7 +14,7 @@ PLATFORMS
12
14
 
13
15
  DEPENDENCIES
14
16
  Platform (~> 0.4.0)
15
- highline (~> 1.6.1)
17
+ app_mode (~> 0.0.1)
16
18
  open4 (~> 1.0.1)
17
- rake (= 0.8.7)
19
+ rake_tasks (~> 0.0.1)
18
20
  win32-open3-19 (~> 0.0.1)
@@ -1,6 +1,6 @@
1
1
  Gem::Specification.new do |s|
2
2
  s.name = 'execute_shell'
3
- s.version = '0.0.3'
3
+ s.version = '0.0.4'
4
4
 
5
5
  s.summary = 'Cross-platform shell commands.'
6
6
  s.description = 'Execute Shell provides ' +
@@ -21,9 +21,9 @@ Gem::Specification.new do |s|
21
21
  s.add_dependency 'Platform', '~> 0.4.0'
22
22
  s.add_dependency 'open4', '~> 1.0.1'
23
23
  s.add_dependency 'win32-open3-19', '~> 0.0.1'
24
+ s.add_dependency 'app_mode', '~> 0.0.1'
24
25
 
25
- s.add_development_dependency 'rake', '0.8.7'
26
- s.add_development_dependency 'highline', '~> 1.6.1'
26
+ s.add_development_dependency 'rake_tasks', '~> 0.0.1'
27
27
 
28
28
  s.has_rdoc = true
29
29
  end
data/lib/execute_shell.rb CHANGED
@@ -1,6 +1,6 @@
1
+ require 'app_mode'
1
2
  require 'platform'
2
3
  require 'open4' if [:linux].include?(Platform::IMPL)
3
4
  require 'open3' if [:mingw].include?(Platform::IMPL)
4
5
 
5
- require_relative 'execute_shell/script_env'
6
6
  require_relative 'execute_shell/execute_shell'
@@ -34,6 +34,8 @@
34
34
 
35
35
  # Contains methods for returning output from console commands.
36
36
  module ExecuteShell
37
+ # Indicates the mode that ExecuteShell is running in.
38
+ ExecuteShellMode = AppMode.new(:production)
37
39
 
38
40
  # Returns output from a console command.
39
41
  # ==== Input
@@ -62,7 +64,7 @@ module ExecuteShell
62
64
  path ||= Dir.getwd
63
65
 
64
66
  begin
65
- STDOUT.puts command if ScriptEnv.development
67
+ STDOUT.puts command if ExecuteShellMode.development
66
68
 
67
69
  block = case Platform::IMPL
68
70
  when :mingw
@@ -145,7 +147,7 @@ module ExecuteShell
145
147
  def format_error(exception)
146
148
  error_format = '%s: %s%s'
147
149
  error_format % [exception.class, exception.message,
148
- ScriptEnv.development ? "\n#{exception.backtrace.join("\n")}" : '']
150
+ ExecuteShellMode.development ? "\n#{exception.backtrace.join("\n")}" : '']
149
151
  end
150
152
 
151
153
  # Raises a NotImplementedError.
@@ -172,7 +174,7 @@ module ExecuteShell
172
174
  original = File.expand_path(Dir.getwd)
173
175
  out = nil
174
176
 
175
- STDOUT.puts path if ScriptEnv.development
177
+ STDOUT.puts path if ExecuteShellMode.development
176
178
 
177
179
  begin
178
180
  Dir.chdir path unless path == original
data/rakefile CHANGED
@@ -1,122 +1,2 @@
1
- root_path = File.expand_path(File.dirname(__FILE__))
2
1
  require 'bundler'
3
2
  Bundler.require :rake
4
- require 'rake/testtask'
5
- require 'rake/rdoctask'
6
- require 'rake/clean'
7
- require_relative 'lib/execute_shell'
8
-
9
- include ExecuteShell
10
-
11
- task :default => [:tests]
12
-
13
- # Include any ruby files in the tasks folder.
14
- task_files = Dir[
15
- File.join(File.expand_path(File.dirname(__FILE__)), 'tasks', '*.rb')]
16
-
17
- task_files.each do |rake_file|
18
- require rake_file
19
- end
20
-
21
- # Add a task to run all tests.
22
- Rake::TestTask.new('tests') do |task|
23
- task.pattern = 'test/*_test.rb'
24
- task.verbose = true
25
- task.warning = true
26
- end
27
- Rake::Task[:tests].comment = 'Run all tests'
28
-
29
- ################################################################################
30
- namespace :test do
31
- ################################################################################
32
- file_list = Dir['test/*_test.rb']
33
-
34
- # Add a distinct test task for each test file.
35
- file_list.each do |item|
36
- # Get the name to use for the task by removing '_test.rb' from the name.
37
- task_name = File.basename(item, '.rb').gsub(/_test$/, '')
38
-
39
- # Add each test.
40
- Rake::TestTask.new(task_name) do |task|
41
- task.pattern = item
42
- task.verbose = true
43
- task.warning = true
44
- end
45
- end
46
- ################################################################################
47
- end # :test
48
- ################################################################################
49
-
50
- ################################################################################
51
- namespace :rdoc do
52
- ################################################################################
53
-
54
- # Set the paths used by each of the rdoc options.
55
- RDOC_FILES = {
56
- :all => ['**/*.rb'],
57
- :test => ['test/lib/**/*.rb'],
58
- :app => [
59
- '*.rb',
60
- 'lib/**/*.rb',
61
- ],
62
- }
63
-
64
- # Loop through the typs of rdoc files to generate an rdoc task for each one.
65
- RDOC_FILES.keys.each do |rdoc_task|
66
- Rake::RDocTask.new(
67
- :rdoc => rdoc_task,
68
- :clobber_rdoc => "#{rdoc_task}:clobber",
69
- :rerdoc => "#{rdoc_task}:force") do |rdtask|
70
- rdtask.rdoc_dir = "doc/#{rdoc_task}"
71
- rdtask.options << '--charset' << 'utf8'
72
- rdtask.rdoc_files.include RDOC_FILES[rdoc_task], 'README'
73
- rdtask.main = 'README'
74
- end
75
-
76
- Rake::Task[rdoc_task].comment =
77
- "Generate #{rdoc_task} RDoc documentation."
78
- end
79
- ################################################################################
80
- end # :rdoc
81
- ################################################################################
82
-
83
- desc 'Search for a string in all files using a case insensitive search.'
84
- task :grep, [:text] do |task, args|
85
- # Set default search text to t-o-d-o.
86
- # It is done this way to prevent coming up in the search itself.
87
- args.with_defaults(:text => 't' + 'o' + 'd' + 'o')
88
-
89
- # Use the sample color scheme, since it provides us with bold red via :error.
90
- HighLine.color_scheme = HighLine::SampleColorScheme.new
91
- COLOR = "<%%= color('%s', :error) %%>"
92
-
93
- notification = "\nSearching for '%s':\n\n"
94
-
95
- # Output the text that is being searched for.
96
- case Platform::IMPL
97
- when :linux
98
- notification = notification % [COLOR % args[:text]]
99
- when :mingw
100
- notification = notification % args[:text]
101
- else
102
- raise_not_implemented('grep')
103
- end
104
-
105
- say notification
106
-
107
- command = "grep #{args[:text]} * -ri"
108
- success, output = shell(command)
109
-
110
- # Send the results to the console.
111
- case Platform::IMPL
112
- when :linux
113
- output = output.gsub(/(#{args[:text]})/i, COLOR % '\1')
114
- when :mingw
115
- else
116
- raise_not_implemented('grep')
117
- end
118
-
119
- say output
120
- end
121
-
122
- CLOBBER.include('help')
metadata CHANGED
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
5
5
  segments:
6
6
  - 0
7
7
  - 0
8
- - 3
9
- version: 0.0.3
8
+ - 4
9
+ version: 0.0.4
10
10
  platform: ruby
11
11
  authors:
12
12
  - Travis Herrick
@@ -19,7 +19,6 @@ default_executable:
19
19
  dependencies:
20
20
  - !ruby/object:Gem::Dependency
21
21
  name: Platform
22
- prerelease: false
23
22
  requirement: &id001 !ruby/object:Gem::Requirement
24
23
  none: false
25
24
  requirements:
@@ -31,10 +30,10 @@ dependencies:
31
30
  - 0
32
31
  version: 0.4.0
33
32
  type: :runtime
33
+ prerelease: false
34
34
  version_requirements: *id001
35
35
  - !ruby/object:Gem::Dependency
36
36
  name: open4
37
- prerelease: false
38
37
  requirement: &id002 !ruby/object:Gem::Requirement
39
38
  none: false
40
39
  requirements:
@@ -46,10 +45,10 @@ dependencies:
46
45
  - 1
47
46
  version: 1.0.1
48
47
  type: :runtime
48
+ prerelease: false
49
49
  version_requirements: *id002
50
50
  - !ruby/object:Gem::Dependency
51
51
  name: win32-open3-19
52
- prerelease: false
53
52
  requirement: &id003 !ruby/object:Gem::Requirement
54
53
  none: false
55
54
  requirements:
@@ -61,36 +60,37 @@ dependencies:
61
60
  - 1
62
61
  version: 0.0.1
63
62
  type: :runtime
63
+ prerelease: false
64
64
  version_requirements: *id003
65
65
  - !ruby/object:Gem::Dependency
66
- name: rake
67
- prerelease: false
66
+ name: app_mode
68
67
  requirement: &id004 !ruby/object:Gem::Requirement
69
68
  none: false
70
69
  requirements:
71
- - - "="
70
+ - - ~>
72
71
  - !ruby/object:Gem::Version
73
72
  segments:
74
73
  - 0
75
- - 8
76
- - 7
77
- version: 0.8.7
78
- type: :development
74
+ - 0
75
+ - 1
76
+ version: 0.0.1
77
+ type: :runtime
78
+ prerelease: false
79
79
  version_requirements: *id004
80
80
  - !ruby/object:Gem::Dependency
81
- name: highline
82
- prerelease: false
81
+ name: rake_tasks
83
82
  requirement: &id005 !ruby/object:Gem::Requirement
84
83
  none: false
85
84
  requirements:
86
85
  - - ~>
87
86
  - !ruby/object:Gem::Version
88
87
  segments:
88
+ - 0
89
+ - 0
89
90
  - 1
90
- - 6
91
- - 1
92
- version: 1.6.1
91
+ version: 0.0.1
93
92
  type: :development
93
+ prerelease: false
94
94
  version_requirements: *id005
95
95
  description: Execute Shell provides cross-platform shell command execution.
96
96
  email: tthetoad@gmail.com
@@ -102,7 +102,6 @@ extra_rdoc_files:
102
102
  - README
103
103
  files:
104
104
  - lib/execute_shell/execute_shell.rb
105
- - lib/execute_shell/script_env.rb
106
105
  - lib/execute_shell.rb
107
106
  - Gemfile.lock
108
107
  - README
@@ -126,6 +125,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
126
125
  requirements:
127
126
  - - ">="
128
127
  - !ruby/object:Gem::Version
128
+ hash: -3169303462163591821
129
129
  segments:
130
130
  - 0
131
131
  version: "0"
@@ -1,81 +0,0 @@
1
- # This file contains a class to manage information about the environment.
2
-
3
- #--
4
- ################################################################################
5
- # Copyright (C) 2011 Travis Herrick #
6
- ################################################################################
7
- # #
8
- # \v^V,^!v\^/ #
9
- # ~% %~ #
10
- # { _ _ } #
11
- # ( * - ) #
12
- # | / | #
13
- # \ _, / #
14
- # \__.__/ #
15
- # #
16
- ################################################################################
17
- # This program is free software: you can redistribute it #
18
- # and/or modify it under the terms of the GNU General Public License #
19
- # as published by the Free Software Foundation, #
20
- # either version 3 of the License, or (at your option) any later version. #
21
- # #
22
- # Commercial licensing may be available for a fee under a different license. #
23
- ################################################################################
24
- # This program is distributed in the hope that it will be useful, #
25
- # but WITHOUT ANY WARRANTY; #
26
- # without even the implied warranty of MERCHANTABILITY #
27
- # or FITNESS FOR A PARTICULAR PURPOSE. #
28
- # See the GNU General Public License for more details. #
29
- # #
30
- # You should have received a copy of the GNU General Public License #
31
- # along with this program. If not, see <http://www.gnu.org/licenses/>. #
32
- ################################################################################
33
- #++
34
-
35
- # This class manages environment information.
36
- class ScriptEnv
37
- # Contains valid environments for the script.
38
- STATES = {
39
- :development => :development,
40
- :test => :testing,
41
- :production => :production,
42
- }
43
-
44
- # Indicates the current environment of the script.
45
- @@env = nil
46
-
47
- class << self
48
- # Retrieves the current environment setting.
49
- def env
50
- if @@env.nil? && File.expand_path(Dir.getwd) ==
51
- File.expand_path(File.join(File.dirname(__FILE__), '..'))
52
- return STATES[:development]
53
- else
54
- return STATES[@@env] || STATES[:production]
55
- end
56
- end
57
-
58
- # Black magic.
59
- #
60
- # Allows the getting and setting of the 'state' of the script.
61
- # Only one environment can be active at a time.
62
- # Setting one environment to true means the others are false.
63
- # ==== Input
64
- # [method : Symbol] The method that was called.
65
- # [*args : Array] Any arguments that were passed in.
66
- # [&block : Block] A block, if specified.
67
- def method_missing(method, *args, &block)
68
- if STATES.keys.include?(method.to_s.sub(/=$/, '').to_sym)
69
- if method.to_s.match(/=$/) # Setter method.
70
- value = args && args.shift || nil
71
- @@env = method.to_s[0..-2].to_sym if value == true
72
- else # ------------------- # Getter method.
73
- states = STATES.select { |k, v| v == env }
74
- return !states[method].nil?
75
- end
76
- else
77
- super
78
- end
79
- end
80
- end
81
- end