Lazy Records for Ruby
This is a port of the java functional library Lazy Records to the ruby language. It still needs a lot of tidy and re-working in several places. But it works and is a first cut.
Summary
- Tries to be as lazy as possible
- Supports method chaining
- Is primarily based on totally lazy
Install
This gem requires ruby 2.x.x
In your bundler Gemfile
gem lazy_records, '~>0.0.1'
Or with rubygems
gem install lazy_records
Examples
The following are some simple examples of the currently implemented functionality.
With MemoryRecords (Run in memory only)
require 'lazy_records'
name = keyword(:name)
age = keyword(:age)
people = definition(:people, name, age)
records = MemoryRecords.new
records.add(people, sequence(
record(name, 'kostas', age, 25),
record(name, 'kings', age, 34)))
records.get(people).count # returns 2
records.get(people).head.name) # returns 'kostas'
with SqlRecords (Run against either mysql or mssql currently)
require 'lazy_records'
require 'adpaters/mysql'
name = keyword(:name)
age = keyword(:age)
people = definition(:people, name, age)
records = SqlRecords.new(Mysql.new(username:'user1',password:'pass1',database:'mydb'))
records.add(people, sequence(
record(name, 'kostas', age, 25),
record(name, 'kings', age, 34)))
records.get(people).count # returns 2
records.get(people).head.name) # returns 'kostas'