0
@@ -153,11 +153,11 @@ your data gets persisted to files within <code>myapp/datastore/</code>.</p>
0
<span class="constant">Author</span><span class="punct">.</span><span class="ident">first</span><span class="punct">(</span><span class="symbol">:name</span> <span class="punct">=></span> <span class="punct">"</span><span class="string">Nick DeMonner</span><span class="punct">")</span>
0
<span class="comment"># brings back first author whose name contains "Nick"</span>
0
- <span class="constant">Author</span><span class="punct">.</span><span class="ident">first</span><span class="punct">(
"</span><span class="string">name.include?('Nick')</span><span class="punct">")</span>
0
+ <span class="constant">Author</span><span class="punct">.</span><span class="ident">first</span><span class="punct">(
</span><span class="symbol">:name</span><span class="punct">.</span><span class="ident">includes</span> <span class="punct">=></span> <span class="punct">'</span><span class="string">Nick</span><span class="punct">')</span>
0
<span class="comment"># brings back all authors whose email contains "gmail.com", and who </span>
0
- <span class="comment"># were created before some_date_time</span>
0
- <span class="constant">Author</span><span class="punct">.</span><span class="ident">all</span><span class="punct">("</span><span class="string">email.include?('gmail.com') && created_at < some_date_time</span><span class="punct">")</span>
0
+ <span class="comment"># were created before today</span>
0
+ <span class="constant">Author</span><span class="punct">.</span><span class="ident">all</span><span class="punct">(</span><span class="symbol">:email</span><span class="punct">.</span><span class="ident">includes</span> <span class="punct">=></span> <span class="punct">"</span><span class="string">gmail.com</span><span class="punct">",</span> <span class="symbol">:created_at</span><span class="punct">.</span><span class="ident">lt</span> <span class="punct">=></span> <span class="constant">DateTime</span><span class="punct">.</span><span class="ident">now</span><span class="punct">)</span>
0
@@ -195,25 +195,59 @@ your data gets persisted to files within <code>myapp/datastore/</code>.</p>
0
<h3>A Word About Finding Stuff</h3>
0
- <p>You’ll note that Stone uses a string containing ruby expressions to find
0
-your data. Any method works here, just be careful when inserting values.</p>
0
+ <p>Stone uses a series of unique methods (à la DataMapper) to finding objects.
0
+You may use the following methods when searching:</p>
0
- <span class="constant">Author</span><span class="punct">.</span><span class="ident">first</span><span class="punct">("</span><span class="string">name == <span class="expr">#{name}</span></span><span class="punct">")</span>
0
-...won’t work.</li>
0
+ <li><pre class='syntax'>
0
+ <span class="comment"># matches all objects whose <code>field</code> is greater </span>
0
+ <span class="comment"># than <code>thing</code></span>
0
+ <span class="symbol">:field</span><span class="punct">.</span><span class="ident">gt</span> <span class="punct">=></span> <span class="ident">thing</span>
0
- <li>Instead, use this…
0
- <span class="constant">Author</span><span class="punct">.</span><span class="ident">first</span><span class="punct">("</span><span class="string">name == '<span class="expr">#{name}</span>'</span><span class="punct">")</span>
0
-... and your luck will change.</li>
0
+ <li><pre class='syntax'>
0
+ <span class="comment"># matches objects whose <code>field</code> is greater than </span>
0
+ <span class="comment"># or equal to <code>thing</code></span>
0
+ <span class="symbol">:field</span><span class="punct">.</span><span class="ident">gte</span> <span class="punct">=></span> <span class="ident">thing</span>
0
+ <li><pre class='syntax'>
0
+ <span class="comment"># matches all objects whose <code>field</code> is less </span>
0
+ <span class="comment"># than <code>thing</code></span>
0
+ <span class="symbol">:field</span><span class="punct">.</span><span class="ident">lt</span> <span class="punct">=></span> <span class="ident">thing</span>
0
+ <li><pre class='syntax'>
0
+ <span class="comment"># matches all objects whose <code>field</code> is less than</span>
0
+ <span class="comment"># or equal to <code>thing</code></span>
0
+ <span class="symbol">:field</span><span class="punct">.</span><span class="ident">lte</span> <span class="punct">=></span> <span class="ident">thing</span>
0
+ <li><pre class='syntax'>
0
+ <span class="comment"># matches all objects whose <code>field</code> contains <code>thing</code></span>
0
+ <span class="symbol">:field</span><span class="punct">.</span><span class="ident">includes</span> <span class="punct">=></span> <span class="ident">thing</span>
0
+ <li><pre class='syntax'>
0
+ <span class="comment"># matches objects whose <code>field</code> matches <code>pattern</code></span>
0
+ <span class="symbol">:field</span><span class="punct">.</span><span class="ident">matches</span> <span class="punct">=></span> <span class="ident">pattern</span> <span class="comment"># pattern is any RegEx</span>
Comments
No one has commented yet.