Couchbase Lite ha sido lanzado desde hace algún tiempo, así que pensé que era hora de dar una actualización sobre el uso de CouchbaseLite de RubyMotion.
Cuando porté ToDoLite-iOS a RubyMotion originalmente hubo algunos baches en el camino, pero funcionó en general. Por ejemplo, hubo algunos problemas con RubyMotion al no manejar lambdas de la forma en que CouchbaseLite las necesita, pero esto se ha resuelto desde entonces. Si no sabes a qué me refiero con eso, puedes estar contento y olvidarte de todo, o leer sobre ello.
Entonces, ¿qué necesito ahora para ponerme en marcha con Couchbase Lite e iOS?
Por ahora es posible ir 100% Ruby para un proyecto RubyMotion usando Couchbase Lite, lo cual es genial. Couchbase Lite ha sido lanzado públicamente, está fuera de beta y ya ha recibido mucho amor en términos de parches para hacer que funcione de forma aún más fiable en todas las plataformas. En el caso de RubyMotion esto facilitó mucho las cosas, y el proceso ya está en marcha:
- Añadir couchbase-lite mediante cocoapods
- Indica a RubyMotion dónde encontrar los archivos de cabecera
- ¡Úsalo!
Instalación de Couchbase Lite mediante Cocoapods
Cocoapods es un impresionante gestor de paquetes para proyectos iOS y MacOS, y se integra muy bien con RubyMotion. Todo lo que hay que hacer es añadir cocoapods y motion-cocoapods a tu gemfile:
gema rastrillo
# Build dependencies:
gema cocoápodos, ‘~> 0.33.1’
gema motion-cocoapods, ‘~> 1.4.0’
# Añade tus dependencias:
gema envoltorio de burbujas, ‘~> 1.5.0’
Ahora puede instalar cualquier cocoapod añadiéndolo al Rakefile y ejecutando "bundle exec rake pod:install":
# Utilice `rake config' para ver la configuración completa del proyecto.
app.nombre = ToDoLite-Motion
app.marcos += [Cuentas, Social]
app.identificador = com.couchbase.ToDoLite-Motion
# Añadir archivos de directorio de configuración
app.archivos << Dir.glob('./config/*.rb')
# Asegúrese de que se encuentran las cabeceras de CouchbaseLite
# esto hace CocoaPods algo redundante, pero actualmente es la única manera de que esto funcione
#
# http://equip9.org/2014/03/06/adding-couchbase-in-a-rubymotion-app.html
# https://groups.google.com/forum/#!topic/rubymotion/wVqdLWQ5uao
#
app.proyecto_proveedor(vendor/Pods/couchbase-lite-ios/CouchbaseLite.framework,
:static,
productos: [CouchbaseLite],
headers_dir: Encabezados)
app.código_certificado = Desarrollador de iPhone: Philipp Fehre (6W7Y595HZQ)'
app.vainas do
vaina couchbase-lite-ios, ‘~> 1.0’
fin
fin
Nota al margen importante, asegúrese de incluir:
:static,
productos: [CouchbaseLite],
headers_dir: Encabezados)
ya que de lo contrario no se encontrarán las cabeceras.
Uso de Couchbase Lite desde RubyMotion
Ahora puedes usar Couchbase Lite como lo harías con cualquier otra librería Obj-C de RubyMotion. Por ejemplo, para definir una vista que agarre todas las "listas" de la base de datos puedes escribir esto:
vista = base de datos.verNombrado("listas")
si Mira.mapBlock
mapa = lambda { |doc, emit|
emitir.llame a(doc["título], nil) si doc["tipo"] == "lista"
}
vista.setMapBlock map, reduceBlock: nilversión: “2”
fin
vista.createQuery
fin
Para más información, consulte RubyMotion Proyecto de ejemplo en Github.