main 5.2.0 → 5.3.1

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.
@@ -0,0 +1,15 @@
1
+ ---
2
+ !binary "U0hBMQ==":
3
+ metadata.gz: !binary |-
4
+ YmY5MThkMTIyNDA4YzI1OTczMDFlYTA2NTFiNmY0OTM4MzFlYTM2MA==
5
+ data.tar.gz: !binary |-
6
+ ZDRlOGNjYThhMTVkMWUyNDdkMTY4MTZjYTMzOWQ0Yzk4ZDM2NGZlOQ==
7
+ !binary "U0hBNTEy":
8
+ metadata.gz: !binary |-
9
+ MTA4YWQyZTk0ZTcwYmI0MGE3N2RkMjMzNGQ2MmNkNWRjMjFjZjJjMzc4NWJj
10
+ MDIzMWEwMTY3YTcxZjkzMGUzZjcwZDEzOGQ4MTRlZjMyOTU1MGRiYWY0MzI5
11
+ NWQzOTQ3YmU2Mjk2ZTkzYmYzMGUyMjFiZGY1NjNhNmU1NDE0Y2Q=
12
+ data.tar.gz: !binary |-
13
+ MDNmMWYyYWE1ZWY4OGIxYTIzMDAxZGQxYThiOGI4MmVkYTljMDNhYmUyMGJj
14
+ NTdmNDZmYjI3MGExZGQzMjdjODllMjVkNDI2MzU0YzM2MjA1ZjVkNzFmZTZm
15
+ OTY2NjI5ODJlNjdhYmY1M2MyNTAyYzlmMGI4MmI0MmVlZTQyNWM=
data/Rakefile CHANGED
@@ -3,6 +3,9 @@ This.author = "Ara T. Howard"
3
3
  This.email = "ara.t.howard@gmail.com"
4
4
  This.homepage = "https://github.com/ahoward/#{ This.lib }"
5
5
 
6
+ task :license do
7
+ open('LICENSE', 'w'){|fd| fd.puts "same as ruby's"}
8
+ end
6
9
 
7
10
  task :default do
8
11
  puts((Rake::Task.tasks.map{|task| task.name.gsub(/::/,':')} - ['default']).sort)
@@ -29,7 +32,7 @@ def run_tests!(which = nil)
29
32
 
30
33
  test_rbs.each_with_index do |test_rb, index|
31
34
  testno = index + 1
32
- command = "#{ This.ruby } -I ./lib -I ./test/lib #{ test_rb }"
35
+ command = "#{ This.ruby } -w -I ./lib -I ./test/lib #{ test_rb }"
33
36
 
34
37
  puts
35
38
  say(div, :color => :cyan, :bold => true)
@@ -60,7 +63,7 @@ end
60
63
  task :gemspec do
61
64
  ignore_extensions = ['git', 'svn', 'tmp', /sw./, 'bak', 'gem']
62
65
  ignore_directories = ['pkg']
63
- ignore_files = ['test/log', 'a.rb']
66
+ ignore_files = ['test/log']
64
67
 
65
68
  shiteless =
66
69
  lambda do |list|
@@ -87,9 +90,10 @@ task :gemspec do
87
90
  files = shiteless[Dir::glob("**/**")]
88
91
  executables = shiteless[Dir::glob("bin/*")].map{|exe| File.basename(exe)}
89
92
  #has_rdoc = true #File.exist?('doc')
90
- test_files = test(?e, "test/#{ lib }.rb") ? "test/#{ lib }.rb" : nil
93
+ test_files = "test/#{ lib }.rb" if File.file?("test/#{ lib }.rb")
91
94
  summary = object.respond_to?(:summary) ? object.summary : "summary: #{ lib } kicks the ass"
92
95
  description = object.respond_to?(:description) ? object.description : "description: #{ lib } kicks the ass"
96
+ license = object.respond_to?(:license) ? object.license : "same as ruby's"
93
97
 
94
98
  if This.extensions.nil?
95
99
  This.extensions = []
@@ -100,51 +104,39 @@ task :gemspec do
100
104
  end
101
105
  extensions = [extensions].flatten.compact
102
106
 
103
- # TODO
104
- if This.dependencies.nil?
105
- dependencies = []
106
- else
107
- case This.dependencies
108
- when Hash
109
- dependencies = This.dependencies.values
110
- when Array
111
- dependencies = This.dependencies
112
- end
113
- end
114
-
115
107
  template =
116
108
  if test(?e, 'gemspec.erb')
