clevic 0.13.0.b3 → 0.13.0.b5
Sign up to get free protection for your applications and to get access to all the features.
- 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
|