README.md in sequel-fixture-0.0.3 vs README.md in sequel-fixture-2.0.0

- old
+ new

@@ -1,48 +1,73 @@ Sequel::Fixture =============== [![Build Status](https://secure.travis-ci.org/Fetcher/sequel-fixture.png)](http://travis-ci.org/Fetcher/sequel-fixture) [![Code Climate](https://codeclimate.com/badge.png)](https://codeclimate.com/github/Fetcher/sequel-fixture) -Just like Rails 2 fixtures, but for Sequel. +Just like Rails fixtures, but for Sequel. -Show off -======== +This version includes support for defining the fixture schemas +and uses sqlite3 adapter to inject data into memory. +Usage +===== +Each fixture file defines the schema and data for a single table which +is named after the file name. + +Schema definition is optional, but note that db inserts will fail if the tables do +not exist. + Assuming you have a fixture for the table users with: ```yaml -# test/fixtures/simple/users.yaml -john: - name: John - last_name: Doe - email: john@doe.com -jane: - name: Jane - last_name: Doe - email: jane@doe.com +# fixtures/simple/users.yaml +schema: + - name: name + type: string + primary_key: true + - name: last_name + type: string + - name: empty + type: string +data: + - name: John + last_name: Doe + email: john@doe.com + - name: Jane + last_name: Doe + email: jane@doe.com ``` and for messages: ```yaml -# test/fixtures/simple/messages.yaml -greeting: - sender_id: 1 - receiver_id: 2 - text: Hi Jane! Long time no see. -long_time: - sender_id: 2 - receiver_id: 1 - text: John! Long time indeed. How are you doing? +# fixtures/simple/messages.yaml +schema: + - name: sender_id + type: integer + primary_key: true + - name: receiver_id + type: integer + - name: text + type: string +data: + - sender_id: 1 + receiver_id: 2 + text: Hi Jane! Long time no see. + - sender_id: 2 + receiver_id: 1 + text: John! Long time indeed. How are you doing? ``` and the ruby script ```ruby # script.rb require "sequel-fixture" DB = Sequel.sqlite # Just a simple example, needs sqlite3 gem +## Set the path of the fixture yaml files to be [script.rb]/fixtures/ +Sequel::Fixture.path = File.join(File.dirname(__FILE__), "fixtures") + fixture = Sequel::Fixture.new :simple, DB # Will load all the data in the fixture into the database fixture.users # == fixture[:users] fixture.users.john.name # => "John" # The YAML files are parsed into a SymbolMatrix @@ -63,10 +88,16 @@ ``` ...naturally, `sequel-fixture` makes a lot more sense within some testing framework. -> **Note**: As of version 0.0.1, the `test/fixtures` path for fixtures is not configurable. Will solve soon. + +Contributing +------------ + +``` +bundle install --binstubs .bin --path vendor/bundle +``` Installation ------------ gem install sequel-fixture