bin_script 0.1.1 → 0.1.2

Sign up to get free protection for your applications and to get access to all the features.
data/.gitignore CHANGED
@@ -1,2 +1,3 @@
1
1
  log
2
- locks
2
+ locks
3
+ *.gem
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- bin_script (0.1)
4
+ bin_script (0.1.2)
5
5
  activesupport (>= 2.3.2)
6
6
 
7
7
  GEM
data/README.markdown CHANGED
@@ -50,7 +50,7 @@ class StuffScript < BinScript
50
50
  if test?
51
51
  logger.info "update string #{params(:u)}"
52
52
  else
53
- logger.info "data #{Time.parse(params(:d))}"
53
+ logger.info "data #{params(:d)}"
54
54
  end
55
55
  end
56
56
  end
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
- # Если задан ключ -h, то нам нужно только показать хэлп и environment грузить не обязательно
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?(RAILS_ROOT) && !defined?(NO_RAILS)
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' unless defined?(BinScript) == 'constant'
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.development? ? XLogger::DEBUG : XLogger::INFO)
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
- Pathname.new(Rails.root ? Rails.root : File.join(File.dirname(__FILE__), %w{.. ..})).realpath.to_s
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.test?
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.test? ? {} : self.class.get_argv_values)
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.test?))
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 !Rails.env.test? && e.class != SystemExit && e.class != Interrupt
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
- when :required
329
+ when :required
328
330
  value = @overrided_parameters[key] || @params_values[key] || param[:default]
329
331
  return value
330
332
  end
@@ -1,4 +1,4 @@
1
1
  # -*- encoding: utf-8 -*-
2
2
  class BinScript
3
- VERSION = "0.1.1"
3
+ VERSION = "0.1.2"
4
4
  end
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
- hash: 25
5
- prerelease: false
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
- date: 2012-04-07 00:00:00 +04:00
20
- default_executable:
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
- prerelease: false
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
- requirement: &id002 !ruby/object:Gem::Requirement
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
- hash: 3
47
- segments:
48
- - 0
49
- version: "0"
30
+ requirements:
31
+ - - ! '>='
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
50
34
  type: :development
51
- version_requirements: *id002
52
- description: Easy writing and executing bins (espesually for crontab or god) in Rails project
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
- hash: 3
97
- segments:
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
- hash: 3
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.3.7
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 project For my purposes much better than Rake, Thor and Rails Runner
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
-