Module: Bowtie
- Defined in:
- lib/bowtie/admin.rb,
lib/bowtie/helpers.rb,
lib/bowtie/adapters/datamapper.rb,
lib/bowtie/adapters/mongomapper.rb
Defined Under Namespace
Modules: ClassMethods, Helpers
Classes: Admin
Constant Summary
collapse
- PER_PAGE =
25
Class Method Summary
collapse
-
.add_paging(resources, page) ⇒ Object
-
.belongs_to_association?(assoc) ⇒ Boolean
-
.create(model, params) ⇒ Object
-
.get_associated(model, params) ⇒ Object
-
.get_count(record, association) ⇒ Object
i have to say this: datamapper sucks.
-
.get_many(model, params, page) ⇒ Object
-
.get_one(model, id) ⇒ Object
-
.has_one_association?(assoc) ⇒ Boolean
-
.models ⇒ Object
-
.search(model, q, page) ⇒ Object
-
.update(resource, params) ⇒ Object
-
.update!(resource, params) ⇒ Object
doesnt trigger validations or callbacks.
Class Method Details
.add_paging(resources, page) ⇒ Object
45
46
47
|
# File 'lib/bowtie/adapters/datamapper.rb', line 45
def self.add_paging(resources, page)
resources.respond_to?(:page) ? resources.page(page, :per_page => PER_PAGE) : resources
end
|
.belongs_to_association?(assoc) ⇒ Boolean
49
50
51
|
# File 'lib/bowtie/adapters/datamapper.rb', line 49
def self.belongs_to_association?(assoc)
assoc.class == DataMapper::Associations::ManyToOne::Relationship
end
|
.create(model, params) ⇒ Object
23
24
25
26
27
|
# File 'lib/bowtie/adapters/datamapper.rb', line 23
def self.create(model, params)
model.create(params)
rescue DataObjects::IntegrityError
model.new(params)
end
|
.get_associated(model, params) ⇒ Object
29
30
31
32
33
34
|
# File 'lib/bowtie/adapters/datamapper.rb', line 29
def self.get_associated(model, params)
res = model.get(params[:id]).send(params[:association])
end
|
.get_count(record, association) ⇒ Object
i have to say this: datamapper sucks. when calling record.association.count it actually fetches all the records, builds an array and then calls count on that array.
60
61
62
63
64
65
66
67
|
# File 'lib/bowtie/adapters/datamapper.rb', line 60
def self.get_count(record, association)
association_key = "#{record.class.name.downcase}_#{record.class.primary_key}"
begin
repository.adapter.select("select count(*) from #{association} where #{association_key} = ?", record.primary_key)
rescue DataObjects::SQLError => e ''
end
end
|
.get_many(model, params, page) ⇒ Object
15
16
17
|
# File 'lib/bowtie/adapters/datamapper.rb', line 15
def self.get_many(model, params, page)
add_paging(model.all(params), page)
end
|
.get_one(model, id) ⇒ Object
19
20
21
|
# File 'lib/bowtie/adapters/datamapper.rb', line 19
def self.get_one(model, id)
model.get(id)
end
|
.has_one_association?(assoc) ⇒ Boolean
53
54
55
|
# File 'lib/bowtie/adapters/datamapper.rb', line 53
def self.has_one_association?(assoc)
assoc.class == DataMapper::Associations::OneToOne::Relationship
end
|
.models ⇒ Object
3
4
5
|
# File 'lib/bowtie/adapters/datamapper.rb', line 3
def self.models
DataMapper::Model.descendants.to_a
end
|
.search(model, q, page) ⇒ Object
7
8
9
10
11
12
13
|
# File 'lib/bowtie/adapters/datamapper.rb', line 7
def self.search(model, q, page)
query = []
model.searchable_fields.each do |field|
query << "#{model}.all(:#{field}.like => '%#{q}%')"
end
eval(query.join(' + ')).page(page, :per_page => PER_PAGE)
end
|
.update(resource, params) ⇒ Object
41
42
43
|
# File 'lib/bowtie/adapters/datamapper.rb', line 41
def self.update(resource, params)
resource.update(params)
end
|
.update!(resource, params) ⇒ Object
doesnt trigger validations or callbacks
37
38
39
|
# File 'lib/bowtie/adapters/datamapper.rb', line 37
def self.update!(resource, params)
resource.update!(params)
end
|