Tutorial by Examples: ti

class User { String name int age } def users = [ new User(name: "Bob", age: 20), new User(name: "Tom", age: 50), new User(name: "Bill", age: 45) ] def null_value = users.find { it.age > 100 } // no over-100 found. Null null_value?.name?....
for numbers, a zero value evaluates to false, non zero to true int i = 0 ... if (i) print "some ${i}" else print "nothing" will print "nothing"
a string (including GStrings) evaluates to true if not null and not empty, false if null or empty def s = '' ... if (s) println 's is not empty' else println 's is empty' will print: 's is empty'
Collections and Maps evaluates to true if not null and not empty and false if null or empty /* an empty map example*/ def userInfo = [:] if (!userInfo) userInfo << ['user': 'Groot', 'species' : 'unknown' ] will add user: 'Groot' , species : 'unknown' as default userInfo since the u...
a null object reference evaluates to false, a non null reference to true, but for for strings, collections, iterators and enumerations it also takes into account the size. def m = null if (!m) println "empty" else println "${m}" will print "empty" de...
Sometimes it may be useful to have a specific asBoolean definition in your own program for some kind of objects. /** an oversimplified robot controller */ class RunController { def complexCondition int position = 0 def asBoolean() { return complexCondition(this...
Not all type erasure involves virtual inheritance, allocations, placement new, or even function pointers. What makes type erasure type erasure is that it describes a (set of) behavior(s), and takes any type that supports that behavior and wraps it up. All information that isn't in that set of beha...
The population count of a bitstring is often needed in cryptography and other applications and the problem has been widely studied. The naive way requires one iteration per bit: unsigned value = 1234; unsigned bits = 0; // accumulates the total number of bits set in `n` for (bits = 0; value; ...
Of course, the best way to detect mobile is for the hardware to notify you directly. Cordova PhoneGap exposes a 'deviceready' event, that you can add an event listener to. document.addEventListener('deviceready', function(){ Session.set('deviceready', true); }, false);
Install Iron Router From the terminal: meteor add iron:router Basic configuration Router.configure({ //Any template in your routes will render to the {{> yield}} you put inside your layout template layoutTemplate: 'layout', loadingTemplate: 'loading' }); Render without d...
You can default to the normal Mongo format by defining your collections with the idGeneration field. MyCollection = new Meteor.Collection('mycollection', {idGeneration : 'MONGO'});
Many beginners to Mongo struggle with basics, such as how to insert an array, date, boolean, session variable, and so forth into a document record. This example provides some guidance on basic data inputs. Todos.insert({ text: "foo", // String listId: Session...
You can get it either synchronously: var docId = Todos.insert({text: 'foo'}); console.log(docId); Or asynchronously: Todos.insert({text: 'foo'}, function(error, docId){ console.log(docId); });
Using MongoDB for time series data is a very well document and established use-case, with official whitepapers and presentations. Read and watch the official documentation from MongoDB before trying to invent your own schemas for time series data. MongoDB for Time Series Data In general, you'll w...
Geospatial collections generally involve storing GeoJSON in the Mongo database, streaming that data to the client, accessing the browser's window.navigator.geolocation, loading up a Map API, converting GeoJSON to LatLngs, and plotting on the map. Preferably all in realtime. Here are a list of reso...
The following example will log all of your collection queries to the server console in realtime. Meteor.startup( function () { var wrappedFind = Meteor.Collection.prototype.find; // console.log('[startup] wrapping Collection.find') Meteor.Collection.prot...
If the Node event loop acts like a bicycle chain, the server-side collection observer is like a derailleur. It's a gearing mechanism that is going to sit on the data collection as the data comes in. It can be very performant, as all race bicycles have derailleurs. But it's also a source for breaking...
Ruby offers define_method as a private method on modules and classes for defining new instance methods. However, the 'body' of the method must be a Proc or another existing method. One way to create a method from raw string data is to use eval to create a Proc from the code: xml = <<ENDXML ...
Oh-my-zsh is a community-driven framework for managing your zsh configuration. It contains many plugins, which extend functionality, themes, which manage the appearance of the shell and the prompt, and helpful functions that will make your terminal much more powerful and customizable. You can create...
Pre-requirements Check the requirements for each device type you wish to automate and make sure they're installed before attempting to use Appium! iOS Requirements Mac OS X 10.10 or higher, 10.11.1 recommended XCode >= 6.0, 7.1.1 recommended Apple Developer Tools (iPhone simulator SDK, com...

Page 263 of 505