rego 1.6.0 → 1.7.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,15 +1,15 @@
1
1
  ---
2
2
  !binary "U0hBMQ==":
3
3
  metadata.gz: !binary |-
4
- NDBmMTk2ZTFiMWNkODIxZjNmYjg1NTQ3ZGVjNzYyMWU3Mjk1MjkxNQ==
4
+ NzBhODQ2YjcxN2Q0OTIwYWM1Zjg5YTY1YzllOGRkOTg4ODBjMDU3Mw==
5
5
  data.tar.gz: !binary |-
6
- NTE5Mzc1OWY4NzExOWE2YTgzNDZmNmExMjEzMTZjYzBhMWM5OTAxZQ==
6
+ Yjk2Y2YzN2IzYWNkZTI5MGU4YjFmMDljNTJiYjgyYWFkNjRlYmE0ZQ==
7
7
  !binary "U0hBNTEy":
8
8
  metadata.gz: !binary |-
9
- OGIwNGE0NDAwMjUzNTViN2E5MjIzNDdlNzE4ZGU4YTNhZjEwOTU0MTEzMTJm
10
- ZmJkNTMwNTJkYTRhNDNlNzYxYjNkNzFjOGQwZWJmYTk0NzJiYWZmMTFjMzcy
11
- MzVlMjIyZjA0ZWY5YjViYzI0OWQ1NGQ4ZGE0ZTllN2E2ZTFkNGI=
9
+ YTQyN2IyODlkYTZiYzFlNGM2YWIxN2YxMDMzMjRiYzE3NWMxYjZlNThhZGYy
10
+ ZGFhNGFmY2ZkMDk3OTAxYTdmNjRhMWIwMWIyOTEyYzI5NTY5OTE5YWNjNDQw
11
+ N2FhMzAwN2QwNjdhMGQ5ZmJlYzhkNTljNjk2MjVmN2U0Y2U1MGU=
12
12
  data.tar.gz: !binary |-
13
- NzAzNzU5OThkMGY4YmEyYzk5Nzc3MmI1MzZhNWM2ZTg0NTg5NDRlMTRlYjQ1
14
- NzhmYTVmZDNlNTFkNTA0NWNlNDE4MWRkMDdlNGViZmJmNDA0NzA2NjNiZjI1
15
- MDlmYjMyYmVlZmU3MGJhZGE5NmJhZGRiNmFjNTRmN2Q0YWE5YzM=
13
+ ZjY0ZWU5YWE2YWMwZmJmNDM2OWMxM2M5YTViMjljMWUwNjAwN2UwYWQyMTdl
14
+ NGYyNmQxYjQ2ZDJmN2E0YzFmZmE3ZmI3YjllYzc0Zjg4MmIyMDUzZmYwMGE0
15
+ M2Y0ZGYzYjE3MGFhN2Q5NjVjMGE3ZDZmOTU1YzBkNDkyZTc3MGM=
@@ -0,0 +1,51 @@
1
+ NAME
2
+ ---------------
3
+
4
+ rego
5
+
6
+ SYNOPSIS
7
+ ---------------
8
+
9
+ rego ./files ./to ./watch -- command-to-run
10
+
11
+ INSTALL
12
+ ---------------
13
+
14
+ gem install rego
15
+
16
+ DESCRIPTION
17
+ ---------------
18
+
19
+ run arbitrary commands easily when files change
20
+
21
+ PARAMETERS
22
+ ---------------
23
+
24
+ --help, -h
25
+
26
+ EXAMPLES
27
+ ---------------
28
+
29
+ ```bash
30
+
31
+ # say hai whenever the file foo.txt changes
32
+ #
33
+ ~> rego foo.txt -- echo hai
34
+
35
+ # say hai whenever any file (recursively) in bar changes
36
+ #
37
+ ~> rego ./bar/ -- echo hai
38
+
39
+ # echo *the file that changed* when any file (recursively) in bar changes
40
+ #
41
+ ~> rego ./bar/ -- echo "@ was changed"
42
+
43
+ # run a specific test whenever anything in lib, test, app, or config changes
44
+ #
45
+ ~> rego {lib,test,app,config} -- ruby -Itest ./test/units/foo_test.rb --name teh_test
46
+
47
+ # run a specific test whenever it, or your app, has changed
48
+ #
49
+ ~> rego ./test -- ruby -Itest @
50
+
51
+ ```
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 "Ruby"}
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 = "#{ File.basename(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'] + Dir['db/*'] + %w'db'
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 : "Ruby"
93
97
 
94
98
  if This.extensions.nil?
95
99
  This.extensions = []
@@ -100,7 +104,6 @@ task :gemspec do
100
104
  end
