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 "#pragma db view pointer(std::shared_ptr) object(\#{type}) object(\#{@finalklass} inner)\nstruct \#{query_object}\n{\n std::string get_database_name() const { return \#{type}().get_database_name(); }\n \#{id_type} get_id() const { return self ? self->get_id() : \#{null_id}; }\n std::shared_ptr<\#{@finalklass}> self;\n operator \#{@finalklass}() const { return *self; }\n\n #pragma db view pointer(std::shared_ptr) object(\#{type}) object(\#{@finalklass} inner)\n struct Count\n {\n #pragma db column(\"count(\" + \#{@finalklass}::id + \")\")\n size_t value;\n };\n};\n"
end
|