bin_script 0.1.1 → 0.1.2
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/.gitignore +2 -1
- data/Gemfile.lock +1 -1
- data/README.markdown +1 -1
- data/bin/bin_helper +4 -14
- data/lib/bin_script/bin_script.rb +9 -7
- data/lib/bin_script/version.rb +1 -1
- metadata +40 -66
data/.gitignore
CHANGED
data/Gemfile.lock
CHANGED
data/README.markdown
CHANGED
data/bin/bin_helper
CHANGED
@@ -1,15 +1,5 @@
|
|
1
1
|
#!/usr/bin/env ruby
|
2
2
|
# -*- encoding: utf-8 -*-
|
3
|
-
# This helper is useful for requiring from bin scripts.
|
4
|
-
# Detect RAILS_ENV from '-e' parameter in ARGV (or 'development' as default) and load rails environment if need.
|
5
|
-
#
|
6
|
-
# Sample ./bin/script_name.rb
|
7
|
-
# #!/usr/bin/env ruby
|
8
|
-
#
|
9
|
-
# #NO_RAILS = true # Uncomment this line if you don't need rails environment in your script
|
10
|
-
# require File.join(File.dirname(__FILE__),'_bin_helper')
|
11
|
-
#
|
12
|
-
# Helper will detect class name for this script automatically. So for example above helper call something like this: ScriptName.new.run!
|
13
3
|
|
14
4
|
APP_ROOT ||= File.expand_path(File.dirname($0)) + "/../"
|
15
5
|
|
@@ -57,21 +47,21 @@ ARGV.each_index do |i|
|
|
57
47
|
end
|
58
48
|
end
|
59
49
|
|
60
|
-
#
|
50
|
+
# -h for show help, Rails not needed
|
61
51
|
NO_RAILS = true if ARGV.include?('-h') && !defined?(NO_RAILS)
|
62
52
|
|
63
53
|
# Set defaults
|
64
54
|
ENV['RAILS_ENV'] ||= 'development'
|
65
55
|
|
66
|
-
if !defined?(
|
56
|
+
if !defined?(Rails) && !defined?(NO_RAILS)
|
67
57
|
# Load rails envoronment if not yet and we need it
|
68
58
|
require File.join(APP_ROOT, %w{config environment})
|
69
59
|
else
|
70
60
|
require 'active_support'
|
71
61
|
end
|
72
62
|
|
73
|
-
# Load BinScript class source
|
74
|
-
require 'bin_script'
|
63
|
+
# Load BinScript class source (from gem)
|
64
|
+
require 'bin_script' if !defined?(BinScript) || !BinScript.respond_to?(:run_script)
|
75
65
|
|
76
66
|
# Call script runner
|
77
67
|
BinScript.run_script
|
@@ -20,7 +20,7 @@ class BinScript
|
|
20
20
|
]
|
21
21
|
|
22
22
|
# Default log level INFO or DEBUG for test env
|
23
|
-
@log_level = (Rails.env
|
23
|
+
@log_level = (Rails.env == 'development' ? XLogger::DEBUG : XLogger::INFO)
|
24
24
|
|
25
25
|
# Enable locking by default
|
26
26
|
@enable_locking = true
|
@@ -168,7 +168,9 @@ class BinScript
|
|
168
168
|
|
169
169
|
# RAILS_ROOT is not availible if rails environment was not loaded. So detect application root in this case from current file path
|
170
170
|
def rails_root
|
171
|
-
|
171
|
+
path = Rails.root
|
172
|
+
path ||= defined?(APP_ROOT) ? APP_ROOT : '.'
|
173
|
+
Pathname.new(path).realpath.to_s
|
172
174
|
end
|
173
175
|
|
174
176
|
# Prepare ARGV parameters as hash
|
@@ -213,7 +215,7 @@ class BinScript
|
|
213
215
|
end
|
214
216
|
|
215
217
|
def puts(*arg)
|
216
|
-
return if self.class.disable_puts_for_tests && Rails.env
|
218
|
+
return if self.class.disable_puts_for_tests && Rails.env == 'test'
|
217
219
|
Kernel.puts(*arg)
|
218
220
|
end
|
219
221
|
|
@@ -222,11 +224,11 @@ class BinScript
|
|
222
224
|
begin
|
223
225
|
@source_argv = ARGV.dup
|
224
226
|
@overrided_parameters = {}
|
225
|
-
@params_values = (Rails.env
|
227
|
+
@params_values = (Rails.env == 'test' ? {} : self.class.get_argv_values)
|
226
228
|
|
227
229
|
# Create logger if logging enabled
|
228
230
|
if self.class.enable_logging
|
229
|
-
@logger = XLogger.new(:file => log_filename, :dont_touch_rails_logger => (Rails.env
|
231
|
+
@logger = XLogger.new(:file => log_filename, :dont_touch_rails_logger => (Rails.env == 'test'))
|
230
232
|
@logger.level = self.class.log_level
|
231
233
|
end
|
232
234
|
|
@@ -275,7 +277,7 @@ class BinScript
|
|
275
277
|
log_benchmarker_data
|
276
278
|
rescue Exception => e
|
277
279
|
# Print error info if it's not test env or exit
|
278
|
-
if
|
280
|
+
if Rails.env != 'test' && e.class != SystemExit && e.class != Interrupt
|
279
281
|
msg = self.class.prepare_exception_message(e)
|
280
282
|
puts "\n" + msg
|
281
283
|
fatal msg
|
@@ -324,7 +326,7 @@ class BinScript
|
|
324
326
|
when :optional
|
325
327
|
#return nil unless @overrided_parameters.has_key?(key) || @params_values.has_key?(key)
|
326
328
|
return @overrided_parameters[key] || @params_values[key] || param[:default]
|
327
|
-
|
329
|
+
when :required
|
328
330
|
value = @overrided_parameters[key] || @params_values[key] || param[:default]
|
329
331
|
return value
|
330
332
|
end
|
data/lib/bin_script/version.rb
CHANGED
metadata
CHANGED
@@ -1,63 +1,47 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
2
|
name: bin_script
|
3
|
-
version: !ruby/object:Gem::Version
|
4
|
-
|
5
|
-
prerelease:
|
6
|
-
segments:
|
7
|
-
- 0
|
8
|
-
- 1
|
9
|
-
- 1
|
10
|
-
version: 0.1.1
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.1.2
|
5
|
+
prerelease:
|
11
6
|
platform: ruby
|
12
|
-
authors:
|
7
|
+
authors:
|
13
8
|
- Lifshits Dmitry
|
14
9
|
- Makarchev Konstantin
|
15
10
|
autorequire: init
|
16
11
|
bindir: bin
|
17
12
|
cert_chain: []
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
dependencies:
|
22
|
-
- !ruby/object:Gem::Dependency
|
13
|
+
date: 2012-04-07 00:00:00.000000000 Z
|
14
|
+
dependencies:
|
15
|
+
- !ruby/object:Gem::Dependency
|
23
16
|
name: activesupport
|
24
|
-
|
25
|
-
requirement: &id001 !ruby/object:Gem::Requirement
|
17
|
+
requirement: &72761780 !ruby/object:Gem::Requirement
|
26
18
|
none: false
|
27
|
-
requirements:
|
28
|
-
- -
|
29
|
-
- !ruby/object:Gem::Version
|
30
|
-
hash: 7
|
31
|
-
segments:
|
32
|
-
- 2
|
33
|
-
- 3
|
34
|
-
- 2
|
19
|
+
requirements:
|
20
|
+
- - ! '>='
|
21
|
+
- !ruby/object:Gem::Version
|
35
22
|
version: 2.3.2
|
36
23
|
type: :runtime
|
37
|
-
version_requirements: *id001
|
38
|
-
- !ruby/object:Gem::Dependency
|
39
|
-
name: rspec
|
40
24
|
prerelease: false
|
41
|
-
|
25
|
+
version_requirements: *72761780
|
26
|
+
- !ruby/object:Gem::Dependency
|
27
|
+
name: rspec
|
28
|
+
requirement: &72761580 !ruby/object:Gem::Requirement
|
42
29
|
none: false
|
43
|
-
requirements:
|
44
|
-
- -
|
45
|
-
- !ruby/object:Gem::Version
|
46
|
-
|
47
|
-
segments:
|
48
|
-
- 0
|
49
|
-
version: "0"
|
30
|
+
requirements:
|
31
|
+
- - ! '>='
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '0'
|
50
34
|
type: :development
|
51
|
-
|
52
|
-
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: *72761580
|
37
|
+
description: Easy writing and executing bins (espesually for crontab or god) in Rails
|
38
|
+
project
|
53
39
|
email: kostya27@gmail.com
|
54
|
-
executables:
|
40
|
+
executables:
|
55
41
|
- bin_helper
|
56
42
|
extensions: []
|
57
|
-
|
58
43
|
extra_rdoc_files: []
|
59
|
-
|
60
|
-
files:
|
44
|
+
files:
|
61
45
|
- .gitignore
|
62
46
|
- Gemfile
|
63
47
|
- Gemfile.lock
|
@@ -79,39 +63,29 @@ files:
|
|
79
63
|
- lib/generators/bin/templates/spec.rb
|
80
64
|
- spec/bin_script_spec.rb
|
81
65
|
- spec/spec_helper.rb
|
82
|
-
has_rdoc: true
|
83
66
|
homepage: http://github.com/kostya/bin_script
|
84
67
|
licenses: []
|
85
|
-
|
86
68
|
post_install_message:
|
87
69
|
rdoc_options: []
|
88
|
-
|
89
|
-
require_paths:
|
70
|
+
require_paths:
|
90
71
|
- lib
|
91
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
72
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
92
73
|
none: false
|
93
|
-
requirements:
|
94
|
-
- -
|
95
|
-
- !ruby/object:Gem::Version
|
96
|
-
|
97
|
-
|
98
|
-
- 0
|
99
|
-
version: "0"
|
100
|
-
required_rubygems_version: !ruby/object:Gem::Requirement
|
74
|
+
requirements:
|
75
|
+
- - ! '>='
|
76
|
+
- !ruby/object:Gem::Version
|
77
|
+
version: '0'
|
78
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
101
79
|
none: false
|
102
|
-
requirements:
|
103
|
-
- -
|
104
|
-
- !ruby/object:Gem::Version
|
105
|
-
|
106
|
-
segments:
|
107
|
-
- 0
|
108
|
-
version: "0"
|
80
|
+
requirements:
|
81
|
+
- - ! '>='
|
82
|
+
- !ruby/object:Gem::Version
|
83
|
+
version: '0'
|
109
84
|
requirements: []
|
110
|
-
|
111
85
|
rubyforge_project:
|
112
|
-
rubygems_version: 1.
|
86
|
+
rubygems_version: 1.8.16
|
113
87
|
signing_key:
|
114
88
|
specification_version: 3
|
115
|
-
summary: Easy writing and executing bins (espesually for crontab or god) in Rails
|
89
|
+
summary: Easy writing and executing bins (espesually for crontab or god) in Rails
|
90
|
+
project For my purposes much better than Rake, Thor and Rails Runner
|
116
91
|
test_files: []
|
117
|
-
|