mm 0.2.0 → 0.2.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.
- data/Rakefile +9 -0
- data/lib/turbine.rb +4 -0
- data/lib/turbine/application.rb +7 -0
- data/lib/turbine/command_runner.rb +7 -3
- data/lib/turbine/commands/init.rb +24 -5
- data/lib/turbine/commands/standard/commit.rb +26 -1
- data/lib/turbine/commands/standard/status.rb +4 -3
- data/lib/turbine/queue.rb +3 -3
- data/lib/turbine/timer.rb +4 -4
- metadata +38 -54
data/Rakefile
CHANGED
data/lib/turbine.rb
CHANGED
data/lib/turbine/application.rb
CHANGED
|
@@ -7,12 +7,16 @@ module Turbine
|
|
|
7
7
|
init_and_exit(*argv) if argv[0] == "init"
|
|
8
8
|
|
|
9
9
|
unless self.class.config_dir
|
|
10
|
-
prompt.say "Cannot find config file. Did you forget to run
|
|
10
|
+
prompt.say "Cannot find config file. Did you forget to run mm init?"
|
|
11
11
|
return
|
|
12
12
|
end
|
|
13
13
|
|
|
14
14
|
require "#{self.class.config_dir}/config"
|
|
15
15
|
|
|
16
|
+
if self.class.global_config_dir
|
|
17
|
+
Dir["#{self.class.global_config_dir}/commands/*.rb"].each { |f| load f }
|
|
18
|
+
end
|
|
19
|
+
|
|
16
20
|
self.class.extensions.each do |extension|
|
|
17
21
|
extend(extension)
|
|
18
22
|
end
|
|
@@ -20,13 +24,13 @@ module Turbine
|
|
|
20
24
|
setup
|
|
21
25
|
parse_options(*argv)
|
|
22
26
|
|
|
23
|
-
if respond_to?(command)
|
|
27
|
+
if command && respond_to?(command)
|
|
24
28
|
send(command)
|
|
25
29
|
else
|
|
26
30
|
prompt.say("Unknown command: #{command}")
|
|
27
31
|
end
|
|
28
32
|
|
|
29
|
-
|
|
33
|
+
teardown
|
|
30
34
|
end
|
|
31
35
|
|
|
32
36
|
def init_and_exit(*argv)
|
|
@@ -6,7 +6,21 @@ module Turbine
|
|
|
6
6
|
module StandardCommands
|
|
7
7
|
include FileUtils
|
|
8
8
|
|
|
9
|
+
def setup
|
|
10
|
+
option_parser.on("--update", "Update") do
|
|
11
|
+
params[:update] = true
|
|
12
|
+
end
|
|
13
|
+
end
|
|
14
|
+
|
|
9
15
|
def init
|
|
16
|
+
current_dir = File.dirname(__FILE__)
|
|
17
|
+
|
|
18
|
+
if params[:update] == true
|
|
19
|
+
update_standard_commands(current_dir)
|
|
20
|
+
prompt.say "Standard commands updated"
|
|
21
|
+
return
|
|
22
|
+
end
|
|
23
|
+
|
|
10
24
|
mkdir_p(".turbine")
|
|
11
25
|
mkdir_p(".turbine/log")
|
|
12
26
|
mkdir_p(".turbine/commands")
|
|
@@ -17,8 +31,7 @@ module Turbine
|
|
|
17
31
|
project_name = params[:arguments][1] || "default"
|
|
18
32
|
|
|
19
33
|
raise if key.nil?
|
|
20
|
-
|
|
21
|
-
current_dir = File.dirname(__FILE__)
|
|
34
|
+
|
|
22
35
|
|
|
23
36
|
write_file("log/#{key}.json") { |f| f << [].to_json }
|
|
24
37
|
|
|
@@ -35,8 +48,14 @@ module Turbine
|
|
|
35
48
|
f << { project_name => url }.to_json
|
|
36
49
|
end
|
|
37
50
|
|
|
38
|
-
|
|
39
|
-
|
|
51
|
+
update_standard_commands(current_dir)
|
|
52
|
+
end
|
|
53
|
+
|
|
54
|
+
private
|
|
55
|
+
|
|
56
|
+
def update_standard_commands(current_dir)
|
|
57
|
+
cp_r("#{current_dir}/standard",
|
|
58
|
+
"#{self.class.config_dir}/commands/")
|
|
40
59
|
end
|
|
41
60
|
end
|
|
42
|
-
end
|
|
61
|
+
end
|
|
@@ -1,6 +1,11 @@
|
|
|
1
|
+
require 'tempfile'
|
|
2
|
+
require 'shellwords'
|
|
3
|
+
|
|
1
4
|
Turbine::Application.extension do
|
|
2
5
|
def commit
|
|
3
|
-
|
|
6
|
+
message = params[:message] || message_from_editor
|
|
7
|
+
|
|
8
|
+
if message && message != ""
|
|
4
9
|
queue = Turbine::Queue.new
|
|
5
10
|
duration = queue.sum.to_s
|
|
6
11
|
timestamp = Time.now.utc.to_s
|
|
@@ -26,4 +31,24 @@ Turbine::Application.extension do
|
|
|
26
31
|
prompt.say "You need to supply a message"
|
|
27
32
|
end
|
|
28
33
|
end
|
|
34
|
+
|
|
35
|
+
private
|
|
36
|
+
|
|
37
|
+
# Private launch the default editor to capture a commit message
|
|
38
|
+
#
|
|
39
|
+
# Uses the environment variable +MM_EDITOR+ if present, otherwise falls back
|
|
40
|
+
# to the default +EDITOR+ variable
|
|
41
|
+
#
|
|
42
|
+
# Returns text saved to the temp file
|
|
43
|
+
def message_from_editor
|
|
44
|
+
editor = ENV['MM_EDITOR'] || ENV['EDITOR']
|
|
45
|
+
|
|
46
|
+
return unless editor
|
|
47
|
+
|
|
48
|
+
Tempfile.open('commit.txt') do |file|
|
|
49
|
+
editor_invocation = "#{editor} #{file.path}"
|
|
50
|
+
system(*Shellwords.split(editor_invocation))
|
|
51
|
+
message = File.read(file.path)
|
|
52
|
+
end
|
|
53
|
+
end
|
|
29
54
|
end
|
|
@@ -1,12 +1,13 @@
|
|
|
1
|
-
Turbine::Application.extension do
|
|
1
|
+
Turbine::Application.extension do
|
|
2
2
|
def status
|
|
3
3
|
queue = Turbine::Queue.new
|
|
4
|
-
|
|
4
|
+
|
|
5
5
|
if queue.empty?
|
|
6
6
|
prompt.say "No entries for this commit yet\n\n"
|
|
7
7
|
else
|
|
8
8
|
entries = queue.entries.join(", ")
|
|
9
|
-
sum = queue.entries.inject {|sum, n| sum + n }
|
|
9
|
+
sum = queue.entries.inject {|sum, n| sum + n }.
|
|
10
|
+
round(Turbine::PRECISION)
|
|
10
11
|
prompt.say "Entries for this commit: ( #{entries} )"
|
|
11
12
|
prompt.say "Total for this commit: #{sum}\n\n"
|
|
12
13
|
end
|
data/lib/turbine/queue.rb
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
module Turbine
|
|
2
|
-
class Queue
|
|
2
|
+
class Queue
|
|
3
3
|
include Enumerable
|
|
4
4
|
|
|
5
5
|
def initialize(dir=Turbine::Application.config_dir)
|
|
@@ -18,7 +18,7 @@ module Turbine
|
|
|
18
18
|
def entries
|
|
19
19
|
return [] if empty?
|
|
20
20
|
|
|
21
|
-
File.read(@file).split("\n").map { |e| e.to_f }
|
|
21
|
+
File.read(@file).split("\n").map { |e| e.to_f.round(Turbine::PRECISION) }
|
|
22
22
|
end
|
|
23
23
|
|
|
24
24
|
def each
|
|
@@ -30,7 +30,7 @@ module Turbine
|
|
|
30
30
|
|
|
31
31
|
File.foreach(@file).inject(0) do |sum, line|
|
|
32
32
|
sum + line.to_f
|
|
33
|
-
end
|
|
33
|
+
end.round(Turbine::PRECISION)
|
|
34
34
|
end
|
|
35
35
|
|
|
36
36
|
def clear
|
data/lib/turbine/timer.rb
CHANGED
|
@@ -13,14 +13,14 @@ module Turbine
|
|
|
13
13
|
def write_timestamp
|
|
14
14
|
File.open(@file, "w") { |f| f << Time.now.utc.to_s }
|
|
15
15
|
end
|
|
16
|
-
|
|
16
|
+
|
|
17
17
|
def timestamp
|
|
18
18
|
raise MissingTimestampError unless running?
|
|
19
19
|
Time.parse(File.read(@file)).localtime
|
|
20
20
|
end
|
|
21
|
-
|
|
21
|
+
|
|
22
22
|
def elapsed_time
|
|
23
|
-
(Time.now.utc - timestamp.utc) / 60.0 / 60.0
|
|
23
|
+
((Time.now.utc - timestamp.utc) / 60.0 / 60.0).round(Turbine::PRECISION)
|
|
24
24
|
end
|
|
25
25
|
|
|
26
26
|
def clear_timestamp
|
|
@@ -30,6 +30,6 @@ module Turbine
|
|
|
30
30
|
def running?
|
|
31
31
|
File.exist?(@file)
|
|
32
32
|
end
|
|
33
|
-
end
|
|
33
|
+
end
|
|
34
34
|
end
|
|
35
35
|
|
metadata
CHANGED
|
@@ -1,86 +1,70 @@
|
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: mm
|
|
3
|
-
version: !ruby/object:Gem::Version
|
|
4
|
-
|
|
5
|
-
prerelease:
|
|
6
|
-
segments:
|
|
7
|
-
- 0
|
|
8
|
-
- 2
|
|
9
|
-
- 0
|
|
10
|
-
version: 0.2.0
|
|
3
|
+
version: !ruby/object:Gem::Version
|
|
4
|
+
version: 0.2.1
|
|
5
|
+
prerelease:
|
|
11
6
|
platform: ruby
|
|
12
|
-
authors:
|
|
7
|
+
authors:
|
|
13
8
|
- Gregory Brown
|
|
9
|
+
- Jordan Byron
|
|
10
|
+
- Brad Ediger
|
|
14
11
|
autorequire:
|
|
15
12
|
bindir: bin
|
|
16
13
|
cert_chain: []
|
|
17
|
-
|
|
18
|
-
date: 2010-08-10 00:00:00 -04:00
|
|
19
|
-
default_executable:
|
|
14
|
+
date: 2013-08-21 00:00:00.000000000 Z
|
|
20
15
|
dependencies: []
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
16
|
+
description: CLI for Madriska Momentum
|
|
17
|
+
email:
|
|
18
|
+
- gregory.t.brown@gmail.com
|
|
19
|
+
- jordan.byron@gmail.com
|
|
20
|
+
- brad@bradedier.com
|
|
21
|
+
executables:
|
|
25
22
|
- mm
|
|
26
23
|
extensions: []
|
|
27
|
-
|
|
28
24
|
extra_rdoc_files: []
|
|
29
|
-
|
|
30
|
-
files:
|
|
25
|
+
files:
|
|
31
26
|
- lib/turbine/application.rb
|
|
32
27
|
- lib/turbine/command_runner.rb
|
|
33
|
-
- lib/turbine/
|
|
34
|
-
- lib/turbine/queue.rb
|
|
35
|
-
- lib/turbine/commands/standard/staged.rb
|
|
36
|
-
- lib/turbine/commands/standard/start.rb
|
|
28
|
+
- lib/turbine/commands/init.rb
|
|
37
29
|
- lib/turbine/commands/standard/add.rb
|
|
38
|
-
- lib/turbine/commands/standard/
|
|
30
|
+
- lib/turbine/commands/standard/commit.rb
|
|
39
31
|
- lib/turbine/commands/standard/drop.rb
|
|
40
|
-
- lib/turbine/commands/standard/
|
|
32
|
+
- lib/turbine/commands/standard/project.rb
|
|
41
33
|
- lib/turbine/commands/standard/push.rb
|
|
34
|
+
- lib/turbine/commands/standard/reset.rb
|
|
42
35
|
- lib/turbine/commands/standard/rewind.rb
|
|
43
|
-
- lib/turbine/commands/standard/
|
|
44
|
-
- lib/turbine/commands/standard/
|
|
36
|
+
- lib/turbine/commands/standard/staged.rb
|
|
37
|
+
- lib/turbine/commands/standard/start.rb
|
|
38
|
+
- lib/turbine/commands/standard/status.rb
|
|
45
39
|
- lib/turbine/commands/standard/stop.rb
|
|
46
|
-
- lib/turbine/
|
|
40
|
+
- lib/turbine/queue.rb
|
|
41
|
+
- lib/turbine/timer.rb
|
|
47
42
|
- lib/turbine.rb
|
|
48
43
|
- data/config.rb.erb
|
|
49
44
|
- bin/mm
|
|
50
45
|
- Rakefile
|
|
51
|
-
|
|
52
|
-
homepage: http://pixelpowerhouse.com
|
|
46
|
+
homepage: http://momentum.madriska.com
|
|
53
47
|
licenses: []
|
|
54
|
-
|
|
55
48
|
post_install_message:
|
|
56
49
|
rdoc_options: []
|
|
57
|
-
|
|
58
|
-
require_paths:
|
|
50
|
+
require_paths:
|
|
59
51
|
- lib
|
|
60
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
|
52
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
|
61
53
|
none: false
|
|
62
|
-
requirements:
|
|
63
|
-
- -
|
|
64
|
-
- !ruby/object:Gem::Version
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
- 0
|
|
68
|
-
version: "0"
|
|
69
|
-
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
54
|
+
requirements:
|
|
55
|
+
- - ! '>='
|
|
56
|
+
- !ruby/object:Gem::Version
|
|
57
|
+
version: '0'
|
|
58
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
70
59
|
none: false
|
|
71
|
-
requirements:
|
|
72
|
-
- -
|
|
73
|
-
- !ruby/object:Gem::Version
|
|
74
|
-
|
|
75
|
-
segments:
|
|
76
|
-
- 0
|
|
77
|
-
version: "0"
|
|
60
|
+
requirements:
|
|
61
|
+
- - ! '>='
|
|
62
|
+
- !ruby/object:Gem::Version
|
|
63
|
+
version: '0'
|
|
78
64
|
requirements: []
|
|
79
|
-
|
|
80
65
|
rubyforge_project:
|
|
81
|
-
rubygems_version: 1.
|
|
66
|
+
rubygems_version: 1.8.23
|
|
82
67
|
signing_key:
|
|
83
68
|
specification_version: 3
|
|
84
|
-
summary:
|
|
69
|
+
summary: CLI for Madriska Momentum
|
|
85
70
|
test_files: []
|
|
86
|
-
|