Class: Rollerskates::ModelHelper
- Inherits:
-
Object
- Object
- Rollerskates::ModelHelper
show all
- Defined in:
- lib/rollerskates/helpers/model_helper.rb
Class Attribute Summary collapse
Class Method Summary
collapse
Instance Method Summary
collapse
Dynamic Method Handling
This class handles dynamic methods through the method_missing method
#method_missing(method, *args) ⇒ Object
84
85
86
|
# File 'lib/rollerskates/helpers/model_helper.rb', line 84
def method_missing(method, *args)
@model.send(method, *args)
end
|
Class Attribute Details
Returns the value of attribute db.
5
6
7
|
# File 'lib/rollerskates/helpers/model_helper.rb', line 5
def db
@db
end
|
.properties ⇒ Object
Returns the value of attribute properties.
5
6
7
|
# File 'lib/rollerskates/helpers/model_helper.rb', line 5
def properties
@properties
end
|
Class Method Details
.all_columns ⇒ Object
88
89
90
|
# File 'lib/rollerskates/helpers/model_helper.rb', line 88
def self.all_columns
new.all_columns
end
|
.auto_increment(value) ⇒ Object
59
60
61
|
# File 'lib/rollerskates/helpers/model_helper.rb', line 59
def self.auto_increment(value)
"AUTOINCREMENT " if value
end
|
.create_table ⇒ Object
24
25
26
27
28
29
30
|
# File 'lib/rollerskates/helpers/model_helper.rb', line 24
def self.create_table
query = "CREATE TABLE IF NOT EXISTS #{table_name}\
(#{properties.join(', ')})"
database.execute(query)
all_columns.each { |var| attr_accessor var }
end
|
.default(value) ⇒ Object
55
56
57
|
# File 'lib/rollerskates/helpers/model_helper.rb', line 55
def self.default(value)
"DEFAULT `#{value}` "
end
|
.method_missing(method, *args) ⇒ Object
75
76
77
|
# File 'lib/rollerskates/helpers/model_helper.rb', line 75
def self.method_missing(method, *args)
new.send(method, *args)
end
|
.nullable(value) ⇒ Object
50
51
52
53
|
# File 'lib/rollerskates/helpers/model_helper.rb', line 50
def self.nullable(value)
return "NOT NULL " if value
"NULL "
end
|
.parse_constraints(constraints) ⇒ Object
32
33
34
35
36
37
38
39
|
# File 'lib/rollerskates/helpers/model_helper.rb', line 32
def self.parse_constraints(constraints)
attributes = ""
constraints.each do |attr, value|
attributes += send(attr.to_s, value)
end
attributes
end
|
.primary_key(value) ⇒ Object
45
46
47
48
|
# File 'lib/rollerskates/helpers/model_helper.rb', line 45
def self.primary_key(value)
return "PRIMARY KEY " if value
" "
end
|
.property(field, options) ⇒ Object
20
21
22
|
# File 'lib/rollerskates/helpers/model_helper.rb', line 20
def self.property(field, options)
new.add_property "#{field} #{parse_constraints(options)}"
end
|
.type(value) ⇒ Object
41
42
43
|
# File 'lib/rollerskates/helpers/model_helper.rb', line 41
def self.type(value)
"#{value.to_s.upcase} "
end
|
Instance Method Details
#add_property(property) ⇒ Object
11
12
13
14
15
16
17
18
|
# File 'lib/rollerskates/helpers/model_helper.rb', line 11
def add_property(property)
self.class.properties ||= [
"id integer PRIMARY KEY AUTOINCREMENT",
"created_at datetime NOT NULL",
"updated_at datetime NOT NULL"
]
self.class.properties << property
end
|
#all_columns ⇒ Object
79
80
81
82
|
# File 'lib/rollerskates/helpers/model_helper.rb', line 79
def all_columns
@all_columns ||= database.prepare "SELECT * FROM #{table_name}"
@all_columns.columns.map(&:to_sym)
end
|
7
8
9
|
# File 'lib/rollerskates/helpers/model_helper.rb', line 7
def database
@db ||= SQLite3::Database.new File.join("db", "app.db")
end
|
#model_name ⇒ Object
71
72
73
|
# File 'lib/rollerskates/helpers/model_helper.rb', line 71
def model_name
self.class
end
|
#table_name ⇒ Object
67
68
69
|
# File 'lib/rollerskates/helpers/model_helper.rb', line 67
def table_name
self.class.to_s.downcase.pluralize
end
|
#update_query ⇒ Object
63
64
65
|
# File 'lib/rollerskates/helpers/model_helper.rb', line 63
def update_query
"UPDATE #{table_name} SET #{placeholders_for_update} WHERE id = ?"
end
|