clevic 0.13.0.b3 → 0.13.0.b5
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/History.txt +21 -0
- data/Manifest.txt +91 -85
- data/README.txt +33 -18
- data/Rakefile +2 -3
- data/TODO +8 -14
- data/bin/clevic +18 -20
- data/lib/clevic.rb +7 -1
- data/lib/clevic/action_builder.rb +4 -1
- data/lib/clevic/ar_methods.rb +72 -57
- data/lib/clevic/attribute_list.rb +4 -0
- data/lib/clevic/cache_table.rb +43 -69
- data/lib/clevic/dataset_roller.rb +22 -0
- data/lib/clevic/delegate.rb +11 -5
- data/lib/clevic/delegates/combo_delegate.rb +156 -0
- data/lib/clevic/delegates/distinct_delegate.rb +48 -0
- data/lib/clevic/delegates/relational_delegate.rb +59 -0
- data/lib/clevic/delegates/set_delegate.rb +31 -0
- data/lib/clevic/field.rb +39 -55
- data/lib/clevic/field_valuer.rb +23 -10
- data/lib/clevic/filter_command.rb +22 -36
- data/lib/clevic/framework.rb +37 -0
- data/lib/clevic/generic_format.rb +5 -1
- data/lib/clevic/many_field.rb +28 -3
- data/lib/clevic/model_builder.rb +27 -32
- data/lib/clevic/ordered_dataset.rb +45 -0
- data/lib/clevic/qt.rb +4 -1
- data/lib/clevic/qt/action_builder.rb +9 -1
- data/lib/clevic/qt/browser.rb +1 -1
- data/lib/clevic/qt/clipboard.rb +3 -3
- data/lib/clevic/qt/combo_delegate.rb +25 -89
- data/lib/clevic/qt/delegate.rb +25 -0
- data/lib/clevic/qt/distinct_delegate.rb +5 -23
- data/lib/clevic/qt/extensions.rb +8 -1
- data/lib/clevic/qt/qt_combo_box.rb +58 -0
- data/lib/clevic/qt/relational_delegate.rb +18 -58
- data/lib/clevic/qt/set_delegate.rb +4 -34
- data/lib/clevic/qt/simplest_delegate.rb +19 -0
- data/lib/clevic/qt/table_model.rb +10 -10
- data/lib/clevic/qt/table_view.rb +7 -23
- data/lib/clevic/qt/text_delegate.rb +2 -2
- data/lib/clevic/qt/ui/browser_ui.rb +1 -1
- data/lib/clevic/qt/ui/search_dialog_ui.rb +1 -1
- data/lib/clevic/rails_models_loaders.rb +13 -0
- data/lib/clevic/record.rb +2 -2
- data/lib/clevic/sampler.rb +85 -39
- data/lib/clevic/sequel_ar_adapter.rb +1 -28
- data/lib/clevic/sequel_clevic.rb +68 -0
- data/lib/clevic/sequel_meta.rb +1 -13
- data/lib/clevic/subclasses.rb +18 -0
- data/lib/clevic/swing.rb +2 -1
- data/lib/clevic/swing/action.rb +27 -3
- data/lib/clevic/swing/action_builder.rb +0 -2
- data/lib/clevic/swing/browser.rb +1 -10
- data/lib/clevic/swing/combo_delegate.rb +45 -133
- data/lib/clevic/swing/delegate.rb +2 -0
- data/lib/clevic/swing/distinct_delegate.rb +2 -14
- data/lib/clevic/swing/relational_delegate.rb +2 -20
- data/lib/clevic/swing/set_delegate.rb +13 -28
- data/lib/clevic/swing/table_view.rb +1 -1
- data/lib/clevic/table_model.rb +3 -4
- data/lib/clevic/table_searcher.rb +10 -31
- data/lib/clevic/table_view.rb +97 -43
- data/lib/clevic/ui/browser_ui.rb +133 -0
- data/lib/clevic/ui/search_dialog_ui.rb +106 -0
- data/lib/clevic/version.rb +2 -2
- data/models/accounts_models.rb +24 -21
- data/models/times_models.rb +34 -28
- data/models/times_psql_models.rb +9 -3
- data/models/times_sqlite_models.rb +24 -1
- data/sql/times_sqlite.sql +3 -3
- data/tasks/clevic.rake +2 -2
- data/test/test_cache_table.rb +9 -19
- data/test/test_table_searcher.rb +2 -5
- metadata +95 -91
- data/lib/clevic/order_attribute.rb +0 -63
- data/lib/clevic/qt/boolean_delegate.rb +0 -8
- data/lib/clevic/qt/delegates.rb +0 -1
- data/lib/clevic/qt/item_delegate.rb +0 -66
- data/lib/clevic/sql_dialects.rb +0 -33
- data/tasks/website.rake +0 -25
- data/test/test_order_attribute.rb +0 -62
- data/test/test_sql_dialects.rb +0 -77
data/lib/clevic/version.rb
CHANGED
data/models/accounts_models.rb
CHANGED
@@ -3,24 +3,27 @@ require 'clevic.rb'
|
|
3
3
|
host = ENV['PGHOST'] || 'localhost'
|
4
4
|
$options ||= {}
|
5
5
|
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
Sequel.connect( constring )
|
6
|
+
constring =
|
7
|
+
if RUBY_PLATFORM == 'java'
|
8
|
+
"jdbc:postgresql"
|
10
9
|
else
|
11
|
-
|
12
|
-
end
|
10
|
+
"postgres"
|
11
|
+
end + "://#{host}/accounts_test?user=#{$options[:username] || 'accounts'}&password=#{$options[:password] || 'general'}"
|
12
|
+
|
13
|
+
db = Sequel.connect constring
|
14
|
+
db.test_connection
|
13
15
|
|
14
16
|
class Entry < Sequel::Model
|
15
|
-
|
16
|
-
|
17
|
+
many_to_one :debit, :class_name => 'Account', :key => :debit_id
|
18
|
+
many_to_one :credit, :class_name => 'Account', :key => :credit_id
|
17
19
|
|
18
20
|
include Clevic::Record
|
19
21
|
|
20
22
|
define_ui do
|
21
23
|
plain :date, :sample => '88-WWW-99'
|
22
|
-
distinct :
|
23
|
-
f.conditions "now() - date <= '1 year'"
|
24
|
+
distinct :supplier do |f|
|
25
|
+
#~ f.conditions "now() - date <= '1 year'"
|
26
|
+
f.dataset.filter( "now() - date <= '1 year'" )
|
24
27
|
f.sample( 'm' * 26 )
|
25
28
|
f.notify_data_changed = lambda do |entity_view, table_view, model_index|
|
26
29
|
if model_index.entity.credit.nil? && model_index.entity.debit.nil?
|
@@ -32,16 +35,16 @@ class Entry < Sequel::Model
|
|
32
35
|
end
|
33
36
|
end
|
34
37
|
end
|
35
|
-
distinct :supplier
|
36
38
|
relational :debit, :display => 'name', :conditions => 'active = true', :order => 'lower(name)', :sample => 'Leilani Member Loan'
|
37
39
|
relational :credit, :display => 'name', :conditions => 'active = true', :order => 'lower(name)', :sample => 'Leilani Member Loan'
|
38
40
|
plain :amount, :sample => 999999.99
|
41
|
+
distinct :description
|
39
42
|
distinct :category
|
40
43
|
plain :cheque_number
|
41
44
|
plain :active, :sample => 'WW'
|
42
45
|
plain :vat, :label => 'VAT', :sample => 'WW', :tooltip => 'Does this include VAT?'
|
43
46
|
|
44
|
-
|
47
|
+
dataset.order( :date, :id )
|
45
48
|
end
|
46
49
|
|
47
50
|
# Copy the values for the credit and debit fields
|
@@ -49,11 +52,11 @@ class Entry < Sequel::Model
|
|
49
52
|
def self.update_from_description( current_index )
|
50
53
|
return if current_index.attribute_value.nil?
|
51
54
|
# most recent entry, ordered in reverse
|
52
|
-
similar = self.
|
53
|
-
|
54
|
-
:
|
55
|
-
|
56
|
-
|
55
|
+
similar = self. \
|
56
|
+
filter( current_index.attribute.to_sym => current_index.attribute_value ). \
|
57
|
+
order( :date.desc ). \
|
58
|
+
first
|
59
|
+
|
57
60
|
if similar != nil
|
58
61
|
# set the values
|
59
62
|
current_index.entity.debit = similar.debit
|
@@ -70,8 +73,8 @@ class Entry < Sequel::Model
|
|
70
73
|
end
|
71
74
|
|
72
75
|
class Account < Sequel::Model
|
73
|
-
|
74
|
-
|
76
|
+
one_to_many :debits, :class_name => 'Entry', :key => :debit_id, :order => :date
|
77
|
+
one_to_many :credits, :class_name => 'Entry', :key => :credit_id, :order => :date
|
75
78
|
|
76
79
|
include Clevic::Record
|
77
80
|
|
@@ -80,10 +83,10 @@ class Account < Sequel::Model
|
|
80
83
|
plain :name
|
81
84
|
restricted :vat, :label => 'VAT', :set => %w{ yes no all }
|
82
85
|
restricted :account_type, :set => %w{Account Asset Assets Expenses Income Liability Opening Balance Personal Tax VAT}
|
83
|
-
plain :pastel_number, :alignment =>
|
86
|
+
plain :pastel_number, :alignment => :right, :label => 'Pastel'
|
84
87
|
plain :fringe, :format => "%.1f"
|
85
88
|
plain :active
|
86
89
|
|
87
|
-
|
90
|
+
dataset.order( :name, :account_type )
|
88
91
|
end
|
89
92
|
end
|
data/models/times_models.rb
CHANGED
@@ -1,15 +1,22 @@
|
|
1
|
+
class Numeric
|
2
|
+
def hours
|
3
|
+
self * 60 * 60
|
4
|
+
end
|
5
|
+
end
|
6
|
+
|
1
7
|
# model definitions
|
2
8
|
class Entry < Sequel::Model
|
3
|
-
belongs_to :invoice
|
4
|
-
belongs_to :activity
|
5
|
-
belongs_to :project
|
6
|
-
|
7
9
|
include Clevic::Record
|
10
|
+
|
11
|
+
many_to_one :invoice
|
12
|
+
many_to_one :activity
|
13
|
+
many_to_one :project
|
8
14
|
|
9
15
|
# spans of time more than 8 ours are coloured violet
|
10
16
|
# because they're often the result of typos.
|
11
17
|
def time_color
|
12
18
|
return if self.end.nil? || start.nil?
|
19
|
+
# 8 hours
|
13
20
|
'darkviolet' if self.end - start > 8.hours
|
14
21
|
end
|
15
22
|
|
@@ -25,8 +32,7 @@ class Entry < Sequel::Model
|
|
25
32
|
# The project field
|
26
33
|
relational :project do |field|
|
27
34
|
field.display = :project
|
28
|
-
field.
|
29
|
-
field.order = 'lower(project)'
|
35
|
+
field.dataset.filter( :active => true ).order{ lower(project) }
|
30
36
|
|
31
37
|
# handle data changed events. In this case,
|
32
38
|
# auto-fill-in the invoice field.
|
@@ -40,7 +46,10 @@ class Entry < Sequel::Model
|
|
40
46
|
end
|
41
47
|
end
|
42
48
|
|
43
|
-
relational :invoice
|
49
|
+
relational :invoice do |f|
|
50
|
+
f.display 'invoice_number'
|
51
|
+
f.dataset.filter( :status => 'not sent' ).order( :invoice_number )
|
52
|
+
end
|
44
53
|
|
45
54
|
# call time_color method for foreground color value
|
46
55
|
plain :start, :foreground => :time_color, :tooltip => :time_tooltip
|
@@ -51,18 +60,17 @@ class Entry < Sequel::Model
|
|
51
60
|
# multiline text
|
52
61
|
text :description, :sample => 'This is a long string designed to hold lots of data and description'
|
53
62
|
|
54
|
-
relational :activity do
|
55
|
-
display 'activity'
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
end
|
63
|
+
relational :activity do |f|
|
64
|
+
f.display 'activity'
|
65
|
+
f.sample 'Troubleshooting'
|
66
|
+
f.dataset.filter( :active => true ).order{ lower(activity) }
|
67
|
+
end
|
60
68
|
|
61
69
|
distinct :module, :tooltip => 'Module or sub-project'
|
62
70
|
plain :charge, :tooltip => 'Is this time billable?'
|
63
71
|
distinct :person, :default => 'John', :tooltip => 'The person who did the work'
|
64
72
|
|
65
|
-
|
73
|
+
dataset.order( :date, :start, :id )
|
66
74
|
end
|
67
75
|
|
68
76
|
def self.define_actions( view, action_builder )
|
@@ -95,7 +103,7 @@ class Entry < Sequel::Model
|
|
95
103
|
previous_item = view.model.collection[current_index.row - 1]
|
96
104
|
|
97
105
|
# copy the relevant fields
|
98
|
-
current_index.entity.date = previous_item.date if current_index.entity.date.
|
106
|
+
current_index.entity.date = previous_item.date if current_index.entity.date.nil?
|
99
107
|
# depends on previous line
|
100
108
|
current_index.entity.start = previous_item.end if current_index.entity.date == previous_item.date
|
101
109
|
|
@@ -112,7 +120,7 @@ class Entry < Sequel::Model
|
|
112
120
|
|
113
121
|
# move to the first empty time field
|
114
122
|
next_field =
|
115
|
-
if current_index.entity.start.
|
123
|
+
if current_index.entity.start.nil?
|
116
124
|
:start
|
117
125
|
else
|
118
126
|
:end
|
@@ -152,10 +160,10 @@ class Entry < Sequel::Model
|
|
152
160
|
end
|
153
161
|
|
154
162
|
class Invoice < Sequel::Model
|
155
|
-
has_many :entries
|
156
|
-
|
157
163
|
include Clevic::Record
|
158
164
|
|
165
|
+
one_to_many :entries
|
166
|
+
|
159
167
|
define_ui do
|
160
168
|
plain :date
|
161
169
|
distinct :client
|
@@ -166,12 +174,12 @@ class Invoice < Sequel::Model
|
|
166
174
|
plain :quote_amount
|
167
175
|
plain :description
|
168
176
|
|
169
|
-
|
177
|
+
dataset.order( :invoice_number )
|
170
178
|
end
|
171
179
|
end
|
172
180
|
|
173
181
|
class Project < Sequel::Model
|
174
|
-
|
182
|
+
one_to_many :entries
|
175
183
|
|
176
184
|
include Clevic::Record
|
177
185
|
|
@@ -182,23 +190,21 @@ class Project < Sequel::Model
|
|
182
190
|
plain :rate
|
183
191
|
plain :active
|
184
192
|
|
185
|
-
|
193
|
+
dataset.order( :project )
|
186
194
|
end
|
187
195
|
|
188
196
|
# Return the latest invoice for this project
|
189
197
|
# Not part of the UI.
|
190
198
|
def latest_invoice
|
191
|
-
Invoice.
|
192
|
-
:
|
193
|
-
|
194
|
-
:order => 'invoice_number desc'
|
195
|
-
)
|
199
|
+
Invoice.filter( :client => self.client, :status => 'not sent' ). \
|
200
|
+
order( :invoice_number.desc ). \
|
201
|
+
first
|
196
202
|
end
|
197
203
|
|
198
204
|
end
|
199
205
|
|
200
206
|
class Activity < Sequel::Model
|
201
|
-
|
207
|
+
one_to_many :entries
|
202
208
|
|
203
209
|
include Clevic::Record
|
204
210
|
|
@@ -207,6 +213,6 @@ class Activity < Sequel::Model
|
|
207
213
|
plain :activity
|
208
214
|
plain :active
|
209
215
|
|
210
|
-
|
216
|
+
dataset.order( :activity )
|
211
217
|
end
|
212
218
|
end
|
data/models/times_psql_models.rb
CHANGED
@@ -3,8 +3,14 @@ $options ||= {}
|
|
3
3
|
require 'clevic.rb'
|
4
4
|
require 'sequel'
|
5
5
|
host = ENV['PGHOST'] || 'localhost'
|
6
|
-
|
7
|
-
|
8
|
-
|
6
|
+
|
7
|
+
constring =
|
8
|
+
if RUBY_PLATFORM == 'java'
|
9
|
+
"jdbc:postgresql://#{host}/times_test"
|
10
|
+
else
|
11
|
+
"postgres://#{host}/times_test"
|
12
|
+
end
|
13
|
+
|
14
|
+
Sequel.connect constring
|
9
15
|
|
10
16
|
require 'times_models.rb'
|
@@ -1,3 +1,26 @@
|
|
1
1
|
require 'clevic.rb'
|
2
|
-
|
2
|
+
require 'sequel'
|
3
|
+
|
4
|
+
path = "#{ENV['HOME']}/projects/clevic/models/times.sqlite3"
|
5
|
+
|
6
|
+
constring =
|
7
|
+
if RUBY_PLATFORM == 'java'
|
8
|
+
"jdbc:sqlite://#{path}"
|
9
|
+
else
|
10
|
+
"sqlite://#{path}"
|
11
|
+
end
|
12
|
+
|
13
|
+
Sequel.connect constring
|
14
|
+
|
3
15
|
require 'times_models.rb'
|
16
|
+
|
17
|
+
# Sqlite needs this plugin cos it stores Date/Times as Strings
|
18
|
+
# and the driver doesn't translate them when loading
|
19
|
+
|
20
|
+
class Entry
|
21
|
+
plugin :typecast_on_load, :date, :start, :end
|
22
|
+
end
|
23
|
+
|
24
|
+
class Invoice
|
25
|
+
plugin :typecast_on_load, :quote_date, :date
|
26
|
+
end
|
data/sql/times_sqlite.sql
CHANGED
@@ -10,8 +10,8 @@ CREATE TABLE entries (
|
|
10
10
|
project_id integer,
|
11
11
|
activity_id integer,
|
12
12
|
date date,
|
13
|
-
"start" time
|
14
|
-
"end" time
|
13
|
+
"start" time with time zone,
|
14
|
+
"end" time with time zone,
|
15
15
|
description text,
|
16
16
|
person character varying(30),
|
17
17
|
order_number character varying(40),
|
@@ -29,7 +29,7 @@ CREATE TABLE invoices (
|
|
29
29
|
invoice_number character varying(8),
|
30
30
|
status character varying(8),
|
31
31
|
billing character varying(15),
|
32
|
-
quote_date timestamp
|
32
|
+
quote_date timestamp with time zone,
|
33
33
|
quote_amount money,
|
34
34
|
description character varying(100)
|
35
35
|
);
|
data/tasks/clevic.rake
CHANGED
@@ -52,7 +52,7 @@ end
|
|
52
52
|
desc "Runs Clevic in normal mode, with live database."
|
53
53
|
task :run => :ui do |t|
|
54
54
|
ARGV.shift()
|
55
|
-
exec "ruby -Ilib bin/clevic #{ARGV.join(' ')}"
|
55
|
+
exec "ruby -Ilib -Imodels bin/clevic #{ARGV.join(' ')}"
|
56
56
|
end
|
57
57
|
|
58
58
|
desc "Runs Clevic in debug mode, with test databases"
|
@@ -95,7 +95,7 @@ MODELS_LIST.each do |model_file|
|
|
95
95
|
task short_model( model_file ) => :ui do |t|
|
96
96
|
ARGV.shift()
|
97
97
|
ARGV.shift() if ARGV[0] == '--'
|
98
|
-
cmd = "ruby -Ilib bin/clevic -D #{model_file} #{ARGV.join(' ')}"
|
98
|
+
cmd = "ruby -Ilib -Imodels bin/clevic -D #{model_file} #{ARGV.join(' ')}"
|
99
99
|
puts "cmd: #{cmd.inspect}"
|
100
100
|
exec cmd
|
101
101
|
end
|
data/test/test_cache_table.rb
CHANGED
@@ -1,9 +1,8 @@
|
|
1
1
|
require File.dirname(__FILE__) + '/test_helper'
|
2
2
|
|
3
|
-
# need to set up a test DB, and test data for this
|
4
3
|
class TestCacheTable < Test::Unit::TestCase
|
5
4
|
def setup
|
6
|
-
@cache_table = CacheTable.new( Passenger )
|
5
|
+
@cache_table = Clevic::CacheTable.new( Passenger )
|
7
6
|
end
|
8
7
|
|
9
8
|
def teardown
|
@@ -56,30 +55,21 @@ class TestCacheTable < Test::Unit::TestCase
|
|
56
55
|
end
|
57
56
|
end
|
58
57
|
|
59
|
-
should 'have id as a default order attribute' do
|
60
|
-
oa = OrderAttribute.new( Passenger, :id )
|
61
|
-
assert_equal oa, @cache_table.order_attributes.first
|
62
|
-
end
|
63
|
-
|
64
|
-
def test_parse_order_attributes
|
65
|
-
order_string = 'name desc, passengers.nationality asc, row'
|
66
|
-
ct = CacheTable.new Passenger, :order => order_string
|
67
|
-
assert_equal OrderAttribute.new( Passenger, 'name desc' ), ct.order_attributes[0]
|
68
|
-
assert_equal OrderAttribute.new( Passenger, 'nationality' ), ct.order_attributes[1]
|
69
|
-
assert_equal OrderAttribute.new( Passenger, 'row asc' ), ct.order_attributes[2]
|
70
|
-
end
|
71
|
-
|
72
58
|
should 'return nil for a nil parameter' do
|
73
59
|
assert_nil @cache_table.index_for_entity( nil )
|
74
60
|
end
|
75
61
|
|
76
62
|
should 'return nil for an empty set' do
|
77
|
-
cache_table = @cache_table.renew
|
63
|
+
cache_table = @cache_table.renew do |dataset|
|
64
|
+
dataset.filter( :nationality => 'nothing' )
|
65
|
+
end
|
78
66
|
assert_nil cache_table.index_for_entity( Passenger.first )
|
79
67
|
end
|
80
68
|
|
81
69
|
should "filter with related objects" do
|
82
|
-
@cache_table = @cache_table.renew
|
70
|
+
@cache_table = @cache_table.renew do |dataset|
|
71
|
+
dataset.filter( :flight_id => Flight.first.id )
|
72
|
+
end
|
83
73
|
end
|
84
74
|
|
85
75
|
def test_index_for_entity
|
@@ -89,12 +79,12 @@ class TestCacheTable < Test::Unit::TestCase
|
|
89
79
|
assert_equal 0, index, 'first passenger should have an index of 0'
|
90
80
|
|
91
81
|
# test in descending order
|
92
|
-
@cache_table = @cache_table.renew( :
|
82
|
+
@cache_table = @cache_table.renew {|ds| ds.order( :id.desc ) }
|
93
83
|
last_passenger = Passenger.order( :id.desc ).first
|
94
84
|
assert_equal 0, @cache_table.index_for_entity( last_passenger ), "last passenger in reverse order should have an index of 0"
|
95
85
|
|
96
86
|
# test with two order fields
|
97
|
-
@cache_table = @cache_table.renew( :
|
87
|
+
@cache_table = @cache_table.renew {|ds| ds.order( :nationality, :row ) }
|
98
88
|
passenger = Passenger.order( :nationality, :row ).first
|
99
89
|
assert_equal 0, @cache_table.index_for_entity( passenger ), "passenger in (nationality, row) order should have an index of 0"
|
100
90
|
end
|
data/test/test_table_searcher.rb
CHANGED
@@ -58,11 +58,6 @@ class TestTableSearcher < Test::Unit::TestCase
|
|
58
58
|
end
|
59
59
|
end
|
60
60
|
|
61
|
-
should "raise an expection for a naked dataset" do
|
62
|
-
assert_raise( RuntimeError ) do
|
63
|
-
Clevic::TableSearcher.new( Passenger.db[:passengers], @simple_search_criteria, @nationality_field )
|
64
|
-
end
|
65
|
-
end
|
66
61
|
end
|
67
62
|
|
68
63
|
context "searching" do
|
@@ -131,6 +126,8 @@ class TestTableSearcher < Test::Unit::TestCase
|
|
131
126
|
|
132
127
|
should 'raise an exception for no display value' do
|
133
128
|
@flight_field = Clevic::Field.new( :flight, Passenger, {} )
|
129
|
+
@flight_field.display = nil
|
130
|
+
|
134
131
|
assert_nil @flight_field.display
|
135
132
|
assert_raise RuntimeError do
|
136
133
|
table_searcher = Clevic::TableSearcher.new( Passenger.dataset, @simple_search_criteria, @flight_field )
|
metadata
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: clevic
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 173
|
5
5
|
prerelease: 7
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 13
|
9
9
|
- 0
|
10
10
|
- b
|
11
|
-
-
|
12
|
-
version: 0.13.0.
|
11
|
+
- 5
|
12
|
+
version: 0.13.0.b5
|
13
13
|
platform: ruby
|
14
14
|
authors:
|
15
15
|
- John Anderson
|
@@ -17,7 +17,7 @@ autorequire:
|
|
17
17
|
bindir: bin
|
18
18
|
cert_chain: []
|
19
19
|
|
20
|
-
date: 2011-
|
20
|
+
date: 2011-02-24 00:00:00 +02:00
|
21
21
|
default_executable:
|
22
22
|
dependencies:
|
23
23
|
- !ruby/object:Gem::Dependency
|
@@ -229,116 +229,122 @@ files:
|
|
229
229
|
- sql/times_sqlite.sql
|
230
230
|
- tasks/clevic.rake
|
231
231
|
- tasks/rdoc.rake
|
232
|
-
- tasks/website.rake
|
233
232
|
- test/test_cache_table.rb
|
234
233
|
- test/test_helper.rb
|
235
234
|
- test/test_model_index_extensions.rb
|
236
|
-
- test/test_order_attribute.rb
|
237
|
-
- test/test_sql_dialects.rb
|
238
235
|
- test/test_table_model.rb
|
239
236
|
- test/test_table_searcher.rb
|
240
237
|
- lib/clevic.rb
|
241
|
-
- lib/clevic/
|
242
|
-
- lib/clevic/
|
243
|
-
- lib/clevic/
|
244
|
-
- lib/clevic/
|
245
|
-
- lib/clevic/
|
246
|
-
- lib/clevic/
|
247
|
-
- lib/clevic/
|
248
|
-
- lib/clevic/
|
249
|
-
- lib/clevic/
|
238
|
+
- lib/clevic/action_builder.rb
|
239
|
+
- lib/clevic/sequel_naked.rb
|
240
|
+
- lib/clevic/record.rb
|
241
|
+
- lib/clevic/icons/icon.png
|
242
|
+
- lib/clevic/dataset_roller.rb
|
243
|
+
- lib/clevic/dirty.rb
|
244
|
+
- lib/clevic/ordered_dataset.rb
|
245
|
+
- lib/clevic/rails_models_loaders.rb
|
246
|
+
- lib/clevic/default_view.rb
|
247
|
+
- lib/clevic/sequel_clevic.rb
|
248
|
+
- lib/clevic/sequel_ar_adapter.rb
|
249
|
+
- lib/clevic/sequel_length_validation.rb
|
250
|
+
- lib/clevic/ar_methods.rb
|
251
|
+
- lib/clevic/sampler.rb
|
252
|
+
- lib/clevic/table_index.rb
|
253
|
+
- lib/clevic/table_view.rb
|
254
|
+
- lib/clevic/field.rb
|
255
|
+
- lib/clevic/swing.rb
|
256
|
+
- lib/clevic/delegates/set_delegate.rb
|
257
|
+
- lib/clevic/delegates/distinct_delegate.rb
|
258
|
+
- lib/clevic/delegates/relational_delegate.rb
|
259
|
+
- lib/clevic/delegates/combo_delegate.rb
|
260
|
+
- lib/clevic/generic_format.rb
|
261
|
+
- lib/clevic/sequel_meta.rb
|
262
|
+
- lib/clevic/filter_command.rb
|
263
|
+
- lib/clevic/extensions.rb
|
264
|
+
- lib/clevic/view.rb
|
265
|
+
- lib/clevic/model_builder.rb
|
266
|
+
- lib/clevic/table_model.rb
|
267
|
+
- lib/clevic/delegate.rb
|
268
|
+
- lib/clevic/qt/qt_combo_box.rb
|
250
269
|
- lib/clevic/qt/action_builder.rb
|
251
|
-
- lib/clevic/qt/
|
252
|
-
- lib/clevic/qt/
|
253
|
-
- lib/clevic/qt/item_delegate.rb
|
254
|
-
- lib/clevic/qt/clipboard.rb
|
270
|
+
- lib/clevic/qt/accept_reject.rb
|
271
|
+
- lib/clevic/qt/search_dialog.rb
|
255
272
|
- lib/clevic/qt/text_delegate.rb
|
256
|
-
- lib/clevic/qt/distinct_delegate.rb
|
257
|
-
- lib/clevic/qt/boolean_delegate.rb
|
258
273
|
- lib/clevic/qt/table_view.rb
|
259
|
-
- lib/clevic/qt/
|
260
|
-
- lib/clevic/qt/
|
274
|
+
- lib/clevic/qt/field.rb
|
275
|
+
- lib/clevic/qt/set_delegate.rb
|
261
276
|
- lib/clevic/qt/extensions.rb
|
262
|
-
- lib/clevic/qt/
|
277
|
+
- lib/clevic/qt/model_builder.rb
|
278
|
+
- lib/clevic/qt/table_model.rb
|
279
|
+
- lib/clevic/qt/simplest_delegate.rb
|
280
|
+
- lib/clevic/qt/delegate.rb
|
281
|
+
- lib/clevic/qt/ui/browser.ui
|
282
|
+
- lib/clevic/qt/ui/browser_ui.rb
|
283
|
+
- lib/clevic/qt/ui/search_dialog_ui.rb
|
284
|
+
- lib/clevic/qt/ui/search_dialog.ui
|
285
|
+
- lib/clevic/qt/distinct_delegate.rb
|
263
286
|
- lib/clevic/qt/relational_delegate.rb
|
264
|
-
- lib/clevic/
|
265
|
-
- lib/clevic/
|
266
|
-
- lib/clevic/
|
267
|
-
- lib/clevic/
|
268
|
-
- lib/clevic/
|
269
|
-
- lib/clevic/
|
270
|
-
- lib/clevic/table_model.rb
|
271
|
-
- lib/clevic/icons/icon.png
|
287
|
+
- lib/clevic/qt/combo_delegate.rb
|
288
|
+
- lib/clevic/qt/browser.rb
|
289
|
+
- lib/clevic/qt/clipboard.rb
|
290
|
+
- lib/clevic/qt/text_area_delegate.rb
|
291
|
+
- lib/clevic/ui/browser_ui.rb
|
292
|
+
- lib/clevic/ui/search_dialog_ui.rb
|
272
293
|
- lib/clevic/qt.rb
|
273
|
-
- lib/clevic/
|
274
|
-
- lib/clevic/
|
294
|
+
- lib/clevic/many_field.rb
|
295
|
+
- lib/clevic/attribute_list.rb
|
296
|
+
- lib/clevic/framework.rb
|
297
|
+
- lib/clevic/model_column.rb
|
298
|
+
- lib/clevic/subclasses.rb
|
299
|
+
- lib/clevic/swing/cell_renderer.rb
|
300
|
+
- lib/clevic/swing/action_builder.rb
|
301
|
+
- lib/clevic/swing/cell_editor.rb
|
302
|
+
- lib/clevic/swing/search_dialog.rb
|
303
|
+
- lib/clevic/swing/text_delegate.rb
|
304
|
+
- lib/clevic/swing/table_view.rb
|
305
|
+
- lib/clevic/swing/row_header.rb
|
306
|
+
- lib/clevic/swing/field.rb
|
307
|
+
- lib/clevic/swing/set_delegate.rb
|
308
|
+
- lib/clevic/swing/selection_model.rb
|
309
|
+
- lib/clevic/swing/extensions.rb
|
310
|
+
- lib/clevic/swing/model_builder.rb
|
311
|
+
- lib/clevic/swing/table_model.rb
|
312
|
+
- lib/clevic/swing/table_view_focus.rb
|
313
|
+
- lib/clevic/swing/tag_editor.rb
|
314
|
+
- lib/clevic/swing/delegate.rb
|
315
|
+
- lib/clevic/swing/ui/manifest.mf
|
316
|
+
- lib/clevic/swing/ui/dist/lib/swing-layout-1.0.3.jar
|
317
|
+
- lib/clevic/swing/ui/dist/README.TXT
|
318
|
+
- lib/clevic/swing/ui/build.xml
|
275
319
|
- lib/clevic/swing/ui/src/resources/SearchDialog.properties
|
276
320
|
- lib/clevic/swing/ui/src/TagEditor.form
|
321
|
+
- lib/clevic/swing/ui/src/SearchDialog.form
|
277
322
|
- lib/clevic/swing/ui/src/TagEditor.java
|
278
|
-
- lib/clevic/swing/ui/
|
279
|
-
- lib/clevic/swing/ui/
|
323
|
+
- lib/clevic/swing/ui/src/SearchDialog.java
|
324
|
+
- lib/clevic/swing/ui/nbproject/private/private.xml
|
325
|
+
- lib/clevic/swing/ui/nbproject/private/config.properties
|
326
|
+
- lib/clevic/swing/ui/nbproject/private/private.properties
|
327
|
+
- lib/clevic/swing/ui/nbproject/project.properties
|
280
328
|
- lib/clevic/swing/ui/nbproject/genfiles.properties
|
281
329
|
- lib/clevic/swing/ui/nbproject/build-impl.xml
|
282
330
|
- lib/clevic/swing/ui/nbproject/project.xml
|
283
|
-
- lib/clevic/swing/ui/nbproject/project.properties
|
284
|
-
- lib/clevic/swing/ui/nbproject/private/private.properties
|
285
|
-
- lib/clevic/swing/ui/nbproject/private/config.properties
|
286
|
-
- lib/clevic/swing/ui/nbproject/private/private.xml
|
287
|
-
- lib/clevic/swing/ui/build.xml
|
288
|
-
- lib/clevic/swing/ui/manifest.mf
|
289
|
-
- lib/clevic/swing/model_builder.rb
|
290
|
-
- lib/clevic/swing/table_model.rb
|
291
|
-
- lib/clevic/swing/text_area_delegate.rb
|
292
|
-
- lib/clevic/swing/browser.rb
|
293
|
-
- lib/clevic/swing/cell_renderer.rb
|
294
|
-
- lib/clevic/swing/tag_editor.rb
|
295
|
-
- lib/clevic/swing/action_builder.rb
|
296
|
-
- lib/clevic/swing/field.rb
|
297
|
-
- lib/clevic/swing/set_delegate.rb
|
298
|
-
- lib/clevic/swing/clipboard.rb
|
299
|
-
- lib/clevic/swing/text_delegate.rb
|
300
|
-
- lib/clevic/swing/tag_delegate.rb
|
301
|
-
- lib/clevic/swing/selection_model.rb
|
302
|
-
- lib/clevic/swing/distinct_delegate.rb
|
303
331
|
- lib/clevic/swing/boolean_delegate.rb
|
332
|
+
- lib/clevic/swing/swing_table_index.rb
|
333
|
+
- lib/clevic/swing/distinct_delegate.rb
|
334
|
+
- lib/clevic/swing/relational_delegate.rb
|
304
335
|
- lib/clevic/swing/confirm_dialog.rb
|
305
|
-
- lib/clevic/swing/table_view.rb
|
306
|
-
- lib/clevic/swing/search_dialog.rb
|
307
336
|
- lib/clevic/swing/combo_delegate.rb
|
308
|
-
- lib/clevic/swing/
|
309
|
-
- lib/clevic/swing/
|
310
|
-
- lib/clevic/swing/
|
311
|
-
- lib/clevic/swing/
|
312
|
-
- lib/clevic/swing/delegate.rb
|
337
|
+
- lib/clevic/swing/browser.rb
|
338
|
+
- lib/clevic/swing/clipboard.rb
|
339
|
+
- lib/clevic/swing/tag_delegate.rb
|
340
|
+
- lib/clevic/swing/text_area_delegate.rb
|
313
341
|
- lib/clevic/swing/action.rb
|
314
|
-
- lib/clevic/swing/relational_delegate.rb
|
315
|
-
- lib/clevic/swing/row_header.rb
|
316
|
-
- lib/clevic/ar_methods.rb
|
317
|
-
- lib/clevic/swing.rb
|
318
|
-
- lib/clevic/action_builder.rb
|
319
|
-
- lib/clevic/order_attribute.rb
|
320
|
-
- lib/clevic/dirty.rb
|
321
|
-
- lib/clevic/field.rb
|
322
|
-
- lib/clevic/attribute_list.rb
|
323
|
-
- lib/clevic/record.rb
|
324
|
-
- lib/clevic/sampler.rb
|
325
|
-
- lib/clevic/model_column.rb
|
326
342
|
- lib/clevic/table_searcher.rb
|
327
|
-
- lib/clevic/
|
343
|
+
- lib/clevic/emitter.rb
|
344
|
+
- lib/clevic/table_view_paste.rb
|
345
|
+
- lib/clevic/cache_table.rb
|
328
346
|
- lib/clevic/field_valuer.rb
|
329
|
-
- lib/clevic/sequel_naked.rb
|
330
|
-
- lib/clevic/table_index.rb
|
331
|
-
- lib/clevic/view.rb
|
332
|
-
- lib/clevic/sequel_meta.rb
|
333
|
-
- lib/clevic/extensions.rb
|
334
|
-
- lib/clevic/delegate.rb
|
335
|
-
- lib/clevic/sql_dialects.rb
|
336
|
-
- lib/clevic/default_view.rb
|
337
|
-
- lib/clevic/many_field.rb
|
338
|
-
- lib/clevic/filter_command.rb
|
339
347
|
- lib/clevic/version.rb
|
340
|
-
- lib/clevic/generic_format.rb
|
341
|
-
- lib/clevic/emitter.rb
|
342
348
|
has_rdoc: true
|
343
349
|
homepage: http://clevic.rubyforge.org
|
344
350
|
licenses: []
|
@@ -377,8 +383,6 @@ signing_key:
|
|
377
383
|
specification_version: 3
|
378
384
|
summary: Database framework and Model/View GUI for data capture and editing of tables in a pre-existing relational DBMS
|
379
385
|
test_files:
|
380
|
-
- test/test_sql_dialects.rb
|
381
|
-
- test/test_order_attribute.rb
|
382
386
|
- test/test_table_searcher.rb
|
383
387
|
- test/test_model_index_extensions.rb
|
384
388
|
- test/test_table_model.rb
|