117
109
  Template{ IO.read('gemspec.erb') }
118
110
  else
119
111
  Template {
120
112
  <<-__
121
- ## <%= lib %>.gemspec
113
+ ## #{ lib }.gemspec
122
114
  #
123
115
 
124
116
  Gem::Specification::new do |spec|
125
- spec.name = <%= lib.inspect %>
126
- spec.version = <%= version.inspect %>
117
+ spec.name = #{ lib.inspect }
118
+ spec.version = #{ version.inspect }
127
119
  spec.platform = Gem::Platform::RUBY
128
- spec.summary = <%= lib.inspect %>
129
- spec.description = <%= description.inspect %>
120
+ spec.summary = #{ lib.inspect }
121
+ spec.description = #{ description.inspect }
122
+ spec.license = #{ license.inspect }
130
123
 
131
- spec.files =\n<%= files.sort.pretty_inspect %>
132
- spec.executables = <%= executables.inspect %>
124
+ spec.files =\n#{ files.sort.pretty_inspect }
125
+ spec.executables = #{ executables.inspect }
133
126
 
134
127
  spec.require_path = "lib"
135
128
 
136
- spec.test_files = <%= test_files.inspect %>
129
+ spec.test_files = #{ test_files.inspect }
137
130
 
138
- <% dependencies.each do |lib_version| %>
139
- spec.add_dependency(*<%= Array(lib_version).flatten.inspect %>)
140
- <% end %>
131
+ ### spec.add_dependency 'lib', '>= version'
132
+ #### spec.add_dependency 'map'
141
133
 
142
- spec.extensions.push(*<%= extensions.inspect %>)
134
+ spec.extensions.push(*#{ extensions.inspect })
143
135
 
144
- spec.rubyforge_project = <%= This.rubyforge_project.inspect %>
145
- spec.author = <%= This.author.inspect %>
146
- spec.email = <%= This.email.inspect %>
147
- spec.homepage = <%= This.homepage.inspect %>
136
+ spec.rubyforge_project = #{ This.rubyforge_project.inspect }
137
+ spec.author = #{ This.author.inspect }
138
+ spec.email = #{ This.email.inspect }
139
+ spec.homepage = #{ This.homepage.inspect }
148
140
  end
149
141
  __
150
142
  }
@@ -188,8 +180,8 @@ task :readme do
188
180
  end
189
181
 
190
182
  template =
191
- if test(?e, 'readme.erb')
192
- Template{ IO.read('readme.erb') }
183
+ if test(?e, 'README.erb')
184
+ Template{ IO.read('README.erb') }
193
185
  else
194
186
  Template {
195
187
  <<-__
@@ -280,12 +272,6 @@ BEGIN {
280
272
  end
281
273
  This.version = version
282
274
 
283
- # see if dependencies are export by the module
284
- #
285
- if This.object.respond_to?(:dependencies)
286
- This.dependencies = This.object.dependencies
287
- end
288
-
289
275
  # we need to know the name of the lib an it's version
290
276
  #
291
277
  abort('no lib') unless This.lib
data/a.rb ADDED
@@ -0,0 +1,3 @@
1
+ require 'main'
2
+
3
+ Main{ run{ shell! } }
@@ -1,9 +1,13 @@
1
1
  module Main
2
2
  # top level constants
3
3
  #
4
- Main::VERSION = '5.2.0' unless
4
+ Main::VERSION = '5.3.1' unless
5
5
  defined? Main::VERSION
6
- def self.version() Main::VERSION end
6
+ def Main.version() Main::VERSION end
7
+
8
+ def Main.description
9
+ 'a class factory and dsl for generating command line programs real quick'
10
+ end
7
11
 
8
12
  Main::LIBDIR = File.join(File.dirname(File.expand_path(__FILE__)), self.name.downcase, '') unless
9
13
  defined? Main::LIBDIR
@@ -21,7 +25,8 @@ module Main
21
25
  'chronic' => [ 'chronic' , '>= 0.6.2' ] ,
22
26
  'fattr' => [ 'fattr' , '>= 2.2.0' ] ,
23
27
  'arrayfields' => [ 'arrayfields' , '>= 4.7.4' ] ,
24
- 'map' => [ 'map' , '>= 5.1.0' ]
28
+ 'map' => [ 'map' , '>= 5.1.0' ] ,
29
+ 'pry' => [ 'pry' , '>= 0.9' ] ,
25
30
  }
26
31
  end
27
32
 
@@ -68,9 +68,10 @@ module Main
68
68
  File.expand_path(obj.to_s)
69
69
  end
70
70
 
71
- cast :input do |obj|
71
+ stdin = proc do |obj|
72
+ require 'fattr' unless defined?(Fattr)
72
73
  case obj.to_s
73
- when '-'
74
+ when '-', 'stdin'
74
75
  io = STDIN.dup
75
76
  io.fattr(:path){ '/dev/stdin' }
76
77
  io
@@ -80,10 +81,13 @@ module Main
80
81
  io
81
82
  end
82
83
  end
84
+ cast(:stdin, &stdin)
85
+ cast(:input, &stdin)
83
86
 
84
- cast :output do |obj|
87
+ stdout = proc do |obj|
88
+ require 'fattr' unless defined?(Fattr)
85
89
  case obj.to_s
86
- when '-'
90
+ when '-', 'stdout'
87
91
  io = STDOUT.dup
88
92
  io.fattr(:path){ '/dev/stdout' }
89
93
  io
@@ -93,6 +97,8 @@ module Main
93
97
  io
94
98
  end
95
99
  end
100
+ cast(:stdout, &stdout)
101
+ cast(:output, &stdout)
96
102
 
97
103
  cast :slug do |obj|
98
104
  string = [obj].flatten.compact.join('-')
@@ -149,5 +155,9 @@ module Main
149
155
  this = self
150
156
  lambda{|obj| method(m).call obj}
151
157
  end
158
+
159
+ def Cast.cast(which, *args, &block)
160
+ Cast.send(which, *args, &block)
161
+ end
152
162
  end
153
163
  end
@@ -203,6 +203,13 @@ module Main
203
203
  (params['help'] and params['help'].given?) or argv.first == 'help'
204
204
  end
205
205
 
206
+ def shell!
207
+ Pry.hooks.clear_all
208
+ prompt = "#{ name } > "
209
+ Pry.config.prompt = proc{|*a| prompt }
210
+ binding.pry
211
+ end
212
+
206
213
  def abort(message = 'exit')
207
214
  raise SystemExit.new(message)
208
215
  end
@@ -3,10 +3,11 @@
3
3
 
4
4
  Gem::Specification::new do |spec|
5
5
  spec.name = "main"
6
- spec.version = "5.2.0"
6
+ spec.version = "5.3.1"
7
7
  spec.platform = Gem::Platform::RUBY
8
8
  spec.summary = "main"
9
- spec.description = "description: main kicks the ass"
9
+ spec.description = "a class factory and dsl for generating command line programs real quick"
10
+ spec.license = "same as ruby's"
10
11
 
11
12
  spec.files =
12
13
  ["LICENSE",
@@ -14,7 +15,7 @@ Gem::Specification::new do |spec|
14
15
  "README.erb",
15
16
  "Rakefile",
16
17
  "TODO",
17
- "db",
18
+ "a.rb",
18
19
  "lib",
19
20
  "lib/main",
20
21
  "lib/main.rb",
@@ -35,7 +36,6 @@ Gem::Specification::new do |spec|
35
36
  "lib/main/usage.rb",
36
37
  "lib/main/util.rb",
37
38
  "main.gemspec",
38
- "out",
39
39
  "samples",
40
40
  "samples/a.rb",
41
41
  "samples/b.rb",
@@ -55,15 +55,8 @@ Gem::Specification::new do |spec|
55
55
 
56
56
  spec.test_files = nil
57
57
 
58
-
59
- spec.add_dependency(*["chronic", ">= 0.6.2"])
60
-
61
- spec.add_dependency(*["fattr", ">= 2.2.0"])
62
-
63
- spec.add_dependency(*["arrayfields", ">= 4.7.4"])
64
-
65
- spec.add_dependency(*["map", ">= 5.1.0"])
66
-
58
+ ### spec.add_dependency 'lib', '>= version'
59
+ #### spec.add_dependency 'map'
67
60
 
68
61
  spec.extensions.push(*[])
69
62
 
metadata CHANGED
@@ -1,81 +1,16 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: main
3
3
  version: !ruby/object:Gem::Version
4
- version: 5.2.0
5
- prerelease:
4
+ version: 5.3.1
6
5
  platform: ruby
7
6
  authors:
8
7
  - Ara T. Howard
9
8
  autorequire:
10
9
  bindir: bin
11
10
  cert_chain: []
12
- date: 2013-03-05 00:00:00.000000000 Z
13
- dependencies:
14
- - !ruby/object:Gem::Dependency
15
- name: chronic
16
- requirement: !ruby/object:Gem::Requirement
17
- none: false
18
- requirements:
19
- - - ! '>='
20
- - !ruby/object:Gem::Version
21
- version: 0.6.2
22
- type: :runtime
23
- prerelease: false
24
- version_requirements: !ruby/object:Gem::Requirement
25
- none: false
26
- requirements:
27
- - - ! '>='
28
- - !ruby/object:Gem::Version
29
- version: 0.6.2
30
- - !ruby/object:Gem::Dependency
31
- name: fattr
32
- requirement: !ruby/object:Gem::Requirement
33
- none: false
34
- requirements:
35
- - - ! '>='
36
- - !ruby/object:Gem::Version
37
- version: 2.2.0
38
- type: :runtime
39
- prerelease: false
40
- version_requirements: !ruby/object:Gem::Requirement
41
- none: false
42
- requirements:
43
- - - ! '>='
44
- - !ruby/object:Gem::Version
45
- version: 2.2.0
46
- - !ruby/object:Gem::Dependency
47
- name: arrayfields
48
- requirement: !ruby/object:Gem::Requirement
49
- none: false
50
- requirements:
51
- - - ! '>='
52
- - !ruby/object:Gem::Version
53
- version: 4.7.4
54
- type: :runtime
55
- prerelease: false
56
- version_requirements: !ruby/object:Gem::Requirement
57
- none: false
58
- requirements:
59
- - - ! '>='
60
- - !ruby/object:Gem::Version
61
- version: 4.7.4
62
- - !ruby/object:Gem::Dependency
63
- name: map
64
- requirement: !ruby/object:Gem::Requirement
65
- none: false
66
- requirements:
67
- - - ! '>='
68
- - !ruby/object:Gem::Version
69
- version: 5.1.0
70
- type: :runtime
71
- prerelease: false
72
- version_requirements: !ruby/object:Gem::Requirement
73
- none: false
74
- requirements:
75
- - - ! '>='
76
- - !ruby/object:Gem::Version
77
- version: 5.1.0
78
- description: ! 'description: main kicks the ass'
11
+ date: 2014-02-15 00:00:00.000000000 Z
12
+ dependencies: []
13
+ description: a class factory and dsl for generating command line programs real quick
79
14
  email: ara.t.howard@gmail.com
80
15
  executables: []
81
16
  extensions: []
@@ -86,7 +21,7 @@ files:
86
21
  - README.erb
87
22
  - Rakefile
88
23
  - TODO
89
- - db
24
+ - a.rb
90
25
  - lib/main.rb
91
26
  - lib/main/cast.rb
92
27
  - lib/main/dsl.rb
@@ -104,7 +39,6 @@ files:
104
39
  - lib/main/usage.rb
105
40
  - lib/main/util.rb
106
41
  - main.gemspec
107
- - out
108
42
  - samples/a.rb
109
43
  - samples/b.rb
110
44
  - samples/c.rb
@@ -116,27 +50,27 @@ files:
116
50
  - samples/j.rb
117
51
  - test/main_test.rb
118
52
  homepage: https://github.com/ahoward/main
119
- licenses: []
53
+ licenses:
54
+ - same as ruby's
55
+ metadata: {}
120
56
  post_install_message:
121
57
  rdoc_options: []
122
58
  require_paths:
123
59
  - lib
124
60
  required_ruby_version: !ruby/object:Gem::Requirement
125
- none: false
126
61
  requirements:
127
62
  - - ! '>='
128
63
  - !ruby/object:Gem::Version
129
64
  version: '0'
130
65
  required_rubygems_version: !ruby/object:Gem::Requirement
131
- none: false
132
66
  requirements:
133
67
  - - ! '>='
134
68
  - !ruby/object:Gem::Version
135
69
  version: '0'
136
70
  requirements: []
137
71
  rubyforge_project: codeforpeople
138
- rubygems_version: 1.8.23
72
+ rubygems_version: 2.0.3
139
73
  signing_key:
140
- specification_version: 3
74
+ specification_version: 4
141
75
  summary: main
142
76
  test_files: []
data/db DELETED
File without changes
data/out DELETED
@@ -1,9 +0,0 @@
1
- 42
2
- irb(main):004:0>
3
- irb(main):005:0*
4
- irb(main):006:0*
5
- irb(main):007:0*
6
- irb(main):008:0* irb(main):008:0> => true
7
-
8
-
9
- => nil