Class: CrailsQueryGenerator
Class Method Summary
collapse
Instance Method Summary
collapse
-
#_join_based_has_many(type, name, options) ⇒ Object
-
#generate_for(object) ⇒ Object
-
#has_many(type, name, options = {}) ⇒ Object
-
#has_one(type, name, options = {}) ⇒ Object
-
#property(type, name, options = {}) ⇒ Object
-
#reset ⇒ Object
-
#resource_name(name) ⇒ Object
-
#validation(type, name, data) ⇒ Object
#_append, _use_by_files, _use_by_models, #get_classname, #get_pluralized_name, #get_singular_name, #get_type, #get_value, #id_type, #indent, is_file_based?, #make_block, #null_id, #order_by, prepare, #ptr_type, #should_generate_for, #should_generate_from_manifest, #should_skip_on_client?, sourcefile_to_destfile, #unindent, use, #visibility
Class Method Details
.extension ⇒ Object
72
|
# File 'lib/metarecord/generators/crails/query_generator.rb', line 72
def extension ; ".queries.hpp" ; end
|
.make_file(filename, data) ⇒ Object
74
75
76
77
78
79
80
81
82
83
84
85
|
# File 'lib/metarecord/generators/crails/query_generator.rb', line 74
def make_file filename, data
base = "lib/" + filename[0...-3]
include = base + ".hpp"
file_define = "_#{filename[0...-3].upcase.gsub "/", "_"}_QUERIES_HPP"
source = <<CPP
#ifndef #{file_define}
# define #{file_define}
#{(collect_includes_for filename).join "\n"}
#{data[:bodies].join "\n"}
#endif
CPP
end
|
Instance Method Details
#_join_based_has_many(type, name, options) ⇒ Object
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
|
# File 'lib/metarecord/generators/crails/query_generator.rb', line 44
def _join_based_has_many type, name, options
tptr = ptr_type type
list_type = "std::list<#{tptr} >"
singular_name = get_singular_name name
outer_name = (name.split(/-|_|\s/).each do |i| i.capitalize! end).join
query_object = "#{@finalklass.split("::").join}By#{outer_name}"
_append <<CPP
#pragma db view pointer(std::shared_ptr) object(#{type}) object(#{@finalklass} inner)
struct #{query_object}
{
std::string get_database_name() const { return #{type}().get_database_name(); }
#{id_type} get_id() const { return self ? self->get_id() : #{null_id}; }
std::shared_ptr<#{@finalklass}> self;
operator #{@finalklass}() const { return *self; }
#pragma db view pointer(std::shared_ptr) object(#{type}) object(#{@finalklass} inner)
struct Count
{
#pragma db column("count(" + #{@finalklass}::id + ")")
size_t value;
};
};
CPP
end
|
#generate_for(object) ⇒ Object
11
12
13
14
15
16
17
18
19
20
21
22
23
|
# File 'lib/metarecord/generators/crails/query_generator.rb', line 11
def generate_for object
@headerfile = object[:header]
unless @headerfile.nil?
@modelname = object[:name].underscore
@klassname = get_classname(object)
@finalklass = object[:classname]
reset
self.instance_eval &object[:block]
"# include \"#{@headerfile}\"\n" + @src
else
@src
end
end
|
#has_many(type, name, options = {}) ⇒ Object
37
38
39
40
41
42
|
# File 'lib/metarecord/generators/crails/query_generator.rb', line 37
def has_many type, name, options = {}
type = get_type type
if options[:joined] != false
_join_based_has_many type, name, options
end
end
|
#has_one(type, name, options = {}) ⇒ Object
34
35
|
# File 'lib/metarecord/generators/crails/query_generator.rb', line 34
def has_one type, name, options = {}
end
|
#property(type, name, options = {}) ⇒ Object
28
29
|
# File 'lib/metarecord/generators/crails/query_generator.rb', line 28
def property type, name, options = {}
end
|
#reset ⇒ Object
6
7
8
9
|
# File 'lib/metarecord/generators/crails/query_generator.rb', line 6
def reset
super
@required_params = []
end
|
#resource_name(name) ⇒ Object
25
26
|
# File 'lib/metarecord/generators/crails/query_generator.rb', line 25
def resource_name name
end
|
#validation(type, name, data) ⇒ Object
31
32
|
# File 'lib/metarecord/generators/crails/query_generator.rb', line 31
def validation type, name, data
end
|