101
105
  extensions = [extensions].flatten.compact
102
106
 
103
- # TODO
104
107
  if This.dependencies.nil?
105
108
  dependencies = []
106
109
  else
@@ -127,6 +130,7 @@ task :gemspec do
127
130
  spec.platform = Gem::Platform::RUBY
128
131
  spec.summary = <%= lib.inspect %>
129
132
  spec.description = <%= description.inspect %>
133
+ spec.license = <%= license.inspect %>
130
134
 
131
135
  spec.files =\n<%= files.sort.pretty_inspect %>
132
136
  spec.executables = <%= executables.inspect %>
@@ -188,8 +192,8 @@ task :readme do
188
192
  end
189
193
 
190
194
  template =
191
- if test(?e, 'readme.erb')
192
- Template{ IO.read('readme.erb') }
195
+ if test(?e, 'README.erb')
196
+ Template{ IO.read('README.erb') }
193
197
  else
194
198
  Template {
195
199
  <<-__
@@ -293,7 +297,7 @@ BEGIN {
293
297
 
294
298
  # discover full path to this ruby executable
295
299
  #
296
- c = RbConfig::CONFIG
300
+ c = Config::CONFIG
297
301
  bindir = c["bindir"] || c['BINDIR']
298
302
  ruby_install_name = c['ruby_install_name'] || c['RUBY_INSTALL_NAME'] || 'ruby'
299
303
  ruby_ext = c['EXEEXT'] || ''
data/bin/rego CHANGED
@@ -40,6 +40,13 @@ Main {
40
40
  ~> rego ./test -- ruby -Itest @
41
41
  __
42
42
 
43
+ option('--replacement=replacement', '-r'){
44
+ default '@'
45
+ }
46
+
47
+ option('--no-replacement', '-n'){
48
+ }
49
+
43
50
  def run
44
51
  parse_the_command_line
45
52
  print_a_summary_of_watched_files
@@ -47,11 +54,23 @@ Main {
47
54
  end
48
55
 
49
56
  def parse_the_command_line
50
- argv = ARGV.map{|arg| "#{ arg }"}
57
+ # FIXME - this works around main.rb dropping '--' on the floor in @argv so
58
+ # we restore it and re-parse params to restore valid state. should be
59
+ # forward compatible if main fixes this though...
60
+ #
61
+ argv, command = ARGV.join(' ').split(/\s+--\s+/).map{|value| value.to_s.strip}
62
+ @argv = argv.scan(/[^\s]+/)
63
+ parse_parameters()
64
+
65
+ @replacement = params[:replacement].value
66
+
67
+ if params['no-replacement'].given?
68
+ @replacement = false
69
+ end
51
70
 
52
- @paths, @command = argv.join(' ').split('--', 2)
71
+ @paths, @command = @argv, command
53
72
 
54
- @paths = @paths.to_s.strip.scan(/[^\s]+/)
73
+ @paths = @paths.join(' ').strip.scan(/[^\s]+/)
55
74
  @command = @command.to_s.strip
56
75
 
57
76
  if @paths.empty?
@@ -59,7 +78,7 @@ Main {
59
78
  end
60
79
 
61
80
  if @command.empty?
62
- @command = 'echo @'
81
+ @command = false
63
82
  end
64
83
 
65
84
  @paths.map!{|path| test(?d, path) ? [path, Dir.glob(File.join(path, '**/**'))] : path}
@@ -119,8 +138,14 @@ Main {
119
138
  #
120
139
  rego =
121
140
  proc do |*args|
122
- path = args.shift
123
- cmd = path ? @command.gsub(/@/, path) : @command
141
+ path = args.flatten.compact.shift
142
+
143
+ cmd =
144
+ if @command
145
+ @replacement ? @command.gsub(@replacement, path) : @command
146
+ else
147
+ "echo #{ path.inspect }"
148
+ end
124
149
 
125
150
  puts line
126
151
 
@@ -138,10 +163,18 @@ Main {
138
163
 
139
164
  #
140
165
  q = Queue.new
166
+ @started_at = nil
167
+ @fucking_hack = 1.42
141
168
 
142
169
  Thread.new do
143
170
  loop do
144
- rego.call(q.pop)
171
+ args = q.pop
172
+
173
+ running_for = Time.now.to_f - @started_at
174
+
175
+ if running_for > @fucking_hack
176
+ rego.call(*args)
177
+ end
145
178
  end
146
179
  end
147
180
 
@@ -179,6 +212,7 @@ Main {
179
212
 
180
213
  if before.nil? or after.mtime > before.mtime
181
214
  stats[path] = after
215
+ @started_at ||= Time.now.to_f
182
216
  q.push(path)
183
217
  end
184
218
  end
@@ -4,7 +4,7 @@ require 'yaml'
4
4
  require 'tmpdir'
5
5
 
6
6
  module Rego
7
- Version = '1.6.0' unless defined?(Version)
7
+ Version = '1.7.0' unless defined?(Version)
8
8
 
9
9
  def version
10
10
  Rego::Version
@@ -13,7 +13,7 @@ module Rego
13
13
  def dependencies
14
14
  {
15
15
  'main' => [ 'main' , ' >= 4.8' ] ,
16
- 'rb-fsevent' => [ 'rb-fsevent' , ' >= 0.9' ] ,
16
+ 'rb-fsevent' => [ 'rb-fsevent' , ' >= 0.9.4' ] ,
17
17
  }
18
18
  end
19
19
 
@@ -3,14 +3,14 @@
3
3
 
4
4
  Gem::Specification::new do |spec|
5
5
  spec.name = "rego"
6
- spec.version = "1.6.0"
6
+ spec.version = "1.7.0"
7
7
  spec.platform = Gem::Platform::RUBY
8
8
  spec.summary = "rego"
9
9
  spec.description = "description: rego kicks the ass"
10
+ spec.license = "Ruby"
10
11
 
11
12
  spec.files =
12
- ["2013-06-22-your-filename.md",
13
- "README",
13
+ ["README.md",
14
14
  "Rakefile",
15
15
  "bin",
16
16
  "bin/rego",
@@ -27,7 +27,7 @@ Gem::Specification::new do |spec|
27
27
 
28
28
  spec.add_dependency(*["main", " >= 4.8"])
29
29
 
30
- spec.add_dependency(*["rb-fsevent", " >= 0.9"])
30
+ spec.add_dependency(*["rb-fsevent", " >= 0.9.4"])
31
31
 
32
32
 
33
33
  spec.extensions.push(*[])
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rego
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.6.0
4
+ version: 1.7.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ara T. Howard
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2013-11-04 00:00:00.000000000 Z
11
+ date: 2014-04-01 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: main
@@ -30,14 +30,14 @@ dependencies:
30
30
  requirements:
31
31
  - - ! '>='
32
32
  - !ruby/object:Gem::Version
33
- version: '0.9'
33
+ version: 0.9.4
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - ! '>='
39
39
  - !ruby/object:Gem::Version
40
- version: '0.9'
40
+ version: 0.9.4
41
41
  description: ! 'description: rego kicks the ass'
42
42
  email: ara.t.howard@gmail.com
43
43
  executables:
@@ -45,14 +45,14 @@ executables:
45
45
  extensions: []
46
46
  extra_rdoc_files: []
47
47
  files:
48
- - 2013-06-22-your-filename.md
49
- - README
48
+ - README.md
50
49
  - Rakefile
51
50
  - bin/rego
52
51
  - lib/rego.rb
53
52
  - rego.gemspec
54
53
  homepage: https://github.com/ahoward/rego
55
- licenses: []
54
+ licenses:
55
+ - Ruby
56
56
  metadata: {}
57
57
  post_install_message:
58
58
  rdoc_options: []
@@ -1,6 +0,0 @@
1
- ## A New Post
2
-
3
- Enter text in [Markdown](http://daringfireball.net/projects/markdown/). Use the toolbar above, or click the **?** button for formatting help.
4
-
5
-
6
- testing out http://prose.io
data/README DELETED
@@ -1,43 +0,0 @@
1
- NAME
2
-
3
- rego
4
-
5
- SYNOPSIS
6
-
7
- rego
8
-
9
- [options]+
10
-
11
- DESCRIPTION
12
-
13
- run arbitrary commands easily when files change
14
-
15
- PARAMETERS
16
-
17
- --help, -h
18
-
19
- EXAMPLES
20
-
21
- ### gem install rego
22
-
23
-
24
- # say hai whenever the file foo.txt changes
25
- #
26
- ~> rego foo.txt -- echo hai
27
-
28
- # say hai whenever any file (recursively) in bar changes
29
- #
30
- ~> rego ./bar/ -- echo hai
31
-
32
- # echo *the file that changed* when any file (recursively) in bar changes
33
- #
34
- ~> rego ./bar/ -- echo "@ was changed"
35
-
36
- # run a specific test whenever anything in lib, test, app, or config changes
37
- #
38
- ~> rego {lib,test,app,config} -- ruby -Itest ./test/units/foo_test.rb --name teh_test
39
-
40
- # run a specific test whenever it, or your app, has changed
41
- #
42
- ~> rego ./test -- ruby -Itest @
43
-