main 6.2.3 → 6.3.0

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
  SHA256:
3
- metadata.gz: 812f2f08f43b6fe2bd462ccbe6e7bf61b1aa32918e0c7e32c8df3a5b712755a4
4
- data.tar.gz: 7f4f1c339134823e8e0c05c162128bdca697f596b5de84ac0cfee9d1857d3aec
3
+ metadata.gz: 7b6289d780438645efdd78c3c1dd205d93af94185ee591e7abbccd7f9092637f
4
+ data.tar.gz: 566196b12fb4268421df5f0a87ed1fdafb46424688b62bfedae86f477bb8a610
5
5
  SHA512:
6
- metadata.gz: 9ece9cb6324614bb8dad6dd6d068ee213dc3cd0a6ab843e6e9d1c42b5ac0fc31731d30a74367ecf438aff8caff7ebdddb1851e93849bac437da9948da2718a9d
7
- data.tar.gz: 86149dd72cefee37a167642925a2aeb9e16770bde7109b285aedbd747aba4a4dff782928c239a1fd696b4882574ecb0e0c394bb4cc3496d6172a7e2c56fa010c
6
+ metadata.gz: dcf296c3b1d49b6f4c001ac582d108cda0a12547827ef63c3310ff52342fca6c4b9c73556c19e68e7933cc688c74fd83cae3631f1b0fa3d576a1aabbd6f1205c
7
+ data.tar.gz: e064f2590b78ac9a900716f09771254599084d307356d5c8ffca51acf69790f62068d561bb3d98d7210b71737d896b47d7f30392585212a295ac2d3c13aa58c2
data/Rakefile CHANGED
@@ -1,4 +1,3 @@
1
- This.rubyforge_project = 'codeforpeople'
2
1
  This.author = "Ara T. Howard"
3
2
  This.email = "ara.t.howard@gmail.com"
4
3
  This.homepage = "https://github.com/ahoward/#{ This.lib }"
@@ -145,7 +144,6 @@ task :gemspec do
145
144
 
146
145
  spec.extensions.push(*<%= extensions.inspect %>)
147
146
 
148
- spec.rubyforge_project = <%= This.rubyforge_project.inspect %>
149
147
  spec.author = <%= This.author.inspect %>
150
148
  spec.email = <%= This.email.inspect %>
151
149
  spec.homepage = <%= This.homepage.inspect %>
@@ -230,12 +228,6 @@ task :release => [:clean, :gemspec, :gem] do
230
228
  puts
231
229
  system(cmd)
232
230
  abort("cmd(#{ cmd }) failed with (#{ $?.inspect })") unless $?.exitstatus.zero?
233
-
234
- cmd = "rubyforge login && rubyforge add_release #{ This.rubyforge_project } #{ This.lib } #{ This.version } #{ This.gem }"
235
- puts cmd
236
- puts
237
- system(cmd)
238
- abort("cmd(#{ cmd }) failed with (#{ $?.inspect })") unless $?.exitstatus.zero?
239
231
  end
240
232
 
241
233
 
@@ -71,6 +71,7 @@ module Main
71
71
  define_method(:run, &block) if block
72
72
  wrap_run!
73
73
  end
74
+
74
75
  program
75
76
  end
76
77
 
@@ -78,6 +79,9 @@ module Main
78
79
 
79
80
  def new()
80
81
  instance = allocate
82
+
83
+ setup_finalizers(instance)
84
+
81
85
  instance.instance_eval do
82
86
  pre_initialize()
83
87
  before_initialize()
@@ -86,9 +90,18 @@ module Main
86
90
  after_initialize()
87
91
  post_initialize()
88
92
  end
93
+
89
94
  instance
90
95
  end
91
96
 
97
+ def setup_finalizers(instance)
98
+ instance.finalizers = (finalizers = [])
99
+
100
+ ObjectSpace.define_finalizer(instance) do
101
+ while((f = finalizers.pop)); f.call; end
102
+ end
103
+ end
104
+
92
105
  def params
93
106
  parameters
94
107
  end
@@ -12,8 +12,8 @@ module Main
12
12
  fattr('stderr'){ main.stderr }
13
13
  fattr('logger'){ main.logger }
14
14
  fattr('script'){ main.script }
15
- fattr('params')
16
- fattr('finalizers')
15
+ fattr('params'){ Parameter::Table.new }
16
+ fattr('finalizers'){ [] }
17
17
 
