main 6.2.3 → 6.3.0

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
  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: []