royw-git_shoes 0.0.0 → 0.0.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 +1 -0
- data/VERSION.yml +2 -2
- data/lib/controllers/controller.rb +5 -1
- data/lib/loader.rb +11 -8
- data/lib/views/action.rb +19 -0
- data/lib/views/command_widget.rb +49 -0
- data/lib/views/dir_action.rb +8 -206
- data/lib/views/directory_widget.rb +94 -0
- data/lib/views/file_action.rb +19 -0
- data/lib/views/file_widget.rb +26 -0
- data/lib/views/nav.rb +8 -0
- data/lib/views/page_widget.rb +10 -0
- data/lib/views/repository_widget.rb +28 -0
- data/lib/views/status_action.rb +22 -0
- data/lib/views/status_widget.rb +11 -0
- data/lib/views/title_widget.rb +10 -0
- data/lib/views/widget.rb +5 -0
- data/spec/spec_helper.rb +1 -1
- metadata +12 -1
data/Rakefile
CHANGED
@@ -20,6 +20,7 @@ require 'spec/rake/spectask'
|
|
20
20
|
Spec::Rake::SpecTask.new(:spec) do |spec|
|
21
21
|
spec.libs << 'lib' << 'spec'
|
22
22
|
spec.spec_files = FileList['spec/**/*_spec.rb']
|
23
|
+
spec.spec_opts = ["--color", "--format nested"]
|
23
24
|
end
|
24
25
|
|
25
26
|
Spec::Rake::SpecTask.new(:rcov) do |spec|
|
data/VERSION.yml
CHANGED
@@ -18,6 +18,10 @@ class Controller
|
|
18
18
|
REVERSE_DATE = 'Oldest First'
|
19
19
|
SORT_NAMES = [NAME, REVERSE_NAME, DATE, REVERSE_DATE]
|
20
20
|
|
21
|
+
class << self
|
22
|
+
attr_accessor :selected_item
|
23
|
+
end
|
24
|
+
|
21
25
|
# current working directory
|
22
26
|
def self.cwd
|
23
27
|
Directory.cwd
|
@@ -74,7 +78,7 @@ class Controller
|
|
74
78
|
def self.files(&blk)
|
75
79
|
items = Directory.contents.collect do |item|
|
76
80
|
item.options[:click] = lambda {Controller.chdir(item.path); blk.call(nil)} if item.directory?
|
77
|
-
item.options[:click] = lambda {blk.call(item
|
81
|
+
item.options[:click] = lambda {blk.call(item)} if item.file?
|
78
82
|
item
|
79
83
|
end
|
80
84
|
# puts "files items => #{items.inspect}"
|
data/lib/loader.rb
CHANGED
@@ -5,15 +5,18 @@ require 'logger'
|
|
5
5
|
require 'singleton'
|
6
6
|
# require 'ruby-debug'
|
7
7
|
|
8
|
-
|
9
|
-
|
10
|
-
require 'models/git_helper'
|
11
|
-
require 'models/directory'
|
12
|
-
require 'models/dir_item'
|
13
|
-
|
8
|
+
# a few classes have to be loaded before the rest
|
9
|
+
require 'views/nav'
|
14
10
|
require 'views/bullet_list'
|
11
|
+
require 'views/widget'
|
15
12
|
require 'views/action'
|
16
|
-
require 'views/dir_action'
|
17
13
|
|
18
|
-
require
|
14
|
+
# require all *.rb files under lib
|
15
|
+
Dir.glob("lib/**/*.rb").select{|f| f =~ /^lib\//}.each do |filespec|
|
16
|
+
file = filespec.gsub(/\.rb$/, '').gsub(/^lib\//, '')
|
17
|
+
unless file == 'loader'
|
18
|
+
# puts "require #{file}"
|
19
|
+
require file
|
20
|
+
end
|
21
|
+
end
|
19
22
|
|
data/lib/views/action.rb
CHANGED
@@ -3,8 +3,27 @@ class Action
|
|
3
3
|
|
4
4
|
attr_accessor :app
|
5
5
|
|
6
|
+
def initialize
|
7
|
+
@command_widget = CommandWidget.new
|
8
|
+
@title_widget = TitleWidget.new
|
9
|
+
@page_widget = PageWidget.new
|
10
|
+
end
|
11
|
+
|
6
12
|
def execute(obj=nil)
|
7
13
|
|
8
14
|
end
|
9
15
|
|
16
|
+
def page_layout(&blk)
|
17
|
+
@page_widget.app = app
|
18
|
+
@page_widget.show
|
19
|
+
|
20
|
+
app.flow(:width => '100%') do
|
21
|
+
@title_widget.app = app
|
22
|
+
@title_widget.show
|
23
|
+
@command_widget.app = app
|
24
|
+
@command_widget.show(:width => 100)
|
25
|
+
blk.call unless blk.nil?
|
26
|
+
end
|
27
|
+
end
|
28
|
+
|
10
29
|
end
|
@@ -0,0 +1,49 @@
|
|
1
|
+
class CommandWidget < Widget
|
2
|
+
include Nav
|
3
|
+
|
4
|
+
def show(opt={})
|
5
|
+
dir_item = Controller.selected_item
|
6
|
+
app.stack(opt) do
|
7
|
+
app.background app.gradient(app.rgb(0, 255, 0), app.rgb(255, 255, 0), :angle => -35)
|
8
|
+
app.para app.link("Files", :click => lambda{app.visit(DIR_PAGE)})
|
9
|
+
app.rect(5, 30, 90, 1)
|
10
|
+
if Controller.in_repository?
|
11
|
+
app.para app.link("Status", :click => lambda{app.visit(STATUS_PAGE)})
|
12
|
+
if !dir_item.nil? && (dir_item.modified? || dir_item.candidate?)
|
13
|
+
app.para app.link("Add", :click => lambda{add_action})
|
14
|
+
else
|
15
|
+
app.para "Add"
|
16
|
+
end
|
17
|
+
if !dir_item.nil? && dir_item.modified?
|
18
|
+
app.para app.link("Diff", :click => lambda{diff_action})
|
19
|
+
else
|
20
|
+
app.para "Diff"
|
21
|
+
end
|
22
|
+
app.para app.link("Commit", :click => lambda{commit_action})
|
23
|
+
app.para "Config"
|
24
|
+
else
|
25
|
+
# app.para 'Status'
|
26
|
+
# app.para "Diff"
|
27
|
+
# app.para "Commit"
|
28
|
+
# app.para "Branch"
|
29
|
+
# app.para "Config"
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
33
|
+
|
34
|
+
def add_action
|
35
|
+
# TODO implement
|
36
|
+
puts "need to implement add_action"
|
37
|
+
end
|
38
|
+
|
39
|
+
def diff_action
|
40
|
+
# TODO implement
|
41
|
+
puts "need to implement diff_action"
|
42
|
+
end
|
43
|
+
|
44
|
+
def commit_action
|
45
|
+
# TODO implement
|
46
|
+
puts "need to implement commit_action"
|
47
|
+
end
|
48
|
+
|
49
|
+
end
|
data/lib/views/dir_action.rb
CHANGED
@@ -1,217 +1,19 @@
|
|
1
1
|
class DirAction < Action
|
2
|
-
include
|
3
|
-
|
4
|
-
DIR_PAGE = '/'
|
5
|
-
FILE_PAGE = '/file'
|
6
|
-
VIEW_AREA_OPTS = {:width => -100, :margin_left => 10, :margin_right => @gutter}
|
2
|
+
include Nav
|
7
3
|
|
8
4
|
def initialize
|
9
5
|
super
|
10
|
-
@
|
11
|
-
@sort_selection = Controller::SORT_NAMES.first
|
6
|
+
@directory_widget = DirectoryWidget.new
|
12
7
|
end
|
13
8
|
|
9
|
+
def execute()
|
10
|
+
info "dir_action.execute"
|
14
11
|
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
app.background app.palegreen
|
20
|
-
app.style(Shoes::Link, :underline => false, :stroke => app.blue)
|
21
|
-
app.style(Shoes::LinkHover, :underline => true, :stroke => app.red)
|
22
|
-
|
23
|
-
app.flow(:width => '100%') do
|
24
|
-
title_stack = app.stack(:width => '100%') do
|
25
|
-
app.background app.gradient(app.rgb(0, 255, 0), app.rgb(225, 255, 0), :angle => 135)
|
26
|
-
app.title("Git Shoes", :align => 'center')
|
27
|
-
end
|
28
|
-
command_widget(dir_item, :width => 100)
|
29
|
-
if dir_item.nil?
|
30
|
-
@view_area = directory_widget(VIEW_AREA_OPTS)
|
31
|
-
else
|
32
|
-
@view_area = file_widget(dir_item, VIEW_AREA_OPTS)
|
33
|
-
end
|
34
|
-
end
|
35
|
-
end
|
36
|
-
|
37
|
-
def command_widget(dir_item, opt={})
|
38
|
-
app.stack(opt) do
|
39
|
-
app.background app.gradient(app.rgb(0, 255, 0), app.rgb(255, 255, 0), :angle => -35)
|
40
|
-
app.para app.link("Files", :click => lambda{app.visit(DIR_PAGE)})
|
41
|
-
app.rect(5, 30, 90, 1)
|
42
|
-
if Controller.in_repository?
|
43
|
-
app.para app.link("Status", :click => lambda{status_action})
|
44
|
-
if !dir_item.nil? && (dir_item.modified? || dir_item.candidate?)
|
45
|
-
app.para app.link("Add", :click => lambda{add_action})
|
46
|
-
else
|
47
|
-
app.para "Add"
|
48
|
-
end
|
49
|
-
if !dir_item.nil? && dir_item.modified?
|
50
|
-
app.para app.link("Diff", :click => lambda{diff_action})
|
51
|
-
else
|
52
|
-
app.para "Diff"
|
53
|
-
end
|
54
|
-
app.para app.link("Commit", :click => lambda{commit_action})
|
55
|
-
app.para "Config"
|
56
|
-
else
|
57
|
-
# app.para 'Status'
|
58
|
-
# app.para "Diff"
|
59
|
-
# app.para "Commit"
|
60
|
-
# app.para "Branch"
|
61
|
-
# app.para "Config"
|
62
|
-
end
|
12
|
+
page_layout do
|
13
|
+
Controller.selected_item = nil
|
14
|
+
@directory_widget.app = app
|
15
|
+
@view_area = @directory_widget.show(VIEW_AREA_OPTS)
|
63
16
|
end
|
64
17
|
end
|
65
18
|
|
66
|
-
def add_action
|
67
|
-
# TODO implement
|
68
|
-
puts "need to implement add_action"
|
69
|
-
end
|
70
|
-
|
71
|
-
def diff_action
|
72
|
-
# TODO implement
|
73
|
-
puts "need to implement diff_action"
|
74
|
-
end
|
75
|
-
|
76
|
-
def commit_action
|
77
|
-
# TODO implement
|
78
|
-
puts "need to implement commit_action"
|
79
|
-
end
|
80
|
-
|
81
|
-
def status_action
|
82
|
-
if Controller.in_repository?
|
83
|
-
@view_area.clear {status_widget(VIEW_AREA_OPTS)}
|
84
|
-
end
|
85
|
-
end
|
86
|
-
|
87
|
-
def status_widget(opt={})
|
88
|
-
app.stack(opt) do
|
89
|
-
app.para `git status`
|
90
|
-
app.info app.para.text
|
91
|
-
end
|
92
|
-
end
|
93
|
-
|
94
|
-
def file_widget(dir_item, opt={})
|
95
|
-
app.stack(opt) do
|
96
|
-
app.para "filename: #{dir_item.path}"
|
97
|
-
# TODO: everything there is to know about the file ;)
|
98
|
-
app.para(app.strong('Log'))
|
99
|
-
app.flow(:height => 200, :margin_right => @gutter, :scroll => true) do
|
100
|
-
app.background app.turquoise
|
101
|
-
app.para(dir_item.log)
|
102
|
-
end
|
103
|
-
if dir_item.modified?
|
104
|
-
app.para
|
105
|
-
app.para(app.strong('Diff'))
|
106
|
-
app.flow(:height => 200, :margin_right => @gutter, :scroll => true) do
|
107
|
-
app.background app.turquoise
|
108
|
-
app.para dir_item.diff
|
109
|
-
end
|
110
|
-
end
|
111
|
-
end
|
112
|
-
end
|
113
|
-
|
114
|
-
def directory_widget(opt={})
|
115
|
-
app.stack(opt) do
|
116
|
-
cwd = Controller.cwd
|
117
|
-
git_project_dir = Controller.git_project_dir
|
118
|
-
if git_project_dir.nil?
|
119
|
-
app.caption("Directory", :align => 'center')
|
120
|
-
app.para(cwd)
|
121
|
-
else
|
122
|
-
repository_widget(cwd, git_project_dir)
|
123
|
-
end
|
124
|
-
|
125
|
-
file_selection(git_project_dir)
|
126
|
-
end
|
127
|
-
end
|
128
|
-
|
129
|
-
def repository_widget(cwd, git_project_dir)
|
130
|
-
app.caption("Git Repository", :align => 'center')
|
131
|
-
app.flow do
|
132
|
-
app.para "Branch: "
|
133
|
-
@branch_listbox = app.list_box(:items => Controller.branches) do |list|
|
134
|
-
Controller.branch = list.text
|
135
|
-
file_selection_changed
|
136
|
-
end
|
137
|
-
@branch_listbox.choose(Controller.branch(false))
|
138
|
-
app.button("New", :margin_left => 10) # TODO Hook it up
|
139
|
-
app.button("Delete", :margin_left => 10) # TODO Hook it up
|
140
|
-
app.button("Stash", :margin_left => 10) { Controller.stash }
|
141
|
-
app.button("Stash Pop", :margin_left => 10) { Controller.stash_pop }
|
142
|
-
end
|
143
|
-
app.para("Branch: ", app.strong(Controller.branch(true)))
|
144
|
-
app.para(app.strong(git_project_dir, app.em(cwd.gsub(git_project_dir, ''))))
|
145
|
-
buf = []
|
146
|
-
repository_info = Controller.repository_info
|
147
|
-
repository_info.each do |key, value|
|
148
|
-
buf << "#{value} #{key} files"
|
149
|
-
end
|
150
|
-
app.para buf.join(", ")
|
151
|
-
end
|
152
|
-
|
153
|
-
def file_selection(git_project_dir)
|
154
|
-
app.flow do
|
155
|
-
app.para 'Filter by: '
|
156
|
-
if git_project_dir.nil?
|
157
|
-
filter_items = Controller::FILTER_NAMES
|
158
|
-
unless filter_items.include?(@filter_selection)
|
159
|
-
@filter_selection = filter_items.first
|
160
|
-
end
|
161
|
-
else
|
162
|
-
filter_items = Controller::GIT_FILTER_NAMES
|
163
|
-
end
|
164
|
-
@filter_by = app.list_box(:items => filter_items) do |list|
|
165
|
-
file_selection_changed
|
166
|
-
end
|
167
|
-
app.para ' Sort by: '
|
168
|
-
@sort_by = app.list_box(:items => Controller::SORT_NAMES) do |list|
|
169
|
-
file_selection_changed
|
170
|
-
end
|
171
|
-
@listing = app.stack
|
172
|
-
@filter_by.choose(@filter_selection)
|
173
|
-
@sort_by.choose(@sort_selection)
|
174
|
-
|
175
|
-
# need to fire a selection changed to get the intial loading of @listing
|
176
|
-
file_selection_changed
|
177
|
-
end
|
178
|
-
end
|
179
|
-
|
180
|
-
def file_selection_changed
|
181
|
-
@filter_selection = @filter_by.text
|
182
|
-
@sort_selection = @sort_by.text
|
183
|
-
@values = Controller.files do |filename|
|
184
|
-
if filename.nil?
|
185
|
-
app.visit(DIR_PAGE)
|
186
|
-
else
|
187
|
-
app.visit(FILE_PAGE + '/' + filename)
|
188
|
-
end
|
189
|
-
end
|
190
|
-
@values = Controller.filter_by(@filter_by.text, @values)
|
191
|
-
@values = Controller.sort_by(@sort_by.text, @values)
|
192
|
-
@listing.clear {bullet_list(@values, :bullet => fs_bullets)}
|
193
|
-
end
|
194
|
-
|
195
|
-
def fs_bullets
|
196
|
-
lambda do |item|
|
197
|
-
if item.path == '..'
|
198
|
-
bullet = BulletList::SPACE_BULLET
|
199
|
-
else
|
200
|
-
if item.directory?
|
201
|
-
app.fill app.black
|
202
|
-
bullet = BulletList::PLUS_BULLET
|
203
|
-
else
|
204
|
-
if item.modified?
|
205
|
-
app.fill app.red
|
206
|
-
elsif item.managed?
|
207
|
-
app.fill app.lime
|
208
|
-
else
|
209
|
-
app.fill app.black
|
210
|
-
end
|
211
|
-
bullet = BulletList::CIRCLE_BULLET
|
212
|
-
end
|
213
|
-
end
|
214
|
-
bullet
|
215
|
-
end
|
216
|
-
end
|
217
19
|
end
|
@@ -0,0 +1,94 @@
|
|
1
|
+
class DirectoryWidget < Widget
|
2
|
+
include BulletList
|
3
|
+
include Nav
|
4
|
+
|
5
|
+
def initialize
|
6
|
+
@filter_selection = Controller::FILTER_NAMES.first
|
7
|
+
@sort_selection = Controller::SORT_NAMES.first
|
8
|
+
@repository_widget = RepositoryWidget.new
|
9
|
+
end
|
10
|
+
|
11
|
+
def show(opt={})
|
12
|
+
app.stack(opt) do
|
13
|
+
cwd = Controller.cwd
|
14
|
+
git_project_dir = Controller.git_project_dir
|
15
|
+
if git_project_dir.nil?
|
16
|
+
app.caption("Directory", :align => 'center')
|
17
|
+
app.para(cwd)
|
18
|
+
else
|
19
|
+
@repository_widget.app = app
|
20
|
+
@repository_widget.show(cwd, git_project_dir)
|
21
|
+
end
|
22
|
+
|
23
|
+
file_selection(git_project_dir)
|
24
|
+
end
|
25
|
+
end
|
26
|
+
|
27
|
+
def file_selection(git_project_dir)
|
28
|
+
app.flow do
|
29
|
+
app.para 'Filter by: '
|
30
|
+
if git_project_dir.nil?
|
31
|
+
filter_items = Controller::FILTER_NAMES
|
32
|
+
unless filter_items.include?(@filter_selection)
|
33
|
+
@filter_selection = filter_items.first
|
34
|
+
end
|
35
|
+
else
|
36
|
+
filter_items = Controller::GIT_FILTER_NAMES
|
37
|
+
end
|
38
|
+
@filter_by = app.list_box(:items => filter_items) do |list|
|
39
|
+
file_selection_changed
|
40
|
+
end
|
41
|
+
app.para ' Sort by: '
|
42
|
+
@sort_by = app.list_box(:items => Controller::SORT_NAMES) do |list|
|
43
|
+
file_selection_changed
|
44
|
+
end
|
45
|
+
@listing = app.stack
|
46
|
+
@filter_by.choose(@filter_selection)
|
47
|
+
@sort_by.choose(@sort_selection)
|
48
|
+
|
49
|
+
# need to fire a selection changed to get the intial loading of @listing
|
50
|
+
file_selection_changed
|
51
|
+
end
|
52
|
+
end
|
53
|
+
|
54
|
+
def file_selection_changed
|
55
|
+
@filter_selection = @filter_by.text
|
56
|
+
@sort_selection = @sort_by.text
|
57
|
+
@values = Controller.files do |item|
|
58
|
+
if item.nil? || item.directory?
|
59
|
+
Controller.selected_item = nil
|
60
|
+
app.visit(DIR_PAGE)
|
61
|
+
else
|
62
|
+
Controller.selected_item = item
|
63
|
+
app.visit(FILE_PAGE)
|
64
|
+
end
|
65
|
+
end
|
66
|
+
@values = Controller.filter_by(@filter_by.text, @values)
|
67
|
+
@values = Controller.sort_by(@sort_by.text, @values)
|
68
|
+
@listing.clear {bullet_list(@values, :bullet => fs_bullets)}
|
69
|
+
end
|
70
|
+
|
71
|
+
def fs_bullets
|
72
|
+
lambda do |item|
|
73
|
+
if item.path == '..'
|
74
|
+
bullet = BulletList::SPACE_BULLET
|
75
|
+
else
|
76
|
+
if item.directory?
|
77
|
+
app.fill app.black
|
78
|
+
bullet = BulletList::PLUS_BULLET
|
79
|
+
else
|
80
|
+
if item.modified?
|
81
|
+
app.fill app.red
|
82
|
+
elsif item.managed?
|
83
|
+
app.fill app.lime
|
84
|
+
else
|
85
|
+
app.fill app.black
|
86
|
+
end
|
87
|
+
bullet = BulletList::CIRCLE_BULLET
|
88
|
+
end
|
89
|
+
end
|
90
|
+
bullet
|
91
|
+
end
|
92
|
+
end
|
93
|
+
|
94
|
+
end
|
@@ -0,0 +1,19 @@
|
|
1
|
+
class FileAction < Action
|
2
|
+
include BulletList
|
3
|
+
include Nav
|
4
|
+
|
5
|
+
def initialize
|
6
|
+
super
|
7
|
+
@file_widget = FileWidget.new
|
8
|
+
end
|
9
|
+
|
10
|
+
def execute()
|
11
|
+
info "file_action.execute"
|
12
|
+
|
13
|
+
page_layout do
|
14
|
+
@file_widget.app = app
|
15
|
+
@view_area = @file_widget.show(VIEW_AREA_OPTS)
|
16
|
+
end
|
17
|
+
end
|
18
|
+
|
19
|
+
end
|
@@ -0,0 +1,26 @@
|
|
1
|
+
class FileWidget < Widget
|
2
|
+
|
3
|
+
def show(opt={})
|
4
|
+
dir_item = Controller.selected_item
|
5
|
+
app.stack(opt) do
|
6
|
+
unless dir_item.nil?
|
7
|
+
app.para "filename: #{dir_item.path}"
|
8
|
+
# TODO: everything there is to know about the file ;)
|
9
|
+
if dir_item.modified?
|
10
|
+
app.para(app.strong('Diff'))
|
11
|
+
app.flow(:height => 200, :margin_right => @gutter, :scroll => true) do
|
12
|
+
app.background app.turquoise
|
13
|
+
app.para dir_item.diff
|
14
|
+
end
|
15
|
+
app.para
|
16
|
+
end
|
17
|
+
app.para(app.strong('Log'))
|
18
|
+
app.flow(:height => 200, :margin_right => @gutter, :scroll => true) do
|
19
|
+
app.background app.turquoise
|
20
|
+
app.para(dir_item.log)
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
end
|
data/lib/views/nav.rb
ADDED
@@ -0,0 +1,28 @@
|
|
1
|
+
class RepositoryWidget < Widget
|
2
|
+
|
3
|
+
def show(cwd, git_project_dir)
|
4
|
+
app.caption("Git Repository", :align => 'center')
|
5
|
+
app.flow do
|
6
|
+
app.para "Branch: "
|
7
|
+
@branch_listbox = app.list_box(:items => Controller.branches) do |list|
|
8
|
+
Controller.branch = list.text
|
9
|
+
app.visit(DIR_PAGE)
|
10
|
+
# file_selection_changed
|
11
|
+
end
|
12
|
+
@branch_listbox.choose(Controller.branch(false))
|
13
|
+
app.button("New", :margin_left => 10) # TODO Hook it up
|
14
|
+
app.button("Delete", :margin_left => 10) # TODO Hook it up
|
15
|
+
app.button("Stash", :margin_left => 10) { Controller.stash }
|
16
|
+
app.button("Stash Pop", :margin_left => 10) { Controller.stash_pop }
|
17
|
+
end
|
18
|
+
app.para("Branch: ", app.strong(Controller.branch(true)))
|
19
|
+
app.para(app.strong(git_project_dir, app.em(cwd.gsub(git_project_dir, ''))))
|
20
|
+
buf = []
|
21
|
+
repository_info = Controller.repository_info
|
22
|
+
repository_info.each do |key, value|
|
23
|
+
buf << "#{value} #{key} files"
|
24
|
+
end
|
25
|
+
app.para buf.join(", ")
|
26
|
+
end
|
27
|
+
|
28
|
+
end
|
@@ -0,0 +1,22 @@
|
|
1
|
+
class StatusAction < Action
|
2
|
+
include BulletList
|
3
|
+
include Nav
|
4
|
+
|
5
|
+
def initialize
|
6
|
+
super
|
7
|
+
@status_widget = StatusWidget.new
|
8
|
+
end
|
9
|
+
|
10
|
+
def execute()
|
11
|
+
info "status_action.execute"
|
12
|
+
|
13
|
+
page_layout do
|
14
|
+
if Controller.in_repository?
|
15
|
+
info "in repository"
|
16
|
+
@status_widget.app = app
|
17
|
+
@view_area = @status_widget.show(VIEW_AREA_OPTS)
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
22
|
+
end
|
data/lib/views/widget.rb
ADDED
data/spec/spec_helper.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: royw-git_shoes
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Roy Wright
|
@@ -35,7 +35,18 @@ files:
|
|
35
35
|
- lib/models/git_helper.rb
|
36
36
|
- lib/views/action.rb
|
37
37
|
- lib/views/bullet_list.rb
|
38
|
+
- lib/views/command_widget.rb
|
38
39
|
- lib/views/dir_action.rb
|
40
|
+
- lib/views/directory_widget.rb
|
41
|
+
- lib/views/file_action.rb
|
42
|
+
- lib/views/file_widget.rb
|
43
|
+
- lib/views/nav.rb
|
44
|
+
- lib/views/page_widget.rb
|
45
|
+
- lib/views/repository_widget.rb
|
46
|
+
- lib/views/status_action.rb
|
47
|
+
- lib/views/status_widget.rb
|
48
|
+
- lib/views/title_widget.rb
|
49
|
+
- lib/views/widget.rb
|
39
50
|
- spec/git_helper_spec.rb
|
40
51
|
- spec/spec_helper.rb
|
41
52
|
has_rdoc: true
|