18
18
  %w(
19
19
  program name synopsis description author version
@@ -51,16 +51,11 @@ module Main
51
51
  def post_initialize() :hook end
52
52
 
53
53
  def setup_finalizers
54
- @finalizers ||= []
55
- finalizers = @finalizers
56
- ObjectSpace.define_finalizer(self) do
57
- while((f = finalizers.pop)); f.call; end
58
- end
54
+ self.class.setup_finalizers(self)
59
55
  end
60
56
 
61
57
  def finalize
62
- @finalizers ||= []
63
- while((f = @finalizers.pop)); f.call; end
58
+ while((f = finalizers.pop)); f.call; end
64
59
  end
65
60
 
66
61
  def setup_io_redirection
@@ -92,10 +87,9 @@ module Main
92
87
  end
93
88
 
94
89
  def setup_io_restoration
95
- @finalizers ||= []
96
90
  [STDIN, STDOUT, STDERR].each do |io|
97
91
  dup = io.dup
98
- @finalizers.push(
92
+ finalizers.push(
99
93
  lambda do
100
94
  io.reopen(dup)
101
95
  end
@@ -111,7 +105,7 @@ module Main
111
105
  io
112
106
  else
113
107
  fd = open(io.to_s, 'r+')
114
- @finalizers.push(lambda{ fd.close })
108
+ finalizers.push(lambda{ fd.close })
115
109
  fd
116
110
  end
117
111
  begin
@@ -132,7 +126,7 @@ module Main
132
126
  io
133
127
  else
134
128
  fd = open(io.to_s, 'w+')
135
- @finalizers.push(lambda{ fd.close })
129
+ finalizers.push(lambda{ fd.close })
136
130
  fd
137
131
  end
138
132
  begin
@@ -153,7 +147,7 @@ module Main
153
147
  io
154
148
  else
155
149
  fd = open(io.to_s, 'w+')
156
- @finalizers.push(lambda{ fd.close })
150
+ finalizers.push(lambda{ fd.close })
157
151
  fd
158
152
  end
159
153
  begin
@@ -173,8 +167,7 @@ module Main
173
167
  before_parse_parameters
174
168
 
175
169
  self.class.parameters.parse(self)
176
- @params = Parameter::Table.new
177
- self.class.parameters.each{|p| @params[p.name.to_s] = p}
170
+ self.class.parameters.each{|p| params[p.name.to_s] = p}
178
171
 
179
172
  after_parse_parameters
180
173
  post_parse_parameters
data/lib/main.rb CHANGED
@@ -1,7 +1,7 @@
1
1
  module Main
2
2
  # top level constants
3
3
  #
4
- Main::VERSION = '6.2.3' unless
4
+ Main::VERSION = '6.3.0' unless
5
5
  defined? Main::VERSION
6
6
  def Main.version() Main::VERSION end
7
7
 
@@ -21,10 +21,10 @@ module Main
21
21
  #
22
22
  def Main.dependencies
23
23
  {
24
- 'chronic' => [ 'chronic', '~> 0.6', '>= 0.6.2' ] ,
25
- 'fattr' => [ 'fattr', '~> 2.2', '>= 2.2.0' ] ,
26
- 'arrayfields' => [ 'arrayfields', '~> 4.7', '>= 4.7.4' ] ,
27
- 'map' => [ 'map', '~> 6.1', '>= 6.1.0' ] ,
24
+ 'chronic' => [ 'chronic', '~> 0.10', '>= 0.10.2' ] ,
25
+ 'fattr' => [ 'fattr', '~> 2.4', '>= 2.4.0' ] ,
26
+ 'arrayfields' => [ 'arrayfields', '~> 4.9', '>= 4.9.2' ] ,
27
+ 'map' => [ 'map', '~> 6.6', '>= 6.6.0' ] ,
28
28
  }
29
29
  end
30
30
 
data/main.gemspec CHANGED
@@ -3,7 +3,7 @@
3
3
 
4
4
  Gem::Specification::new do |spec|
5
5
  spec.name = "main"
6
- spec.version = "6.2.3"
6
+ spec.version = "6.3.0"
7
7
  spec.platform = Gem::Platform::RUBY
8
8
  spec.summary = "main"
9
9
  spec.description = "a class factory and dsl for generating command line programs real quick"
@@ -55,18 +55,17 @@ Gem::Specification::new do |spec|
55
55
  spec.test_files = nil
56
56
 
57
57
 
58
- spec.add_dependency(*["chronic", "~> 0.6", ">= 0.6.2"])
58
+ spec.add_dependency(*["chronic", "~> 0.10", ">= 0.10.2"])
59
59
 
60
- spec.add_dependency(*["fattr", "~> 2.2", ">= 2.2.0"])
60
+ spec.add_dependency(*["fattr", "~> 2.4", ">= 2.4.0"])
61
61
 
62
- spec.add_dependency(*["arrayfields", "~> 4.7", ">= 4.7.4"])
62
+ spec.add_dependency(*["arrayfields", "~> 4.9", ">= 4.9.2"])
63
63
 
64
- spec.add_dependency(*["map", "~> 6.1", ">= 6.1.0"])
64
+ spec.add_dependency(*["map", "~> 6.6", ">= 6.6.0"])
65
65
 
66
66
 
67
67
  spec.extensions.push(*[])
68
68
 
69
- spec.rubyforge_project = "codeforpeople"
70
69
  spec.author = "Ara T. Howard"
71
70
  spec.email = "ara.t.howard@gmail.com"
72
71
  spec.homepage = "https://github.com/ahoward/main"
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: main
3
3
  version: !ruby/object:Gem::Version
4
- version: 6.2.3
4
+ version: 6.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ara T. Howard
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-08-16 00:00:00.000000000 Z
11
+ date: 2023-01-24 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: chronic
@@ -16,80 +16,80 @@ dependencies:
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: '0.6'
19
+ version: '0.10'
20
20
  - - ">="
21
21
  - !ruby/object:Gem::Version
22
- version: 0.6.2
22
+ version: 0.10.2
23
23
  type: :runtime
24
24
  prerelease: false
25
25
  version_requirements: !ruby/object:Gem::Requirement
26
26
  requirements:
27
27
  - - "~>"
28
28
  - !ruby/object:Gem::Version
29
- version: '0.6'
29
+ version: '0.10'
30
30
  - - ">="
31
31
  - !ruby/object:Gem::Version
32
- version: 0.6.2
32
+ version: 0.10.2
33
33
  - !ruby/object:Gem::Dependency
34
34
  name: fattr
35
35
  requirement: !ruby/object:Gem::Requirement
36
36
  requirements:
37
- - - ">="
38
- - !ruby/object:Gem::Version
39
- version: 2.2.0
40
37
  - - "~>"
41
38
  - !ruby/object:Gem::Version
42
- version: '2.2'
39
+ version: '2.4'
40
+ - - ">="
41
+ - !ruby/object:Gem::Version
42
+ version: 2.4.0
43
43
  type: :runtime
44
44
  prerelease: false
45
45
  version_requirements: !ruby/object:Gem::Requirement
46
46
  requirements:
47
- - - ">="
48
- - !ruby/object:Gem::Version
49
- version: 2.2.0
50
47
  - - "~>"
51
48
  - !ruby/object:Gem::Version
52
- version: '2.2'
49
+ version: '2.4'
50
+ - - ">="
51
+ - !ruby/object:Gem::Version
52
+ version: 2.4.0
53
53
  - !ruby/object:Gem::Dependency
54
54
  name: arrayfields
55
55
  requirement: !ruby/object:Gem::Requirement
56
56
  requirements:
57
57
  - - "~>"
58
58
  - !ruby/object:Gem::Version
59
- version: '4.7'
59
+ version: '4.9'
60
60
  - - ">="
61
61
  - !ruby/object:Gem::Version
62
- version: 4.7.4
62
+ version: 4.9.2
63
63
  type: :runtime
64
64
  prerelease: false
65
65
  version_requirements: !ruby/object:Gem::Requirement
66
66
  requirements:
67
67
  - - "~>"
68
68
  - !ruby/object:Gem::Version
69
- version: '4.7'
69
+ version: '4.9'
70
70
  - - ">="
71
71
  - !ruby/object:Gem::Version
72
- version: 4.7.4
72
+ version: 4.9.2
73
73
  - !ruby/object:Gem::Dependency
74
74
  name: map
75
75
  requirement: !ruby/object:Gem::Requirement
76
76
  requirements:
77
- - - ">="
78
- - !ruby/object:Gem::Version
79
- version: 6.1.0
80
77
  - - "~>"
81
78
  - !ruby/object:Gem::Version
82
- version: '6.1'
79
+ version: '6.6'
80
+ - - ">="
81
+ - !ruby/object:Gem::Version
82
+ version: 6.6.0
83
83
  type: :runtime
84
84
  prerelease: false
85
85
  version_requirements: !ruby/object:Gem::Requirement
86
86
  requirements:
87
- - - ">="
88
- - !ruby/object:Gem::Version
89
- version: 6.1.0
90
87
  - - "~>"
91
88
  - !ruby/object:Gem::Version
92
- version: '6.1'
89
+ version: '6.6'
90
+ - - ">="
91
+ - !ruby/object:Gem::Version
92
+ version: 6.6.0
93
93
  description: a class factory and dsl for generating command line programs real quick
94
94
  email: ara.t.howard@gmail.com
95
95
  executables: []
@@ -132,7 +132,7 @@ homepage: https://github.com/ahoward/main
132
132
  licenses:
133
133
  - Ruby
134
134
  metadata: {}
135
- post_install_message:
135
+ post_install_message:
136
136
  rdoc_options: []
137
137
  require_paths:
138
138
  - lib
@@ -147,8 +147,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
147
147
  - !ruby/object:Gem::Version
148
148
  version: '0'
149
149
  requirements: []
150
- rubygems_version: 3.0.3
151
- signing_key:
150
+ rubygems_version: 3.3.7
151
+ signing_key:
152
152
  specification_version: 4
153
153
  summary: main
154
154
  test_files: []