kilt-cms 0.9.13 → 1.0.0
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.
- checksums.yaml +4 -4
- data/README.rdoc +3 -5
- data/app/controllers/kilt/kilt_controller.rb +1 -1
- data/app/views/kilt/form/{boolean.html.erb → _boolean.html.erb} +0 -0
- data/app/views/kilt/form/{datetime.html.erb → _datetime.html.erb} +0 -0
- data/app/views/kilt/form/{file.html.erb → _file.html.erb} +1 -1
- data/app/views/kilt/form/{html.html.erb → _html.html.erb} +0 -0
- data/app/views/kilt/form/{image.html.erb → _image.html.erb} +1 -1
- data/app/views/kilt/form/{longtext.html.erb → _longtext.html.erb} +0 -0
- data/app/views/kilt/form/{number.html.erb → _number.html.erb} +0 -0
- data/app/views/kilt/form/{select_one.html.erb → _select_one.html.erb} +0 -0
- data/app/views/kilt/form/{text.html.erb → _text.html.erb} +0 -0
- data/app/views/kilt/form/{vimeo.html.erb → _vimeo.html.erb} +0 -0
- data/app/views/kilt/form/{youtube.html.erb → _youtube.html.erb} +0 -0
- data/app/views/kilt/kilt/_form.html.erb +12 -10
- data/app/views/kilt/kilt/edit.html.erb +1 -1
- data/app/views/kilt/kilt/index.html.erb +3 -2
- data/app/views/kilt/kilt/list.html.erb +6 -9
- data/app/views/kilt/kilt/new.html.erb +1 -1
- data/app/views/layouts/kilt/cms/_menu.html.erb +2 -6
- data/lib/generators/kilt/backend_generator.rb +28 -6
- data/lib/generators/kilt/templates/backend/create_kilt_objects.rb +13 -0
- data/lib/generators/kilt/templates/backend/creds.yml.example +10 -5
- data/lib/generators/kilt/templates/backend/creds.yml.rethinkdb.example +22 -0
- data/lib/kilt.rb +34 -54
- data/lib/kilt/base.rb +3 -2
- data/lib/kilt/db/active_record.rb +50 -0
- data/lib/kilt/db/rethink_db.rb +108 -0
- data/lib/kilt/form.rb +7 -5
- data/lib/kilt/formatting.rb +39 -0
- data/lib/kilt/object.rb +32 -31
- data/lib/kilt/utils.rb +32 -39
- data/lib/kilt_object.rb +3 -0
- data/test/dummy/config/application.rb +1 -1
- data/test/dummy/config/database.yml +5 -0
- data/test/dummy/config/initializers/kilt.rb +1 -1
- data/test/dummy/config/kilt/config.yml +4 -13
- data/test/dummy/config/kilt/creds.yml +16 -11
- data/test/dummy/config/kilt/creds.yml.rethinkdb.example +22 -0
- data/test/dummy/config/routes.rb +1 -1
- data/test/dummy/db/migrate/20140519110428_create_kilt_objects.rb +13 -0
- data/test/dummy/db/schema.rb +29 -0
- data/test/dummy/log/development.log +551 -0
- data/test/dummy/public/uploads/image/timbo.jpg +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/13fe41fee1fe35b49d145bcc06610705 +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/18837248cb3274df9b7c6b0a5dcd56a5 +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/20dffc9385ea740ceca470ee4e4b2197 +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/23733156ea27da67211ba7ff763d76f0 +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/2f5173deea6c795b8fdde723bb4b63af +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/3148655edeef1c319d57d0f9570acfd5 +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/32ab48c63ad3bb6ddc1f419e51adb5db +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/357970feca3ac29060c1e3861e2c0953 +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/36715e644093cfcb33ac795f3c9d66fe +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/36f9a7f6f43adb582ac6eec43b58eb30 +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/3d8ca1585ee95c5efb388645d66cf377 +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/413be9c73d25c7febe933f4619da7cf8 +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/4a935342c0113b534ad7622234965544 +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/4b5c4a1edd3823a6a6c39e06b6eb230a +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/4c5736bf0bd429296d1a32930364897e +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/4f26158b7a804a3e3c47ce0ceff2798c +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/542fc810f9cd36e7bed9a3e5e9670995 +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/56f1e7d57d31bf3315e1e33732d57faa +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/5bea4c2d87ec725262213ed51575b485 +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/6b6e86e81f5e8f80bb2b3d1e8f7ed7f3 +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/6c2ddc22c04321c269de383e37cb519b +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/7035e5c60f5da3b7fc12c472677483d0 +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/704c682957c2beb38a1927ddb66cc557 +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/74b6c3e00222b8bf31b0ecf50fcb0d38 +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/91021bdb7ebb3d4f6fdf4e49909d4c07 +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/914095efd3b33401a7f29f9fb05d72d6 +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/9dd98bca318fb820a8451cafce020588 +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/9f2c00a36b5b8c713a797b508c778a65 +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/a88ab4e49bb7203b8e0586c38efdd2b0 +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/acfc15d25fde8b933b06c91324755751 +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/c0671678b70011547b80da0669d031cc +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/cffd775d018f68ce5dba1ee0d951a994 +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/d6973c1d43f8ca41b98a6b640fda2616 +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/d771ace226fc8215a3572e0aa35bb0d6 +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/dc676330961fd22be77c48cb77ec065f +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/ddc29f2c13cd99d017fd526b61dcb951 +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/de45247cb814cafe20e9e46c79e470fe +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/df0b7c3ac590a286561806e813c2974f +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/dfa8b85e3c1273b7e69839e4e607c3e1 +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/e22d705d0c889ec4837f183a9beec0f3 +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/e3a4ad3549e1e57d03698a36daeff406 +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/ef7c8ce46dfc9e9087ce84dbdfdd0011 +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/f4b5dd06a6113950c0f481cbc5a31a66 +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/f7cbd26ba1d28d48de824f0e94586655 +0 -0
- data/test/dummy/tmp/data/meta_request/1c3d4a4b-d7e1-4126-8bfc-572acbc2f675.json +1 -0
- data/test/dummy/tmp/data/meta_request/449ff78e-30d2-4cc5-bbb7-3397d04a4c46.json +1 -0
- data/test/dummy/tmp/data/meta_request/5974cfb9-99bd-4d5c-a4e1-6e352ecd2dd8.json +1 -0
- data/test/dummy/tmp/data/meta_request/960de12b-b1c5-4d44-937b-e3d8c00d682c.json +1 -0
- data/test/dummy/tmp/data/meta_request/9df9ad77-1b70-4fb7-ad18-f31f28c60c6c.json +1 -0
- data/test/dummy/tmp/data/meta_request/a5374758-4e16-487a-ab11-9a69a1abed2e.json +1 -0
- data/test/dummy/tmp/data/meta_request/a65d97b2-df1f-445e-99d5-615c4db5c4e1.json +1 -0
- data/test/dummy/tmp/data/meta_request/b3693c6f-23cd-4afe-ae82-38078eaa643a.json +1 -0
- data/test/dummy/tmp/data/meta_request/daa1c80a-bad3-4bc1-8f67-d586979cbedc.json +1 -0
- data/test/dummy/tmp/data/meta_request/e2e7621f-08e5-46dd-83c2-b87eb6d5fd45.json +1 -0
- data/test/empty.sqlite3 +0 -0
- data/test/generators/kilt/backend_generator_spec.rb +70 -0
- data/test/kilt/form_spec.rb +40 -51
- data/test/kilt/formatting_spec.rb +66 -0
- data/test/kilt/object_spec.rb +204 -0
- data/test/kilt/utils_spec.rb +147 -0
- data/test/kilt_object_spec.rb +12 -0
- data/test/kilt_spec.rb +422 -0
- data/test/minitest_helper.rb +58 -0
- metadata +164 -66
- data/test/dummy/tmp/data/meta_request/191f094a-5e87-4654-bc80-5acb51d3f903.json +0 -1
- data/test/dummy/tmp/data/meta_request/1eb9499d-2e84-47df-ac0a-da308031aa3a.json +0 -1
- data/test/dummy/tmp/data/meta_request/300cabd2-6e51-4b1b-ab55-a072049c2a0f.json +0 -1
- data/test/dummy/tmp/data/meta_request/3ec7ea74-e7a7-4f4d-9434-e08edfc12b8a.json +0 -1
- data/test/dummy/tmp/data/meta_request/5bb81411-321e-4cba-9ffa-87fcd8105ef4.json +0 -1
- data/test/dummy/tmp/data/meta_request/9d6e10c1-5b14-4199-852e-9f1e97132b8f.json +0 -1
- data/test/dummy/tmp/data/meta_request/a6403ed9-21f1-4a00-9725-4a1c544214f6.json +0 -1
- data/test/dummy/tmp/data/meta_request/b4487e0b-0a08-40a3-a364-e715e6765631.json +0 -1
- data/test/dummy/tmp/data/meta_request/d399f913-d3a5-4de3-b012-848377a702fc.json +0 -1
- data/test/dummy/tmp/data/meta_request/dcf95267-1855-4062-85c8-e880f8d62443.json +0 -1
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
module Kilt
|
|
2
|
+
|
|
3
|
+
module DB
|
|
4
|
+
|
|
5
|
+
class ActiveRecord
|
|
6
|
+
|
|
7
|
+
def find(slug)
|
|
8
|
+
object = KiltObject.where(slug: slug).first
|
|
9
|
+
object ? object.data : nil
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
def find_all_by_type type
|
|
13
|
+
KiltObject.where(object_type: "#{type.singularize.to_s}")
|
|
14
|
+
.map { |x| x.data }
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
def create(object)
|
|
18
|
+
KiltObject.create!(unique_id: object['unique_id'],
|
|
19
|
+
slug: object['slug'],
|
|
20
|
+
object_type: object['type'],
|
|
21
|
+
data: object.values)
|
|
22
|
+
true
|
|
23
|
+
rescue
|
|
24
|
+
false
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
def update(current)
|
|
28
|
+
object = KiltObject.where(unique_id: current['unique_id']).first
|
|
29
|
+
return false unless object
|
|
30
|
+
object.slug = current['slug']
|
|
31
|
+
object.data = current.values
|
|
32
|
+
object.save
|
|
33
|
+
end
|
|
34
|
+
|
|
35
|
+
def delete(slug)
|
|
36
|
+
object = KiltObject.where(slug: slug).first
|
|
37
|
+
object.delete if object
|
|
38
|
+
true
|
|
39
|
+
rescue
|
|
40
|
+
false
|
|
41
|
+
end
|
|
42
|
+
|
|
43
|
+
def setup!
|
|
44
|
+
end
|
|
45
|
+
|
|
46
|
+
end
|
|
47
|
+
|
|
48
|
+
end
|
|
49
|
+
|
|
50
|
+
end
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
module Kilt
|
|
2
|
+
|
|
3
|
+
module DB
|
|
4
|
+
|
|
5
|
+
class RethinkDb
|
|
6
|
+
|
|
7
|
+
def initialize(options)
|
|
8
|
+
@options = options
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
def find(slug)
|
|
12
|
+
results = execute { slug_query(slug).limit(1) }
|
|
13
|
+
return nil unless results
|
|
14
|
+
results = results.to_a
|
|
15
|
+
return nil if results.first.is_a? Array
|
|
16
|
+
results.first
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
def find_all_by_type type
|
|
20
|
+
execute { type_query(type) }.to_a
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
def create(object)
|
|
24
|
+
result = execute { objects_table.insert(object.values) }
|
|
25
|
+
result['errors'] == 0
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
def update(object)
|
|
29
|
+
result = execute do
|
|
30
|
+
unique_id_query(object['unique_id']).update(object.values)
|
|
31
|
+
end
|
|
32
|
+
result['errors'] == 0
|
|
33
|
+
end
|
|
34
|
+
|
|
35
|
+
def delete(slug)
|
|
36
|
+
result = execute { slug_query(slug).delete() }
|
|
37
|
+
result['errors'] == 0
|
|
38
|
+
end
|
|
39
|
+
|
|
40
|
+
def delete_all
|
|
41
|
+
execute do
|
|
42
|
+
@r.db(Kilt.config.test.db.db).table('objects').delete()
|
|
43
|
+
end
|
|
44
|
+
end
|
|
45
|
+
|
|
46
|
+
# Make a db call
|
|
47
|
+
def execute(&block)
|
|
48
|
+
setup_the_database
|
|
49
|
+
block.call.run(@connection)
|
|
50
|
+
end
|
|
51
|
+
|
|
52
|
+
def setup!
|
|
53
|
+
if @options[:host] && @options[:port]
|
|
54
|
+
begin
|
|
55
|
+
# See if the db exists and create it otherwise
|
|
56
|
+
dbs = execute { @r.db_list }.to_a
|
|
57
|
+
if !dbs.to_a.include? @options[:db]
|
|
58
|
+
execute { @r.db_create(@options[:db]) }
|
|
59
|
+
end
|
|
60
|
+
|
|
61
|
+
# See if the table exists and create it otherwise
|
|
62
|
+
tables = execute { @r.db(@options[:db]).table_list }.to_a
|
|
63
|
+
if !tables.to_a.include? "objects"
|
|
64
|
+
execute { @r.db(@options[:db]).table_create("objects", :primary_key => "unique_id") }
|
|
65
|
+
end
|
|
66
|
+
rescue
|
|
67
|
+
raise Kilt::CantSetupDatabaseError
|
|
68
|
+
end
|
|
69
|
+
else
|
|
70
|
+
raise Kilt::NoDatabaseConfigError
|
|
71
|
+
end
|
|
72
|
+
end
|
|
73
|
+
|
|
74
|
+
private
|
|
75
|
+
|
|
76
|
+
def setup_the_database
|
|
77
|
+
unless @r && @connection
|
|
78
|
+
begin
|
|
79
|
+
@r = RethinkDB::RQL.new
|
|
80
|
+
@connection = @r.connect(:host => @options[:host], :port => @options[:port], :db => @options[:db])
|
|
81
|
+
rescue
|
|
82
|
+
raise Kilt::CantConnectToDatabaseError
|
|
83
|
+
end
|
|
84
|
+
end
|
|
85
|
+
end
|
|
86
|
+
|
|
87
|
+
def objects_table
|
|
88
|
+
setup_the_database
|
|
89
|
+
@r.table('objects')
|
|
90
|
+
end
|
|
91
|
+
|
|
92
|
+
def slug_query(slug)
|
|
93
|
+
objects_table.filter( { 'slug' => "#{slug}" } )
|
|
94
|
+
end
|
|
95
|
+
|
|
96
|
+
def type_query(type)
|
|
97
|
+
objects_table.filter( {'type' => "#{type.singularize.to_s}" } )
|
|
98
|
+
end
|
|
99
|
+
|
|
100
|
+
def unique_id_query(unique_id)
|
|
101
|
+
objects_table.filter( { 'unique_id' => "#{unique_id}" } )
|
|
102
|
+
end
|
|
103
|
+
|
|
104
|
+
end
|
|
105
|
+
|
|
106
|
+
end
|
|
107
|
+
|
|
108
|
+
end
|
data/lib/kilt/form.rb
CHANGED
|
@@ -8,10 +8,14 @@ module Kilt
|
|
|
8
8
|
end
|
|
9
9
|
|
|
10
10
|
def self.method_missing(method, *args)
|
|
11
|
-
locals = { object: args[0], field_name: args[1], index: args[2], options: args[3] }
|
|
11
|
+
locals = { object: args[0], field_name: args[1], index: args[2], options: args[4], view: args[3] }
|
|
12
12
|
render_view method, locals
|
|
13
13
|
rescue
|
|
14
|
-
render_view '
|
|
14
|
+
render_view 'default', locals
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
def self.render_field(view, data)
|
|
18
|
+
Kilt::Form.prep_field(data[:value], data[:object], data[:key], data[:index], view)
|
|
15
19
|
end
|
|
16
20
|
|
|
17
21
|
def self.prep_field(method, *args)
|
|
@@ -38,9 +42,7 @@ module Kilt
|
|
|
38
42
|
private
|
|
39
43
|
|
|
40
44
|
def self.render_view name, locals
|
|
41
|
-
|
|
42
|
-
:locals => locals }
|
|
43
|
-
ActionView::Base.new(TEMPLATES_DIR).render data
|
|
45
|
+
locals[:view].send(:render, { partial: "kilt/form/#{name}", locals: locals } )
|
|
44
46
|
end
|
|
45
47
|
|
|
46
48
|
end
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
module Kilt
|
|
2
|
+
|
|
3
|
+
module Formatting
|
|
4
|
+
|
|
5
|
+
def self.singular_name_of object
|
|
6
|
+
simple_name_of(object)
|
|
7
|
+
.split('_')
|
|
8
|
+
.map { |x| x.capitalize }
|
|
9
|
+
.join(' ')
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
def self.plural_name_of object
|
|
13
|
+
singular_name_of(object).pluralize
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
class << self
|
|
17
|
+
|
|
18
|
+
private
|
|
19
|
+
|
|
20
|
+
def simple_name_of object
|
|
21
|
+
type = if object.is_a? Symbol
|
|
22
|
+
object.to_s
|
|
23
|
+
elsif object.is_a? String
|
|
24
|
+
object
|
|
25
|
+
else
|
|
26
|
+
object.type.to_s
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
name_of_type_in_config(type) || type
|
|
30
|
+
end
|
|
31
|
+
|
|
32
|
+
def name_of_type_in_config type
|
|
33
|
+
kilt_type = Kilt.send(type)
|
|
34
|
+
return nil unless kilt_type
|
|
35
|
+
kilt_type['name']
|
|
36
|
+
end
|
|
37
|
+
end
|
|
38
|
+
end
|
|
39
|
+
end
|
data/lib/kilt/object.rb
CHANGED
|
@@ -4,41 +4,21 @@ module Kilt
|
|
|
4
4
|
|
|
5
5
|
def initialize(type, values = {})
|
|
6
6
|
@type = type
|
|
7
|
-
|
|
8
|
-
|
|
7
|
+
initialize_values values
|
|
9
8
|
assemble_fields
|
|
10
9
|
end
|
|
11
10
|
|
|
12
11
|
def fill(params)
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
@fields.each do |key, value|
|
|
16
|
-
if params[key] || params["#{key}-hidden"]
|
|
17
|
-
field_type = value.downcase
|
|
18
|
-
if ['file', 'image'].include? field_type
|
|
19
|
-
if params["#{key}-hidden"] && params["#{key}-hidden"] == 'clear' && !params[key]
|
|
20
|
-
@values[key.to_s] = ''
|
|
21
|
-
elsif params[key]
|
|
22
|
-
@values[key.to_s] = Kilt::Upload.send(field_type, params[key])
|
|
23
|
-
end
|
|
24
|
-
else
|
|
25
|
-
@values[key.to_s] = params[key]
|
|
26
|
-
end
|
|
27
|
-
end
|
|
28
|
-
end
|
|
29
|
-
|
|
30
|
-
# Add some extra fields
|
|
31
|
-
if !@slug
|
|
32
|
-
@values['slug'] = Utils.slugify(@values['name'])
|
|
12
|
+
fields_that_should_be_set_given(params).each do |field, field_type|
|
|
13
|
+
self[field] = the_value_for field, field_type, params
|
|
33
14
|
end
|
|
34
|
-
|
|
35
|
-
@values['type'] = @type
|
|
36
|
-
|
|
37
15
|
end
|
|
38
16
|
|
|
39
17
|
def [](key)
|
|
40
18
|
# Return the values of the object as a hash
|
|
41
|
-
|
|
19
|
+
value = @values[key.to_s]
|
|
20
|
+
return nil unless value
|
|
21
|
+
value.respond_to?(:html_safe) ? value.html_safe : value
|
|
42
22
|
end
|
|
43
23
|
|
|
44
24
|
def []=(key, value)
|
|
@@ -56,11 +36,32 @@ module Kilt
|
|
|
56
36
|
private
|
|
57
37
|
|
|
58
38
|
def assemble_fields
|
|
59
|
-
|
|
60
|
-
@fields =
|
|
61
|
-
|
|
62
|
-
|
|
39
|
+
@fields = Kilt.send(@type).fields.to_h
|
|
40
|
+
@fields['name'] = 'text' unless @fields[:name]
|
|
41
|
+
end
|
|
42
|
+
|
|
43
|
+
def the_value_for(key, field_type, params)
|
|
44
|
+
if params["#{key}-hidden"] == 'clear' && !params[key]
|
|
45
|
+
''
|
|
46
|
+
elsif ['file', 'image'].include? field_type
|
|
47
|
+
Kilt::Upload.send field_type, params[key]
|
|
48
|
+
else
|
|
49
|
+
params[key]
|
|
63
50
|
end
|
|
64
51
|
end
|
|
52
|
+
|
|
53
|
+
def fields_that_should_be_set_given params
|
|
54
|
+
@fields.map { |k, v| [k, v.downcase] }
|
|
55
|
+
.select { |k, v| params[k] || (params["#{k}-hidden"].to_s != '') }
|
|
56
|
+
end
|
|
57
|
+
|
|
58
|
+
def initialize_values values
|
|
59
|
+
@values = values
|
|
60
|
+
|
|
61
|
+
@values.keys
|
|
62
|
+
.select { |x| x.is_a? Symbol }
|
|
63
|
+
.each { |k| @values[k.to_s] = @values[k] }
|
|
64
|
+
end
|
|
65
|
+
|
|
65
66
|
end
|
|
66
|
-
end
|
|
67
|
+
end
|
data/lib/kilt/utils.rb
CHANGED
|
@@ -1,46 +1,33 @@
|
|
|
1
1
|
module Kilt
|
|
2
2
|
class Utils
|
|
3
3
|
|
|
4
|
-
# Set up the database
|
|
5
4
|
def self.setup_db
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
rescue
|
|
10
|
-
raise Kilt::CantConnectToDatabaseError
|
|
11
|
-
end
|
|
12
|
-
|
|
13
|
-
begin
|
|
14
|
-
|
|
15
|
-
# See if the db exists and create it otherwise
|
|
16
|
-
dbs = r.db_list.run
|
|
17
|
-
if !dbs.to_a.include? Kilt.config.db.db
|
|
18
|
-
r.db_create(Kilt.config.db.db).run
|
|
19
|
-
end
|
|
20
|
-
|
|
21
|
-
# See if the table exists and create it otherwise
|
|
22
|
-
tables = r.db(Kilt.config.db.db).table_list.run
|
|
23
|
-
if !tables.to_a.include? "objects"
|
|
24
|
-
r.db(Kilt.config.db.db).table_create("objects", :primary_key => "unique_id").run
|
|
25
|
-
end
|
|
26
|
-
|
|
27
|
-
rescue
|
|
28
|
-
raise Kilt::CantSetupDatabaseError
|
|
29
|
-
ensure
|
|
30
|
-
db.close
|
|
31
|
-
end
|
|
32
|
-
|
|
33
|
-
else
|
|
34
|
-
raise Kilt::NoDatabaseConfigError
|
|
5
|
+
return unless current_db_config
|
|
6
|
+
if db_type = current_db_config[:type]
|
|
7
|
+
use_db(db_type.to_sym)
|
|
35
8
|
end
|
|
9
|
+
database.setup!
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
def self.use_db db_type
|
|
13
|
+
return if @db_type == db_type
|
|
14
|
+
@db_type = db_type
|
|
15
|
+
@database = nil
|
|
36
16
|
end
|
|
37
17
|
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
18
|
+
def self.database
|
|
19
|
+
@database ||= if @db_type == :active_record
|
|
20
|
+
Kilt::DB::ActiveRecord.new
|
|
21
|
+
else
|
|
22
|
+
Kilt::DB::RethinkDb.new current_db_config
|
|
23
|
+
end
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
def self.current_db_config
|
|
27
|
+
current_environment = (ENV['RAILS_ENV'].to_s == '' ? 'development' : ENV['RAILS_ENV']).to_sym
|
|
28
|
+
Kilt.config[current_environment][:db]
|
|
29
|
+
rescue
|
|
30
|
+
Kilt.config[:db]
|
|
44
31
|
end
|
|
45
32
|
|
|
46
33
|
# Ensure we have local storage dirs
|
|
@@ -89,7 +76,7 @@ module Kilt
|
|
|
89
76
|
ret.gsub! /\s*&\s*/, " and "
|
|
90
77
|
|
|
91
78
|
#replace all non alphanumeric, underscore or periods with dash
|
|
92
|
-
ret.gsub! /\s*[^A-Za-z0-9
|
|
79
|
+
ret.gsub! /\s*[^A-Za-z0-9]\s*/, '-'
|
|
93
80
|
|
|
94
81
|
#convert double dash to single
|
|
95
82
|
ret.gsub! /-+/, "-"
|
|
@@ -107,11 +94,17 @@ module Kilt
|
|
|
107
94
|
ret.gsub! /_/, " "
|
|
108
95
|
ret.capitalize
|
|
109
96
|
end
|
|
97
|
+
|
|
98
|
+
def self.config_is_valid?
|
|
99
|
+
Kilt.config.empty? == false && current_db_config
|
|
100
|
+
#!(Kilt.config.empty? || !Kilt.config.db)
|
|
101
|
+
#!Kilt.config.empty? && Kilt.config.db
|
|
102
|
+
end
|
|
110
103
|
|
|
111
104
|
# Print a list of objects, functions, etc.
|
|
112
105
|
def self.tips
|
|
113
106
|
lines = []
|
|
114
|
-
if
|
|
107
|
+
if config_is_valid?
|
|
115
108
|
lines << ''
|
|
116
109
|
|
|
117
110
|
# Store the first type so we can use it down below
|
|
@@ -163,4 +156,4 @@ module Kilt
|
|
|
163
156
|
end
|
|
164
157
|
|
|
165
158
|
end
|
|
166
|
-
end
|
|
159
|
+
end
|
data/lib/kilt_object.rb
ADDED