kitsune 0.0.19 → 0.1.0
Sign up to get free protection for your applications and to get access to all the features.
- data/Rakefile +1 -1
- data/app/views/admin/kitsune/records/index.html.haml +2 -1
- data/lib/kitsune.rb +6 -2
- data/lib/kitsune/faux_column.rb +3 -6
- data/lib/kitsune/inspector.rb +8 -4
- data/lib/kitsune/mongo_mapper.rb +49 -0
- data/rails/init.rb +3 -1
- metadata +2 -1
data/Rakefile
CHANGED
@@ -2,7 +2,7 @@ require 'rake'
|
|
2
2
|
|
3
3
|
gem_spec = Gem::Specification.new do |gem_spec|
|
4
4
|
gem_spec.name = "kitsune"
|
5
|
-
gem_spec.version = "0.0
|
5
|
+
gem_spec.version = "0.1.0"
|
6
6
|
gem_spec.summary = "Integrated Rails Content Management System."
|
7
7
|
gem_spec.email = "matt@toastyapps.com"
|
8
8
|
gem_spec.homepage = "http://github.com/toastyapps/kitsune"
|
data/lib/kitsune.rb
CHANGED
@@ -8,7 +8,7 @@ module Kitsune
|
|
8
8
|
autoload :Page, 'kitsune/page'
|
9
9
|
class << self
|
10
10
|
def version
|
11
|
-
'0.0
|
11
|
+
'0.1.0'
|
12
12
|
end
|
13
13
|
|
14
14
|
def model_paths # abstract this to something else
|
@@ -29,7 +29,11 @@ module Kitsune
|
|
29
29
|
Dir.glob(path+'/*').each do |file|
|
30
30
|
begin
|
31
31
|
klass = File.basename(file).gsub(/^(.+).rb/, '\1').classify.constantize
|
32
|
-
|
32
|
+
if defined? ::ActiveRecord
|
33
|
+
models << klass if klass.ancestors.include?(::ActiveRecord::Base)
|
34
|
+
else defined? ::MongoMapper
|
35
|
+
models << klass if klass.ancestors.include?(::MongoMapper::Document)
|
36
|
+
end
|
33
37
|
rescue Exception => e
|
34
38
|
# not valid
|
35
39
|
end
|
data/lib/kitsune/faux_column.rb
CHANGED
@@ -1,11 +1,8 @@
|
|
1
1
|
module Kitsune
|
2
2
|
class FauxColumn
|
3
|
-
attr_accessor :name, :type
|
4
|
-
def initialize(name, type)
|
5
|
-
@name, @type = name, type
|
6
|
-
end
|
7
|
-
def primary
|
8
|
-
false
|
3
|
+
attr_accessor :name, :type, :primary
|
4
|
+
def initialize(name, type, primary = false)
|
5
|
+
@name, @type, @primary = name, type, primary
|
9
6
|
end
|
10
7
|
end
|
11
8
|
end
|
data/lib/kitsune/inspector.rb
CHANGED
@@ -38,7 +38,11 @@ module Kitsune
|
|
38
38
|
end
|
39
39
|
|
40
40
|
def is_sti_child?
|
41
|
-
|
41
|
+
if defined? ::ActiveRecord
|
42
|
+
@object.ancestors[1] != ::ActiveRecord::Base
|
43
|
+
else
|
44
|
+
false
|
45
|
+
end
|
42
46
|
end
|
43
47
|
|
44
48
|
def sti_column
|
@@ -132,7 +136,7 @@ module Kitsune
|
|
132
136
|
else
|
133
137
|
kitsune_admin[:fields][column.name.to_sym][:type]
|
134
138
|
end
|
135
|
-
elsif column.name =~
|
139
|
+
elsif column.name =~ /._id$/
|
136
140
|
:select
|
137
141
|
else
|
138
142
|
case column.type
|
@@ -175,7 +179,7 @@ module Kitsune
|
|
175
179
|
end
|
176
180
|
|
177
181
|
def display_for(record, method, *args, &block)
|
178
|
-
if method.to_s =~
|
182
|
+
if method.to_s =~ /._id$/
|
179
183
|
associated_record = record.send(method.to_s.gsub(/_id$/, '').to_sym, *args, &block)
|
180
184
|
label_method = detect_label(associated_record)
|
181
185
|
associated_record.send(label_method.to_sym)
|
@@ -202,7 +206,7 @@ module Kitsune
|
|
202
206
|
|
203
207
|
if field_type(field) == :select
|
204
208
|
[field_options(field), {:include_blank => true}]
|
205
|
-
elsif column.name =~
|
209
|
+
elsif column.name =~ /._id$/
|
206
210
|
id = :id
|
207
211
|
collection = find_association_class(column).all
|
208
212
|
name = detect_label(collection)
|
@@ -0,0 +1,49 @@
|
|
1
|
+
require 'kitsune/builder'
|
2
|
+
|
3
|
+
module Kitsune
|
4
|
+
module MongoMapper
|
5
|
+
def setup_admin
|
6
|
+
self.class_eval do
|
7
|
+
class_inheritable_hash :kitsune_admin
|
8
|
+
self.kitsune_admin = {
|
9
|
+
:no_admin => false,
|
10
|
+
:multipart => false,
|
11
|
+
:display => {},
|
12
|
+
:edit => {},
|
13
|
+
:reflections => {},
|
14
|
+
:fields => {},
|
15
|
+
:tabs => {},
|
16
|
+
:is_sti => false,
|
17
|
+
:disabled => [],
|
18
|
+
:versioned => false,
|
19
|
+
:order_by => nil,
|
20
|
+
:media => nil # class to store images into
|
21
|
+
}
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
25
|
+
def admin &block
|
26
|
+
setup_admin unless self.respond_to?(:kitsune_admin)
|
27
|
+
Kitsune::Builder.generate(self, &block) unless self.kitsune_admin[:no_admin]
|
28
|
+
end
|
29
|
+
|
30
|
+
def no_admin
|
31
|
+
setup_admin
|
32
|
+
self.kitsune_admin[:no_admin] = true
|
33
|
+
end
|
34
|
+
TRANSPOSE = {String => :string}
|
35
|
+
def columns
|
36
|
+
self.keys.map do |key, value|
|
37
|
+
FauxColumn.new(key, TRANSPOSE[value.type], key == '_id')
|
38
|
+
end
|
39
|
+
end
|
40
|
+
|
41
|
+
def reflections
|
42
|
+
{}
|
43
|
+
end
|
44
|
+
|
45
|
+
def class_name
|
46
|
+
self.to_s
|
47
|
+
end
|
48
|
+
end
|
49
|
+
end
|
data/rails/init.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: kitsune
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0
|
4
|
+
version: 0.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Matthew Mongeau <matt@toastyapps.com>
|
@@ -350,6 +350,7 @@ files:
|
|
350
350
|
- lib/kitsune/faux_column.rb
|
351
351
|
- lib/kitsune/form_helper_ext.rb
|
352
352
|
- lib/kitsune/inspector.rb
|
353
|
+
- lib/kitsune/mongo_mapper.rb
|
353
354
|
- lib/kitsune/page.rb
|
354
355
|
- lib/kitsune.rb
|
355
356
|
- rails/init.rb
|