clevic 0.5.2 → 0.6.0
Sign up to get free protection for your applications and to get access to all the features.
- data/Manifest.txt +17 -2
- data/README.txt +5 -2
- data/Rakefile +5 -13
- data/accounts_models.rb +6 -31
- data/bin/clevic +1 -10
- data/bin/import-times +128 -0
- data/config/hoe.rb +76 -0
- data/{template → config}/jamis.rb +0 -0
- data/config/requirements.rb +15 -0
- data/env.sh +1 -0
- data/lib/clevic.rb +1 -0
- data/lib/clevic/cache_table.rb +2 -0
- data/lib/clevic/db_options.rb +81 -11
- data/lib/clevic/ui/browser_ui.rb +74 -73
- data/lib/clevic/ui/search_dialog_ui.rb +51 -50
- data/lib/clevic/version.rb +9 -0
- data/script/console +10 -0
- data/script/destroy +14 -0
- data/script/generate +14 -0
- data/script/txt2html +82 -0
- data/tasks/website.rake +25 -0
- data/times_models.rb +5 -6
- data/values_models.rb +32 -0
- data/website/index.html +147 -0
- data/website/index.txt +10 -0
- data/website/screenshot.png +0 -0
- data/website/stylesheets/screen.css +131 -0
- data/website/template.html.erb +40 -0
- metadata +28 -22
- data/INSTALL +0 -10
data/lib/clevic/ui/browser_ui.rb
CHANGED
@@ -1,8 +1,8 @@
|
|
1
1
|
=begin
|
2
2
|
** Form generated from reading ui file 'browser.ui'
|
3
3
|
**
|
4
|
-
** Created:
|
5
|
-
** by: Qt User Interface Compiler version 4.3.
|
4
|
+
** Created: Mon Jul 7 22:49:30 2008
|
5
|
+
** by: Qt User Interface Compiler version 4.3.2
|
6
6
|
**
|
7
7
|
** WARNING! All changes made in this file will be lost when recompiling ui file!
|
8
8
|
=end
|
@@ -25,7 +25,7 @@ class Ui_Browser
|
|
25
25
|
attr_reader :action_find_next
|
26
26
|
attr_reader :action_new_row
|
27
27
|
attr_reader :main_widget
|
28
|
-
attr_reader :
|
28
|
+
attr_reader :qvboxLayout
|
29
29
|
attr_reader :statusbar
|
30
30
|
attr_reader :menubar
|
31
31
|
attr_reader :menu_file
|
@@ -34,64 +34,60 @@ class Ui_Browser
|
|
34
34
|
attr_reader :menu_model
|
35
35
|
|
36
36
|
def setupUi(browser)
|
37
|
-
|
38
|
-
|
39
|
-
end
|
40
|
-
browser.resize(727, 740)
|
41
|
-
icon = Qt::Icon.new("icon.png")
|
42
|
-
browser.windowIcon = icon
|
37
|
+
browser.setObjectName("browser")
|
38
|
+
browser.setWindowIcon(Qt::Icon.new("icon.png"))
|
43
39
|
@action_open = Qt::Action.new(browser)
|
44
|
-
@action_open.
|
40
|
+
@action_open.setObjectName("action_open")
|
45
41
|
@action_close = Qt::Action.new(browser)
|
46
|
-
@action_close.
|
42
|
+
@action_close.setObjectName("action_close")
|
47
43
|
@action_recent = Qt::Action.new(browser)
|
48
|
-
@action_recent.
|
44
|
+
@action_recent.setObjectName("action_recent")
|
49
45
|
@action_cut = Qt::Action.new(browser)
|
50
|
-
@action_cut.
|
46
|
+
@action_cut.setObjectName("action_cut")
|
51
47
|
@action_copy = Qt::Action.new(browser)
|
52
|
-
@action_copy.
|
48
|
+
@action_copy.setObjectName("action_copy")
|
53
49
|
@action_paste = Qt::Action.new(browser)
|
54
|
-
@action_paste.
|
50
|
+
@action_paste.setObjectName("action_paste")
|
55
51
|
@action_filter = Qt::Action.new(browser)
|
56
|
-
@action_filter.
|
57
|
-
@action_filter.
|
52
|
+
@action_filter.setObjectName("action_filter")
|
53
|
+
@action_filter.setCheckable(true)
|
58
54
|
@action_find = Qt::Action.new(browser)
|
59
|
-
@action_find.
|
55
|
+
@action_find.setObjectName("action_find")
|
60
56
|
@action_dump = Qt::Action.new(browser)
|
61
|
-
@action_dump.
|
57
|
+
@action_dump.setObjectName("action_dump")
|
62
58
|
@action_refresh = Qt::Action.new(browser)
|
63
|
-
@action_refresh.
|
59
|
+
@action_refresh.setObjectName("action_refresh")
|
64
60
|
@action_next = Qt::Action.new(browser)
|
65
|
-
@action_next.
|
61
|
+
@action_next.setObjectName("action_next")
|
66
62
|
@action_previous = Qt::Action.new(browser)
|
67
|
-
@action_previous.
|
63
|
+
@action_previous.setObjectName("action_previous")
|
68
64
|
@action_highlight = Qt::Action.new(browser)
|
69
|
-
@action_highlight.
|
65
|
+
@action_highlight.setObjectName("action_highlight")
|
70
66
|
@action_new_window = Qt::Action.new(browser)
|
71
|
-
@action_new_window.
|
67
|
+
@action_new_window.setObjectName("action_new_window")
|
72
68
|
@action_find_next = Qt::Action.new(browser)
|
73
|
-
@action_find_next.
|
69
|
+
@action_find_next.setObjectName("action_find_next")
|
74
70
|
@action_new_row = Qt::Action.new(browser)
|
75
|
-
@action_new_row.
|
71
|
+
@action_new_row.setObjectName("action_new_row")
|
76
72
|
@main_widget = Qt::Widget.new(browser)
|
77
|
-
@main_widget.
|
78
|
-
@
|
79
|
-
@
|
80
|
-
browser.
|
73
|
+
@main_widget.setObjectName("main_widget")
|
74
|
+
@qvboxLayout = Qt::VBoxLayout.new(@main_widget)
|
75
|
+
@qvboxLayout.setObjectName("qvboxLayout")
|
76
|
+
browser.setCentralWidget(@main_widget)
|
81
77
|
@statusbar = Qt::StatusBar.new(browser)
|
82
|
-
@statusbar.
|
83
|
-
browser.
|
78
|
+
@statusbar.setObjectName("statusbar")
|
79
|
+
browser.setStatusBar(@statusbar)
|
84
80
|
@menubar = Qt::MenuBar.new(browser)
|
85
|
-
@menubar.
|
86
|
-
@menubar.
|
81
|
+
@menubar.setObjectName("menubar")
|
82
|
+
@menubar.setGeometry(Qt::Rect.new(0, 0, 727, 31))
|
87
83
|
@menu_file = Qt::Menu.new(@menubar)
|
88
|
-
@menu_file.
|
84
|
+
@menu_file.setObjectName("menu_file")
|
89
85
|
@menu_edit = Qt::Menu.new(@menubar)
|
90
|
-
@menu_edit.
|
86
|
+
@menu_edit.setObjectName("menu_edit")
|
91
87
|
@menu_search = Qt::Menu.new(@menubar)
|
92
|
-
@menu_search.
|
88
|
+
@menu_search.setObjectName("menu_search")
|
93
89
|
@menu_model = Qt::Menu.new(@menubar)
|
94
|
-
@menu_model.
|
90
|
+
@menu_model.setObjectName("menu_model")
|
95
91
|
browser.setMenuBar(@menubar)
|
96
92
|
|
97
93
|
@menubar.addAction(@menu_file.menuAction())
|
@@ -118,6 +114,11 @@ class Ui_Browser
|
|
118
114
|
|
119
115
|
retranslateUi(browser)
|
120
116
|
|
117
|
+
size = Qt::Size.new(727, 740)
|
118
|
+
size = size.expandedTo(browser.minimumSizeHint())
|
119
|
+
browser.resize(size)
|
120
|
+
|
121
|
+
|
121
122
|
Qt::MetaObject.connectSlotsByName(browser)
|
122
123
|
end # setupUi
|
123
124
|
|
@@ -126,41 +127,41 @@ class Ui_Browser
|
|
126
127
|
end
|
127
128
|
|
128
129
|
def retranslateUi(browser)
|
129
|
-
@action_open.
|
130
|
-
@action_close.
|
131
|
-
@action_recent.
|
132
|
-
@action_cut.
|
133
|
-
@action_copy.
|
134
|
-
@action_paste.
|
135
|
-
@action_filter.
|
136
|
-
@action_filter.
|
137
|
-
@action_filter.
|
138
|
-
@action_find.
|
139
|
-
@action_find.
|
140
|
-
@action_find.
|
141
|
-
@action_dump.
|
142
|
-
@action_dump.
|
143
|
-
@action_refresh.
|
144
|
-
@action_refresh.
|
145
|
-
@action_refresh.
|
146
|
-
@action_refresh.
|
147
|
-
@action_next.
|
148
|
-
@action_next.
|
149
|
-
@action_next.
|
150
|
-
@action_next.
|
151
|
-
@action_previous.
|
152
|
-
@action_previous.
|
153
|
-
@action_previous.
|
154
|
-
@action_highlight.
|
155
|
-
@action_highlight.
|
156
|
-
@action_new_window.
|
157
|
-
@action_find_next.
|
158
|
-
@action_find_next.
|
159
|
-
@action_new_row.
|
160
|
-
@menu_file.
|
161
|
-
@menu_edit.
|
162
|
-
@menu_search.
|
163
|
-
@menu_model.
|
130
|
+
@action_open.setText(Qt::Application.translate("Browser", "&Open", nil, Qt::Application::UnicodeUTF8))
|
131
|
+
@action_close.setText(Qt::Application.translate("Browser", "Close", nil, Qt::Application::UnicodeUTF8))
|
132
|
+
@action_recent.setText(Qt::Application.translate("Browser", "Recent", nil, Qt::Application::UnicodeUTF8))
|
133
|
+
@action_cut.setText(Qt::Application.translate("Browser", "Cut", nil, Qt::Application::UnicodeUTF8))
|
134
|
+
@action_copy.setText(Qt::Application.translate("Browser", "Copy", nil, Qt::Application::UnicodeUTF8))
|
135
|
+
@action_paste.setText(Qt::Application.translate("Browser", "Paste", nil, Qt::Application::UnicodeUTF8))
|
136
|
+
@action_filter.setText(Qt::Application.translate("Browser", "F&ilter by current", nil, Qt::Application::UnicodeUTF8))
|
137
|
+
@action_filter.setToolTip(Qt::Application.translate("Browser", "Filter by value in current field", nil, Qt::Application::UnicodeUTF8))
|
138
|
+
@action_filter.setShortcut(Qt::Application.translate("Browser", "Ctrl+L", nil, Qt::Application::UnicodeUTF8))
|
139
|
+
@action_find.setText(Qt::Application.translate("Browser", "&Find First", nil, Qt::Application::UnicodeUTF8))
|
140
|
+
@action_find.setStatusTip(Qt::Application.translate("Browser", "Find a row with some value", nil, Qt::Application::UnicodeUTF8))
|
141
|
+
@action_find.setShortcut(Qt::Application.translate("Browser", "Ctrl+F", nil, Qt::Application::UnicodeUTF8))
|
142
|
+
@action_dump.setText(Qt::Application.translate("Browser", "Dump", nil, Qt::Application::UnicodeUTF8))
|
143
|
+
@action_dump.setShortcut(Qt::Application.translate("Browser", "Ctrl+Shift+D", nil, Qt::Application::UnicodeUTF8))
|
144
|
+
@action_refresh.setText(Qt::Application.translate("Browser", "&Refresh", nil, Qt::Application::UnicodeUTF8))
|
145
|
+
@action_refresh.setIconText(Qt::Application.translate("Browser", "Refresh current table from database", nil, Qt::Application::UnicodeUTF8))
|
146
|
+
@action_refresh.setToolTip(Qt::Application.translate("Browser", "Refresh current table from database", nil, Qt::Application::UnicodeUTF8))
|
147
|
+
@action_refresh.setShortcut(Qt::Application.translate("Browser", "Ctrl+R", nil, Qt::Application::UnicodeUTF8))
|
148
|
+
@action_next.setText(Qt::Application.translate("Browser", "&Next", nil, Qt::Application::UnicodeUTF8))
|
149
|
+
@action_next.setIconText(Qt::Application.translate("Browser", "Next", nil, Qt::Application::UnicodeUTF8))
|
150
|
+
@action_next.setToolTip(Qt::Application.translate("Browser", "Next Model", nil, Qt::Application::UnicodeUTF8))
|
151
|
+
@action_next.setShortcut(Qt::Application.translate("Browser", "Ctrl+Tab", nil, Qt::Application::UnicodeUTF8))
|
152
|
+
@action_previous.setText(Qt::Application.translate("Browser", "&Previous", nil, Qt::Application::UnicodeUTF8))
|
153
|
+
@action_previous.setToolTip(Qt::Application.translate("Browser", "Previous Model", nil, Qt::Application::UnicodeUTF8))
|
154
|
+
@action_previous.setShortcut(Qt::Application.translate("Browser", "Ctrl+Shift+Backtab", nil, Qt::Application::UnicodeUTF8))
|
155
|
+
@action_highlight.setText(Qt::Application.translate("Browser", "&Highlight", nil, Qt::Application::UnicodeUTF8))
|
156
|
+
@action_highlight.setShortcut(Qt::Application.translate("Browser", "Ctrl+H", nil, Qt::Application::UnicodeUTF8))
|
157
|
+
@action_new_window.setText(Qt::Application.translate("Browser", "&New Window", nil, Qt::Application::UnicodeUTF8))
|
158
|
+
@action_find_next.setText(Qt::Application.translate("Browser", "Find &Next", nil, Qt::Application::UnicodeUTF8))
|
159
|
+
@action_find_next.setShortcut(Qt::Application.translate("Browser", "Ctrl+G", nil, Qt::Application::UnicodeUTF8))
|
160
|
+
@action_new_row.setText(Qt::Application.translate("Browser", "New &Row", nil, Qt::Application::UnicodeUTF8))
|
161
|
+
@menu_file.setTitle(Qt::Application.translate("Browser", "File", nil, Qt::Application::UnicodeUTF8))
|
162
|
+
@menu_edit.setTitle(Qt::Application.translate("Browser", "Edit", nil, Qt::Application::UnicodeUTF8))
|
163
|
+
@menu_search.setTitle(Qt::Application.translate("Browser", "&Search", nil, Qt::Application::UnicodeUTF8))
|
164
|
+
@menu_model.setTitle(Qt::Application.translate("Browser", "&Table", nil, Qt::Application::UnicodeUTF8))
|
164
165
|
end # retranslateUi
|
165
166
|
|
166
167
|
def retranslate_ui(browser)
|
@@ -1,8 +1,8 @@
|
|
1
1
|
=begin
|
2
2
|
** Form generated from reading ui file 'search_dialog.ui'
|
3
3
|
**
|
4
|
-
** Created:
|
5
|
-
** by: Qt User Interface Compiler version 4.3.
|
4
|
+
** Created: Mon Jul 7 22:49:30 2008
|
5
|
+
** by: Qt User Interface Compiler version 4.3.2
|
6
6
|
**
|
7
7
|
** WARNING! All changes made in this file will be lost when recompiling ui file!
|
8
8
|
=end
|
@@ -20,57 +20,58 @@ class Ui_SearchDialog
|
|
20
20
|
attr_reader :backwards
|
21
21
|
|
22
22
|
def setupUi(searchDialog)
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
searchDialog.windowModality = Qt::WindowModal
|
27
|
-
searchDialog.resize(307, 400)
|
28
|
-
icon = Qt::Icon.new("../../hilfer/bin/hilfer-icon.png")
|
29
|
-
searchDialog.windowIcon = icon
|
23
|
+
searchDialog.setObjectName("searchDialog")
|
24
|
+
searchDialog.setWindowModality(Qt::WindowModal)
|
25
|
+
searchDialog.setWindowIcon(Qt::Icon.new("../../hilfer/bin/hilfer-icon.png"))
|
30
26
|
@button_box = Qt::DialogButtonBox.new(searchDialog)
|
31
|
-
@button_box.
|
32
|
-
@button_box.
|
33
|
-
@button_box.
|
34
|
-
@button_box.
|
27
|
+
@button_box.setObjectName("button_box")
|
28
|
+
@button_box.setGeometry(Qt::Rect.new(30, 240, 261, 32))
|
29
|
+
@button_box.setOrientation(Qt::Horizontal)
|
30
|
+
@button_box.setStandardButtons(Qt::DialogButtonBox::Cancel|Qt::DialogButtonBox::NoButton|Qt::DialogButtonBox::Ok)
|
35
31
|
@selected_rows = Qt::CheckBox.new(searchDialog)
|
36
|
-
@selected_rows.
|
37
|
-
@selected_rows.
|
38
|
-
@selected_rows.
|
32
|
+
@selected_rows.setObjectName("selected_rows")
|
33
|
+
@selected_rows.setEnabled(false)
|
34
|
+
@selected_rows.setGeometry(Qt::Rect.new(30, 280, 191, 21))
|
39
35
|
@selected_columns = Qt::CheckBox.new(searchDialog)
|
40
|
-
@selected_columns.
|
41
|
-
@selected_columns.
|
42
|
-
@selected_columns.
|
36
|
+
@selected_columns.setObjectName("selected_columns")
|
37
|
+
@selected_columns.setEnabled(false)
|
38
|
+
@selected_columns.setGeometry(Qt::Rect.new(30, 310, 191, 21))
|
43
39
|
@search_label = Qt::Label.new(searchDialog)
|
44
|
-
@search_label.
|
45
|
-
@search_label.
|
46
|
-
@search_label.
|
40
|
+
@search_label.setObjectName("search_label")
|
41
|
+
@search_label.setGeometry(Qt::Rect.new(20, 10, 51, 21))
|
42
|
+
@search_label.setTextFormat(Qt::PlainText)
|
47
43
|
@search_combo = Qt::ComboBox.new(searchDialog)
|
48
|
-
@search_combo.
|
49
|
-
@search_combo.
|
50
|
-
@search_combo.
|
51
|
-
@search_combo.
|
44
|
+
@search_combo.setObjectName("search_combo")
|
45
|
+
@search_combo.setGeometry(Qt::Rect.new(90, 10, 201, 25))
|
46
|
+
@search_combo.setFocusPolicy(Qt::StrongFocus)
|
47
|
+
@search_combo.setEditable(true)
|
52
48
|
@from_start = Qt::CheckBox.new(searchDialog)
|
53
|
-
@from_start.
|
54
|
-
@from_start.
|
49
|
+
@from_start.setObjectName("from_start")
|
50
|
+
@from_start.setGeometry(Qt::Rect.new(90, 50, 191, 21))
|
55
51
|
@regex = Qt::CheckBox.new(searchDialog)
|
56
|
-
@regex.
|
57
|
-
@regex.
|
52
|
+
@regex.setObjectName("regex")
|
53
|
+
@regex.setGeometry(Qt::Rect.new(90, 80, 191, 21))
|
58
54
|
@whole_words = Qt::CheckBox.new(searchDialog)
|
59
|
-
@whole_words.
|
60
|
-
@whole_words.
|
55
|
+
@whole_words.setObjectName("whole_words")
|
56
|
+
@whole_words.setGeometry(Qt::Rect.new(90, 110, 191, 21))
|
61
57
|
@forwards = Qt::RadioButton.new(searchDialog)
|
62
|
-
@forwards.
|
63
|
-
@forwards.
|
64
|
-
@forwards.
|
58
|
+
@forwards.setObjectName("forwards")
|
59
|
+
@forwards.setGeometry(Qt::Rect.new(90, 140, 171, 26))
|
60
|
+
@forwards.setChecked(true)
|
65
61
|
@backwards = Qt::RadioButton.new(searchDialog)
|
66
|
-
@backwards.
|
67
|
-
@backwards.
|
68
|
-
@search_label.
|
69
|
-
Qt::Widget
|
70
|
-
Qt::Widget
|
71
|
-
Qt::Widget
|
62
|
+
@backwards.setObjectName("backwards")
|
63
|
+
@backwards.setGeometry(Qt::Rect.new(90, 170, 176, 26))
|
64
|
+
@search_label.setBuddy(@search_combo)
|
65
|
+
Qt::Widget::setTabOrder(@search_combo, @selected_columns)
|
66
|
+
Qt::Widget::setTabOrder(@selected_columns, @selected_rows)
|
67
|
+
Qt::Widget::setTabOrder(@selected_rows, @button_box)
|
72
68
|
|
73
69
|
retranslateUi(searchDialog)
|
70
|
+
|
71
|
+
size = Qt::Size.new(307, 400)
|
72
|
+
size = size.expandedTo(searchDialog.minimumSizeHint())
|
73
|
+
searchDialog.resize(size)
|
74
|
+
|
74
75
|
Qt::Object.connect(@button_box, SIGNAL('accepted()'), searchDialog, SLOT('accept()'))
|
75
76
|
Qt::Object.connect(@button_box, SIGNAL('rejected()'), searchDialog, SLOT('reject()'))
|
76
77
|
|
@@ -82,15 +83,15 @@ class Ui_SearchDialog
|
|
82
83
|
end
|
83
84
|
|
84
85
|
def retranslateUi(searchDialog)
|
85
|
-
searchDialog.
|
86
|
-
@selected_rows.
|
87
|
-
@selected_columns.
|
88
|
-
@search_label.
|
89
|
-
@from_start.
|
90
|
-
@regex.
|
91
|
-
@whole_words.
|
92
|
-
@forwards.
|
93
|
-
@backwards.
|
86
|
+
searchDialog.setWindowTitle(Qt::Application.translate("SearchDialog", "Search", nil, Qt::Application::UnicodeUTF8))
|
87
|
+
@selected_rows.setText(Qt::Application.translate("SearchDialog", "Selected Rows", nil, Qt::Application::UnicodeUTF8))
|
88
|
+
@selected_columns.setText(Qt::Application.translate("SearchDialog", "Selected Columns", nil, Qt::Application::UnicodeUTF8))
|
89
|
+
@search_label.setText(Qt::Application.translate("SearchDialog", "Search", nil, Qt::Application::UnicodeUTF8))
|
90
|
+
@from_start.setText(Qt::Application.translate("SearchDialog", "From &Start", nil, Qt::Application::UnicodeUTF8))
|
91
|
+
@regex.setText(Qt::Application.translate("SearchDialog", "&Regular Expression", nil, Qt::Application::UnicodeUTF8))
|
92
|
+
@whole_words.setText(Qt::Application.translate("SearchDialog", "&Whole Words", nil, Qt::Application::UnicodeUTF8))
|
93
|
+
@forwards.setText(Qt::Application.translate("SearchDialog", "&Forwards", nil, Qt::Application::UnicodeUTF8))
|
94
|
+
@backwards.setText(Qt::Application.translate("SearchDialog", "&Backwards", nil, Qt::Application::UnicodeUTF8))
|
94
95
|
end # retranslateUi
|
95
96
|
|
96
97
|
def retranslate_ui(searchDialog)
|
data/script/console
ADDED
@@ -0,0 +1,10 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
# File: script/console
|
3
|
+
irb = RUBY_PLATFORM =~ /(:?mswin|mingw)/ ? 'irb.bat' : 'irb'
|
4
|
+
|
5
|
+
libs = " -r irb/completion"
|
6
|
+
# Perhaps use a console_lib to store any extra methods I may want available in the cosole
|
7
|
+
# libs << " -r #{File.dirname(__FILE__) + '/../lib/console_lib/console_logger.rb'}"
|
8
|
+
libs << " -r #{File.dirname(__FILE__) + '/../lib/clevic.rb'}"
|
9
|
+
puts "Loading clevic gem"
|
10
|
+
exec "#{irb} #{libs} --simple-prompt"
|
data/script/destroy
ADDED
@@ -0,0 +1,14 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
APP_ROOT = File.expand_path(File.join(File.dirname(__FILE__), '..'))
|
3
|
+
|
4
|
+
begin
|
5
|
+
require 'rubigen'
|
6
|
+
rescue LoadError
|
7
|
+
require 'rubygems'
|
8
|
+
require 'rubigen'
|
9
|
+
end
|
10
|
+
require 'rubigen/scripts/destroy'
|
11
|
+
|
12
|
+
ARGV.shift if ['--help', '-h'].include?(ARGV[0])
|
13
|
+
RubiGen::Base.use_component_sources! [:rubygems, :newgem, :newgem_theme, :test_unit]
|
14
|
+
RubiGen::Scripts::Destroy.new.run(ARGV)
|
data/script/generate
ADDED
@@ -0,0 +1,14 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
APP_ROOT = File.expand_path(File.join(File.dirname(__FILE__), '..'))
|
3
|
+
|
4
|
+
begin
|
5
|
+
require 'rubigen'
|
6
|
+
rescue LoadError
|
7
|
+
require 'rubygems'
|
8
|
+
require 'rubigen'
|
9
|
+
end
|
10
|
+
require 'rubigen/scripts/generate'
|
11
|
+
|
12
|
+
ARGV.shift if ['--help', '-h'].include?(ARGV[0])
|
13
|
+
RubiGen::Base.use_component_sources! [:rubygems, :newgem, :newgem_theme, :test_unit]
|
14
|
+
RubiGen::Scripts::Generate.new.run(ARGV)
|
data/script/txt2html
ADDED
@@ -0,0 +1,82 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
GEM_NAME = 'clevic' # what ppl will type to install your gem
|
4
|
+
RUBYFORGE_PROJECT = 'clevic'
|
5
|
+
|
6
|
+
require 'rubygems'
|
7
|
+
begin
|
8
|
+
require 'newgem'
|
9
|
+
require 'rubyforge'
|
10
|
+
rescue LoadError
|
11
|
+
puts "\n\nGenerating the website requires the newgem RubyGem"
|
12
|
+
puts "Install: gem install newgem\n\n"
|
13
|
+
exit(1)
|
14
|
+
end
|
15
|
+
require 'redcloth'
|
16
|
+
require 'syntax/convertors/html'
|
17
|
+
require 'erb'
|
18
|
+
require File.dirname(__FILE__) + "/../lib/#{GEM_NAME}/version.rb"
|
19
|
+
|
20
|
+
version = Clevic::VERSION::STRING
|
21
|
+
download = "http://rubyforge.org/projects/#{RUBYFORGE_PROJECT}"
|
22
|
+
|
23
|
+
def rubyforge_project_id
|
24
|
+
RubyForge.new.autoconfig["group_ids"][RUBYFORGE_PROJECT]
|
25
|
+
end
|
26
|
+
|
27
|
+
class Fixnum
|
28
|
+
def ordinal
|
29
|
+
# teens
|
30
|
+
return 'th' if (10..19).include?(self % 100)
|
31
|
+
# others
|
32
|
+
case self % 10
|
33
|
+
when 1: return 'st'
|
34
|
+
when 2: return 'nd'
|
35
|
+
when 3: return 'rd'
|
36
|
+
else return 'th'
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
40
|
+
|
41
|
+
class Time
|
42
|
+
def pretty
|
43
|
+
return "#{mday}#{mday.ordinal} #{strftime('%B')} #{year}"
|
44
|
+
end
|
45
|
+
end
|
46
|
+
|
47
|
+
def convert_syntax(syntax, source)
|
48
|
+
return Syntax::Convertors::HTML.for_syntax(syntax).convert(source).gsub(%r!^<pre>|</pre>$!,'')
|
49
|
+
end
|
50
|
+
|
51
|
+
if ARGV.length >= 1
|
52
|
+
src, template = ARGV
|
53
|
+
template ||= File.join(File.dirname(__FILE__), '/../website/template.html.erb')
|
54
|
+
else
|
55
|
+
puts("Usage: #{File.split($0).last} source.txt [template.html.erb] > output.html")
|
56
|
+
exit!
|
57
|
+
end
|
58
|
+
|
59
|
+
template = ERB.new(File.open(template).read)
|
60
|
+
|
61
|
+
title = nil
|
62
|
+
body = nil
|
63
|
+
File.open(src) do |fsrc|
|
64
|
+
title_text = fsrc.readline
|
65
|
+
body_text_template = fsrc.read
|
66
|
+
body_text = ERB.new(body_text_template).result(binding)
|
67
|
+
syntax_items = []
|
68
|
+
body_text.gsub!(%r!<(pre|code)[^>]*?syntax=['"]([^'"]+)[^>]*>(.*?)</\1>!m){
|
69
|
+
ident = syntax_items.length
|
70
|
+
element, syntax, source = $1, $2, $3
|
71
|
+
syntax_items << "<#{element} class='syntax'>#{convert_syntax(syntax, source)}</#{element}>"
|
72
|
+
"syntax-temp-#{ident}"
|
73
|
+
}
|
74
|
+
title = RedCloth.new(title_text).to_html.gsub(%r!<.*?>!,'').strip
|
75
|
+
body = RedCloth.new(body_text).to_html
|
76
|
+
body.gsub!(%r!(?:<pre><code>)?syntax-temp-(\d+)(?:</code></pre>)?!){ syntax_items[$1.to_i] }
|
77
|
+
end
|
78
|
+
stat = File.stat(src)
|
79
|
+
created = stat.ctime
|
80
|
+
modified = stat.mtime
|
81
|
+
|
82
|
+
$stdout << template.result(binding)
|