dm-metamapper 0.2.0 → 0.2.1
Sign up to get free protection for your applications and to get access to all the features.
- data/lib/dm-metamapper/version.rb +1 -1
- data/lib/templates/cpp/class.hpp.erb +18 -17
- metadata +4 -4
@@ -60,28 +60,30 @@ public:
|
|
60
60
|
}
|
61
61
|
<%- end -%>
|
62
62
|
|
63
|
-
|
63
|
+
std::vector<std::string> getFields()
|
64
64
|
{
|
65
|
-
|
65
|
+
std::vector<std::string> ret;
|
66
|
+
ret.clear();
|
66
67
|
<%- model.generated_properties.each do |property| -%>
|
67
|
-
|
68
|
+
ret.push_back("<%= property.name %>");
|
68
69
|
<%- end -%>
|
70
|
+
return ret;
|
69
71
|
}
|
70
72
|
|
71
|
-
|
72
|
-
|
73
|
-
|
73
|
+
std::vector<O_<%= class_name %>>
|
74
|
+
select(const Condition& c,
|
75
|
+
const std::string& additional)
|
74
76
|
{
|
77
|
+
std::vector<O_<%= class_name %>> ret;
|
75
78
|
Condition c1 = _constraint.nil() ? c : _constraint && c;
|
76
|
-
std::vector<std::string> fields;
|
77
|
-
getFields(fields);
|
79
|
+
std::vector<std::string> fields = getFields();
|
78
80
|
QueryRes res;
|
79
81
|
DBFace::instance()->select(_tables, fields, c1._cond,
|
80
82
|
additional, res);
|
81
|
-
|
83
|
+
ret.resize(res.size());
|
82
84
|
for(size_t i = 0; i < res.size(); ++i){
|
83
85
|
<%- model.generated_properties.each do |property| -%>
|
84
|
-
|
86
|
+
ret[i]._f_<%= property.name %>._base =
|
85
87
|
<%- if DataMapper::Property::Enum === property -%>
|
86
88
|
(<%= property.cpp_name %>::Base)UTILS::fromString<size_t>(res[i]["<%= property.name %>"]);
|
87
89
|
<%- else -%>
|
@@ -89,6 +91,7 @@ public:
|
|
89
91
|
<%- end -%>
|
90
92
|
<%- end -%>
|
91
93
|
}
|
94
|
+
return ret;
|
92
95
|
}
|
93
96
|
|
94
97
|
size_t count(const Condition& c)
|
@@ -109,16 +112,15 @@ public:
|
|
109
112
|
}
|
110
113
|
|
111
114
|
|
112
|
-
|
113
|
-
std::vector<O_<%= class_name %>>& r)
|
115
|
+
std::vector<O_<%= class_name %>> select(const Condition& c)
|
114
116
|
{
|
115
117
|
Condition c1 = _constraint.nil() ? c : _constraint && c;
|
116
|
-
select(c1, ""
|
118
|
+
return select(c1, "");
|
117
119
|
}
|
118
120
|
|
119
|
-
|
121
|
+
std::vector<O_<%= class_name %>> select()
|
120
122
|
{
|
121
|
-
select(_constraint, ""
|
123
|
+
return select(_constraint, "");
|
122
124
|
}
|
123
125
|
|
124
126
|
std::pair<O_<%= class_name %>, bool> select(const I_<%= class_name %>& id){
|
@@ -128,8 +130,7 @@ public:
|
|
128
130
|
std::pair<O_<%= class_name %>, bool> first(const Condition& c)
|
129
131
|
{
|
130
132
|
Condition c1 = _constraint.nil() ? c : _constraint && c;
|
131
|
-
std::vector<O_<%= class_name %>> r;
|
132
|
-
select(c, "limit 1", r);
|
133
|
+
std::vector<O_<%= class_name %>> r = select(c, "limit 1");
|
133
134
|
if(r.size() > 0)
|
134
135
|
return std::make_pair(r[0], true);
|
135
136
|
else
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: dm-metamapper
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 21
|
5
5
|
prerelease:
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 2
|
9
|
-
-
|
10
|
-
version: 0.2.
|
9
|
+
- 1
|
10
|
+
version: 0.2.1
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Jonah Honeyman
|
@@ -16,7 +16,7 @@ autorequire:
|
|
16
16
|
bindir: bin
|
17
17
|
cert_chain: []
|
18
18
|
|
19
|
-
date:
|
19
|
+
date: 2012-01-02 00:00:00 Z
|
20
20
|
dependencies: []
|
21
21
|
|
22
22
|
description: C++ API for databases created with DM. Hard typing, compile time checked queries.
|