From 87fefe0c35b80842de3bda449f4cce3822d5e314 Mon Sep 17 00:00:00 2001 From: Jinzhu Date: Tue, 8 Mar 2016 12:18:56 +0800 Subject: [PATCH] Rebuild --- advanced.html | 160 ++++++++++++++++-------- associations.html | 172 ++++++++++++++++++++----- callbacks.html | 101 ++++++++++----- changelog.html | 75 ++++++++--- curd.html | 164 +++++++++++++++--------- database.html | 120 +++++++++++------- development.html | 117 ++++++++++++----- documents/curd.md | 2 +- gitbook/CHANGES.md | 2 +- gitbook/book.js | 24 ++++ gitbook/docs/README.md | 12 +- gitbook/docs/asciidoc.md | 15 ++- gitbook/docs/config.md | 35 ++++-- gitbook/docs/cover.md | 21 ++++ gitbook/docs/examples.md | 6 +- gitbook/docs/faq.md | 6 +- gitbook/docs/languages.md | 4 +- gitbook/docs/lexicon.md | 7 +- gitbook/docs/pages.md | 44 +++++-- gitbook/docs/plugins/README.md | 28 +++++ gitbook/docs/plugins/create.md | 63 ++++++++++ gitbook/docs/plugins/hooks.md | 0 gitbook/docs/plugins/testing.md | 22 ++++ gitbook/docs/setup.md | 10 +- gitbook/docs/structure.md | 26 ++-- gitbook/docs/templating/README.md | 89 +++++++++++++ gitbook/docs/templating/conrefs.md | 55 ++++++++ gitbook/docs/templating/variables.md | 64 ++++++++++ gitbook/docs/themes/README.md | 26 ++++ gitbook/lib/backbone/summary.js | 25 ++-- gitbook/lib/book.js | 76 ++++++++---- gitbook/lib/cli/helper.js | 11 +- gitbook/lib/cli/index.js | 48 ++++--- gitbook/lib/cli/server.js | 5 +- gitbook/lib/config/index.js | 2 +- gitbook/lib/config/schema.js | 6 +- gitbook/lib/init.js | 67 ++++++++++ gitbook/lib/output/base.js | 6 +- gitbook/lib/output/ebook.js | 2 +- gitbook/lib/output/json.js | 2 +- gitbook/lib/output/website.js | 2 +- gitbook/lib/page/index.js | 20 +-- gitbook/lib/plugins/compatibility.js | 14 +-- gitbook/lib/plugins/plugin.js | 1 - gitbook/lib/plugins/registry.js | 2 +- gitbook/lib/template/index.js | 2 +- gitbook/lib/utils/command.js | 2 +- gitbook/lib/utils/location.js | 4 +- gitbook/package.json | 179 +++++++++++++-------------- gitbook/test/all.js | 6 + gitbook/test/assertions.js | 19 ++- gitbook/test/config.js | 6 +- gitbook/test/exports.js | 12 ++ gitbook/test/glossary.js | 4 +- gitbook/test/init.js | 57 +++++++++ gitbook/test/langs.js | 2 +- gitbook/test/locate.js | 28 +++-- gitbook/test/page.js | 22 +++- gitbook/test/plugins.js | 20 ++- gitbook/test/readme.js | 2 +- gitbook/test/summary.js | 28 +++++ index.html | 113 +++++++++++------ models.html | 151 ++++++++++++++++------ search_index.json | 1 + 64 files changed, 1810 insertions(+), 607 deletions(-) create mode 100644 gitbook/book.js create mode 100644 gitbook/docs/cover.md create mode 100644 gitbook/docs/plugins/README.md create mode 100644 gitbook/docs/plugins/create.md create mode 100644 gitbook/docs/plugins/hooks.md create mode 100644 gitbook/docs/plugins/testing.md create mode 100644 gitbook/docs/templating/README.md create mode 100644 gitbook/docs/templating/conrefs.md create mode 100644 gitbook/docs/templating/variables.md create mode 100644 gitbook/docs/themes/README.md create mode 100644 gitbook/lib/init.js create mode 100644 gitbook/test/exports.js create mode 100644 gitbook/test/init.js create mode 100644 search_index.json diff --git a/advanced.html b/advanced.html index a53b7ce6..18644d79 100644 --- a/advanced.html +++ b/advanced.html @@ -5,9 +5,8 @@ - - + + @@ -70,8 +69,8 @@ The database handle returned from db.Begin() should be used for all oper"> data-level="5" data-chapter-title="Advanced Usage" data-filepath="advanced.md" - data-basepath="" - data-revision="Wed Mar 02 2016 08:53:45 GMT+0800 (CST)" + data-basepath="." + data-revision="Tue Mar 08 2016 12:18:21 GMT+0800 (CST)" data-innerlanguage=""> @@ -179,12 +178,12 @@ The database handle returned from db.Begin() should be used for all oper">
  • - + 2.2. - Naming Conventions & Overriding + Conventions & Overriding @@ -482,12 +481,12 @@ The database handle returned from db.Begin() should be used for all oper">
  • - + 5.4. - Composite Primary Key + Generic database interface sql.DB @@ -497,11 +496,26 @@ The database handle returned from db.Begin() should be used for all oper">
  • - + 5.5. + Composite Primary Key + + + + + +
  • + +
  • + + + + + 5.6. + Overriding Logger @@ -533,11 +547,26 @@ The database handle returned from db.Begin() should be used for all oper">
  • - + 6.1. + Architecture + + + + + +
  • + +
  • + + + + + 6.2. + Write Plugins @@ -586,7 +615,7 @@ The database handle returned from db.Begin() should be used for all oper">

    - Advanced Usage + Advanced Usage

    @@ -604,9 +633,14 @@ The database handle returned from db.Begin() should be used for all oper">
  • A Specific Example
  • -
  • Raw SQL
  • -
  • Row & Rows

    Error Handling

    -
    query := db.Where("name = ?", "jinzhu").First(&user)
    -query := db.First(&user).Limit(10).Find(&users)
    -// query.Error will return the last happened error
    -
    -// So you could do error handing in your application like this:
    -if err := db.Where("name = ?", "jinzhu").First(&user).Error; err != nil {
    +

    After perform any operations, if there are any error happened, GORM will set it to *DB's Error field

    +
    if err := db.Where("name = ?", "jinzhu").First(&user).Error; err != nil {
         // error handling...
     }
     
    -// RecordNotFound
    -// If no record found when you query data, gorm will return RecordNotFound error, you could check it like this:
    -db.Where("name = ?", "hello world").First(&User{}).Error == gorm.RecordNotFound
    -// Or use the shortcut method
    +// If there are more than one error happened, get all of them with `GetErrors`, it returns `[]error`
    +db.First(&user).Limit(10).Find(&users).GetErrors()
    +
    +// Check if returns RecordNotFound error
     db.Where("name = ?", "hello world").First(&user).RecordNotFound()
     
     if db.Model(&user).Related(&credit_card).RecordNotFound() {
    -    // no credit card found error handling
    +    // no credit card found handling
     }
     

    Transactions

    -

    To perform a set of operations within a transaction, the general flow is as below. -The database handle returned from db.Begin() should be used for all operations within the transaction. -(Note that all individual save and delete operations are run in a transaction by default.)

    -
    // begin
    +

    To perform a set of operations within a transaction, the general flow is as below.

    +
    // begin a transaction
     tx := db.Begin()
     
    -// do some database operations (use 'tx' from this point, not 'db')
    +// do some database operations in the transaction (use 'tx' from this point, not 'db')
     tx.Create(...)
    -...
     
    -// rollback in case of error
    +// ...
    +
    +// rollback the transaction in case of error
     tx.Rollback()
     
    -// Or commit if all is ok
    +// Or commit the transaction
     tx.Commit()
     

    A Specific Example

    @@ -658,26 +687,37 @@ tx.Commit() tx := db.Begin() // Note the use of tx as the database handle once you are within a transaction - if err := tx.Create(&Animal{Name: "Giraffe"}).Error; err != nil { + if err := tx.Create(&Animal{Name: "Giraffe"}).Error; err != nil { tx.Rollback() return err } - if err := tx.Create(&Animal{Name: "Lion"}).Error; err != nil { + if err := tx.Create(&Animal{Name: "Lion"}).Error; err != nil { tx.Rollback() return err } tx.Commit() - return nil + return nil }
    -

    Raw SQL

    +

    SQL Builder

    +

    Run Raw SQL

    +

    Run Raw SQL

    db.Exec("DROP TABLE users;")
    -db.Exec("UPDATE orders SET shipped_at=? WHERE id IN (?)", time.Now, []int64{11,22,33})
    +db.Exec("UPDATE orders SET shipped_at=? WHERE id IN (?)", time.Now, []int64{11,22,33})
    +
    +// Scan
    +type Result struct {
    +    Name string
    +    Age  int
    +}
    +
    +var result Result
    +db.Raw("SELECT name, age FROM users WHERE name = ?", 3).Scan(&result)
     
    -

    Row & Rows

    -

    It is even possible to get query result as *sql.Row or *sql.Rows

    +

    sql.Row & sql.Rows

    +

    Get query result as *sql.Row or *sql.Rows

    row := db.Table("users").Where("name = ?", "jinzhu").Select("name, age").Row() // (*sql.Row)
     row.Scan(&name, &age)
     
    @@ -698,7 +738,7 @@ rows, err := db.Raw("select name, age, email from
         ...
     }
     
    -

    Scan Rows

    +

    Scan sql.Rows In Iteration

    rows, err := db.Model(&User{}).Where("name = ?", "jinzhu").Select("name, age, email").Rows() // (*sql.Rows, error)
     defer rows.Close()
     
    @@ -708,27 +748,39 @@ rows, err := db.Raw("select name, age, email from
       // do something
     }
     
    +

    Generic database interface sql.DB

    +

    Get generic database interface *sql.DB from *gorm.DB connection

    +
    // Get generic database object `*sql.DB` to use its functions
    +db.DB()
    +
    +// Ping
    +db.DB().Ping()
    +
    +

    Connection Pool

    +
    db.DB().SetMaxIdleConns(10)
    +db.DB().SetMaxOpenConns(100)
    +

    Composite Primary Key

    +

    Set multiple fields as priamry key to enable composite primary key

    type Product struct {
    -    ID           string `gorm:"primary_key"`
    -    LanguageCode string `gorm:"primary_key"`
    +    ID           string `gorm:"primary_key"`
    +    LanguageCode string `gorm:"primary_key"`
     }
     

    Logger

    -

    Gorm has built-in logger support

    -
    // Enable Logger
    -db.LogMode(true)
    +

    Gorm has built-in logger support, by default, it will print happened errors

    +
    // Enable Logger, show detailed log
    +db.LogMode(true)
     
    -// Diable Logger
    -db.LogMode(false)
    +// Diable Logger, don't show any log
    +db.LogMode(false)
     
    -// Debug a single operation
    +// Debug a single operation, show detailed log for this operation
     db.Debug().Where("name = ?", "jinzhu").First(&User{})
     
    -

    logger

    -

    Customize Logger

    -
    // Refer gorm's default logger for how to: https://github.com/jinzhu/gorm/blob/master/logger.go#files
    -db.SetLogger(gorm.Logger{revel.TRACE})
    +

    Customize Logger

    +

    Refer GORM's default logger for how to customize it https://github.com/jinzhu/gorm/blob/master/logger.go

    +
    db.SetLogger(gorm.Logger{revel.TRACE})
     db.SetLogger(log.New(os.Stdout, "\r\n", 0))
     
    diff --git a/associations.html b/associations.html index 39f73f4c..7db9cd95 100644 --- a/associations.html +++ b/associations.html @@ -5,8 +5,8 @@ - - + + @@ -69,8 +69,8 @@ data-level="2.3" data-chapter-title="Associations" data-filepath="associations.md" - data-basepath="" - data-revision="Wed Mar 02 2016 08:53:45 GMT+0800 (CST)" + data-basepath="." + data-revision="Tue Mar 08 2016 12:18:21 GMT+0800 (CST)" data-innerlanguage=""> @@ -178,12 +178,12 @@
  • - + 2.2. - Naming Conventions & Overriding + Conventions & Overriding @@ -481,12 +481,12 @@
  • - + 5.4. - Composite Primary Key + Generic database interface sql.DB @@ -496,11 +496,26 @@
  • - + 5.5. + Composite Primary Key + + + + + +
  • + +
  • + + + + + 5.6. + Overriding Logger @@ -532,11 +547,26 @@
  • - + 6.1. + Architecture + + + + + +
  • + +
  • + + + + + 6.2. + Write Plugins @@ -585,7 +615,7 @@

    - Associations + Associations

    @@ -607,21 +637,46 @@

    Belongs To

    -
    // User belongs to a profile, ProfileID is the foreign key
    +
    // `User` belongs to `Profile`, `ProfileID` is the foreign key
     type User struct {
       gorm.Model
       Profile   Profile
    -  ProfileID int
    +  ProfileID int
     }
     
     type Profile struct {
       gorm.Model
    -  Name   string
    +  Name string
     }
     
     db.Model(&user).Related(&profile)
     //// SELECT * FROM profiles WHERE id = 111; // 111 is user's foreign key ProfileID
     
    +

    Specify Foreign Key

    +
    type Profile struct {
    +    gorm.Model
    +    Name string
    +}
    +
    +type User struct {
    +    gorm.Model
    +    Profile      Profile `gorm:"ForeignKey:ProfileRefer"` // use ProfileRefer as foreign key
    +    ProfileRefer int
    +}
    +
    +

    Specify Foreign Key & Association Key

    +
    type Profile struct {
    +    gorm.Model
    +    Refer string
    +    Name  string
    +}
    +
    +type User struct {
    +    gorm.Model
    +    Profile   Profile `gorm:"ForeignKey:ProfileID;AssociationForeignKey:Refer"`
    +    ProfileID int
    +}
    +

    Has One

    // User has one CreditCard, UserID is the foreign key
     type User struct {
    @@ -631,8 +686,8 @@ db.Model(&user).Related(&profile)
     
     type CreditCard struct {
         gorm.Model
    -    UserID   uint
    -    Number   string
    +    UserID   uint
    +    Number   string
     }
     
     var card CreditCard
    @@ -642,6 +697,31 @@ db.Model(&user).Related(&card, "CreditCar
     // If the field name is same as the variable's type name, like above example, it could be omitted, like:
     db.Model(&user).Related(&card)
     
    +

    Specify Foreign Key

    +
    type Profile struct {
    +  gorm.Model
    +  Name      string
    +  UserRefer uint
    +}
    +
    +type User struct {
    +  gorm.Model
    +  Profile Profile `gorm:"ForeignKey:UserRefer"`
    +}
    +
    +

    Specify Foreign Key & Association Key

    +
    type Profile struct {
    +  gorm.Model
    +  Name   string
    +  UserID uint
    +}
    +
    +type User struct {
    +  gorm.Model
    +  Refer   string
    +  Profile Profile `gorm:"ForeignKey:UserID;AssociationForeignKey:Refer"`
    +}
    +

    Has Many

    // User has many emails, UserID is the foreign key
     type User struct {
    @@ -651,13 +731,38 @@ db.Model(&user).Related(&card)
     
     type Email struct {
         gorm.Model
    -    Email   string
    -    UserID  uint
    +    Email   string
    +    UserID  uint
     }
     
     db.Model(&user).Related(&emails)
     //// SELECT * FROM emails WHERE user_id = 111; // 111 is user's primary key
     
    +

    Specify Foreign Key

    +
    type Profile struct {
    +  gorm.Model
    +  Name      string
    +  UserRefer uint
    +}
    +
    +type User struct {
    +  gorm.Model
    +  Profile []Profiles `gorm:"ForeignKey:UserRefer"`
    +}
    +
    +

    Specify Foreign Key & Association Key

    +
    type Profile struct {
    +  gorm.Model
    +  Name   string
    +  UserID uint
    +}
    +
    +type User struct {
    +  gorm.Model
    +  Refer   string
    +  Profile []Profiles `gorm:"ForeignKey:UserID;AssociationForeignKey:Refer"`
    +}
    +

    Many To Many

    // User has and belongs to many languages, use `user_languages` as join table
     type User struct {
    @@ -667,31 +772,42 @@ db.Model(&user).Related(&emails)
     
     type Language struct {
         gorm.Model
    -    Name string
    +    Name string
     }
     
     db.Model(&user).Related(&languages)
     //// SELECT * FROM "languages" INNER JOIN "user_languages" ON "user_languages"."language_id" = "languages"."id" WHERE "user_languages"."user_id" = 111
     
    +

    Specify Foreign Key & Association Key

    +
    type CustomizePerson struct {
    +  IdPerson string             `gorm:"primary_key:true"`
    +  Accounts []CustomizeAccount `gorm:"many2many:PersonAccount;AssociationForeignKey:idAccount;ForeignKey:idPerson"`
    +}
    +
    +type CustomizeAccount struct {
    +  IdAccount string `gorm:"primary_key:true"`
    +  Name      string
    +}
    +

    Polymorphism

    Supports polymorphic has-many and has-one associations.

      type Cat struct {
    -    Id    int
    -    Name  string
    +    Id    int
    +    Name  string
         Toy   Toy `gorm:"polymorphic:Owner;"`
       }
     
       type Dog struct {
    -    Id   int
    -    Name string
    +    Id   int
    +    Name string
         Toy  Toy `gorm:"polymorphic:Owner;"`
       }
     
       type Toy struct {
    -    Id        int
    -    Name      string
    -    OwnerId   int
    -    OwnerType string
    +    Id        int
    +    Name      string
    +    OwnerId   int
    +    OwnerType string
       }
     

    Note: polymorphic belongs-to and many-to-many are explicitly NOT supported, and will throw errors.

    @@ -742,7 +858,7 @@ db.Model(&user).Association("Languages"< - + diff --git a/callbacks.html b/callbacks.html index bfaa1153..4c75ca1b 100644 --- a/callbacks.html +++ b/callbacks.html @@ -5,9 +5,8 @@ - - + + @@ -70,8 +69,8 @@ If any callback returns an error, gorm will stop future operations and rollback data-level="4" data-chapter-title="Callbacks" data-filepath="callbacks.md" - data-basepath="" - data-revision="Wed Mar 02 2016 08:53:45 GMT+0800 (CST)" + data-basepath="." + data-revision="Tue Mar 08 2016 12:18:21 GMT+0800 (CST)" data-innerlanguage=""> @@ -179,12 +178,12 @@ If any callback returns an error, gorm will stop future operations and rollback
  • - + 2.2. - Naming Conventions & Overriding + Conventions & Overriding @@ -482,12 +481,12 @@ If any callback returns an error, gorm will stop future operations and rollback
  • - + 5.4. - Composite Primary Key + Generic database interface sql.DB @@ -497,11 +496,26 @@ If any callback returns an error, gorm will stop future operations and rollback
  • - + 5.5. + Composite Primary Key + + + + + +
  • + +
  • + + + + + 5.6. + Overriding Logger @@ -533,11 +547,26 @@ If any callback returns an error, gorm will stop future operations and rollback
  • - + 6.1. + Architecture + + + + + +
  • + +
  • + + + + + 6.2. + Write Plugins @@ -586,7 +615,7 @@ If any callback returns an error, gorm will stop future operations and rollback

    - Callbacks + Callbacks

    @@ -601,43 +630,54 @@ If any callback returns an error, gorm will stop future operations and rollback -

    Callbacks are methods defined on the pointer of struct. -If any callback returns an error, gorm will stop future operations and rollback all changes.

    -

    Here is the list of all available callbacks: -(listed in the same order in which they will get called during the respective operations)

    +

    You could define callback methods to pointer of model struct, it will be called when creating, updating, querying, deleting, if any callback returns an error, gorm will stop future operations and rollback all changes.

    Creating An Object

    -
    BeforeSave
    +

    Available Callbacks for creating

    +
    // begin transaction
    +BeforeSave
     BeforeCreate
     // save before associations
    +// update timestamp `CreatedAt`, `UpdatedAt`
     // save self
    +// reload fields that have default value and its value is blank
     // save after associations
     AfterCreate
     AfterSave
    +// commit or rollback transaction
     

    Updating An Object

    -
    BeforeSave
    +

    Available Callbacks for updating

    +
    // begin transaction
    +BeforeSave
     BeforeUpdate
     // save before associations
    +// update timestamp `UpdatedAt`
     // save self
     // save after associations
     AfterUpdate
     AfterSave
    +// commit or rollback transaction
     
    -

    Destroying An Object

    -
    BeforeDelete
    +

    Deleting An Object

    +

    Available Callbacks for deleting

    +
    // begin transaction
    +BeforeDelete
     // delete self
     AfterDelete
    +// commit or rollback transaction
     
    -

    After Find

    +

    Querying An Object

    +

    Available Callbacks for querying

    // load data from database
    +// Preloading (edger loading)
     AfterFind
     
    -

    Example

    +

    Callback Examples

    func (u *User) BeforeUpdate() (err error) {
         if u.readonly() {
             err = errors.New("read only user")
    @@ -653,14 +693,17 @@ AfterFind
         return
     }
     
    -

    Save/delete operations in gorm are running in a transaction. -Changes made in that transaction are not visible unless it is commited. -So if you want to use those changes in your callbacks, you need to run your SQL in the same transaction. -For this Gorm supports passing transactions to callbacks like this:

    +

    Save/Delete operations in gorm are running in transactions, so changes made in that transaction are not visible unless it is commited. +If you want to use those changes in your callbacks, you need to run your SQL in the same transaction. So you need to pass current transaction to callbacks like this:

    func (u *User) AfterCreate(tx *gorm.DB) (err error) {
         tx.Model(u).Update("role", "admin")
         return
     }
    +
    +
    func (u *User) AfterCreate(scope *gorm.Scope) (err error) {
    +  scope.DB().Model(u).Update("role", "admin")
    +    return
    +}
     
    diff --git a/changelog.html b/changelog.html index 69d372b0..f634cafe 100644 --- a/changelog.html +++ b/changelog.html @@ -6,7 +6,7 @@ - + @@ -67,8 +67,8 @@ data-level="7" data-chapter-title="Change Log" data-filepath="changelog.md" - data-basepath="" - data-revision="Wed Mar 02 2016 08:53:45 GMT+0800 (CST)" + data-basepath="." + data-revision="Tue Mar 08 2016 12:18:21 GMT+0800 (CST)" data-innerlanguage=""> @@ -176,12 +176,12 @@
  • - + 2.2. - Naming Conventions & Overriding + Conventions & Overriding @@ -479,12 +479,12 @@
  • - + 5.4. - Composite Primary Key + Generic database interface sql.DB @@ -494,11 +494,26 @@
  • - + 5.5. + Composite Primary Key + + + + + +
  • + +
  • + + + + + 5.6. + Overriding Logger @@ -530,11 +545,26 @@
  • - + 6.1. + Architecture + + + + + +
  • + +
  • + + + + + 6.2. + Write Plugins @@ -583,7 +613,7 @@

    - Change Log + Change Log

    @@ -602,20 +632,21 @@
  • Updating will only update changed fields

    Most applications won't be affected, only when you are changing updating values in callbacks like BeforeSave, BeforeUpdate, you should use scope.SetColumn then, for example:

    func (user *User) BeforeUpdate(scope *gorm.Scope) {
    -  if pw, err := bcrypt.GenerateFromPassword(user.Password, 0); err == nil {
    +  if pw, err := bcrypt.GenerateFromPassword(user.Password, 0); err == nil {
         scope.SetColumn("EncryptedPassword", pw)
         // user.EncryptedPassword = pw  // doesn't work, won't including EncryptedPassword field when updating
       }
     }
     
  • -
  • Soft delete's default querying scope will only check deleted_at IS NULL

    -

    Before db.Find(&user) will generate querying SQL if user has DeletedAt field

    +
  • Soft Delete's default querying scope will only check deleted_at IS NULL

    +

    Before it will check deleted_at less than 0001-01-02 also to exclude blank time, like:

    SELECT * FROM users WHERE deleted_at IS NULL OR deleted_at <= '0001-01-02'

    -

    Now won't include blank time check <= '0001-01-02 anymore, will generat SQL like:

    +

    But it is not necessary if you are using type *time.Time for your model's DeletedAt, which has been used by gorm.Model, so below SQl is enough

    SELECT * FROM users WHERE deleted_at IS NULL

    -

    So your application's DeletedAt field should not use time.Time as data type, need to use pointer *time.Time or something like NullTime. -If you are using gorm.Model, then you are good, nothing need to be change, just make sure all records using blank time for deleted_at has been set to NULL, sample migration script:

    +

    So if you are using gorm.Model, then you are good, nothing need to be change, just make sure all records having blank time for deleted_at set to NULL, sample migrate script:

    +
  • +
    import (
         "github.com/jinzhu/now"
     )
    @@ -627,11 +658,17 @@ If you are using gorm.Model, then you are good, nothing need to be
       }
     }
     
    -
  • +
    • New ToDBName logic

      Before when GORM convert Struct, Field's name to db name, only those common initialisms from golint like HTTP, URI are special handled.

      -

      So field HTTP's db name will be http not h_t_t_p, but some other initialisms like SKU that not in golint, it's db name will be s_k_u, this release fixed this, any upper case initialisms should be converted correctly.

      -

      If your applications using some upper case initialisms which doesn't exist in golint, you need to overwrite generated column name with tag, like sql:"column:s_k_u", or alert your database's column name according to new logic

      +

      So field HTTP's db name will be http not h_t_t_p, but some other initialisms like SKU that not in golint, it's db name will be s_k_u, which looks ugly, this release fixed this, any upper case initialisms should be converted correctly.

      +

      If your applications using some upper case initialisms which doesn't exist in golint, you need to overwrite default column name with tag, like gorm:"column:s_k_u", or alert your database's column name according to new logic

      +
    • +
    • Error RecordNotFound has been renamed to ErrRecordNotFound

      +
    • +
    • mssql driver has been moved out from default drivers, import it with import _ "github.com/jinzhu/gorm/dialects/mssql"

      +
    • +
    • Hstore has been moved to package github.com/jinzhu/gorm/dialects/postgres

    diff --git a/curd.html b/curd.html index 42ce26d6..c13cd856 100644 --- a/curd.html +++ b/curd.html @@ -6,7 +6,7 @@ - + @@ -69,8 +69,8 @@ data-level="3" data-chapter-title="CRUD: Reading and Writing Data" data-filepath="curd.md" - data-basepath="" - data-revision="Wed Mar 02 2016 08:53:45 GMT+0800 (CST)" + data-basepath="." + data-revision="Tue Mar 08 2016 12:18:21 GMT+0800 (CST)" data-innerlanguage=""> @@ -178,12 +178,12 @@
  • - + 2.2. - Naming Conventions & Overriding + Conventions & Overriding @@ -481,12 +481,12 @@
  • - + 5.4. - Composite Primary Key + Generic database interface sql.DB @@ -496,11 +496,26 @@
  • - + 5.5. + Composite Primary Key + + + + + +
  • + +
  • + + + + + 5.6. + Overriding Logger @@ -532,11 +547,26 @@
  • - + 6.1. + Architecture + + + + + +
  • + +
  • + + + + + 6.2. + Write Plugins @@ -585,7 +615,7 @@

    - CRUD: Reading and Writing Data + CRUD: Reading and Writing Data

    @@ -688,13 +718,13 @@ db.Create(&user) //// COMMIT;
  • Create With Associations

    -

    Refer Associations for more details

    +

    Refer Associations for more details

    Default Values

    -

    You could defined default value in the sql tag, then the generated creating SQL will ignore these fields that including default value and its value is blank, and after inserted the record into databae, gorm will load those fields's value from database.

    +

    You could define default value in the gorm tag, then the inserting SQL will ignore these fields that has default value and its value is blank, and after insert the record into databae, gorm will load those fields's value from database.

    type Animal struct {
    -    ID   int64
    -    Name string `sql:"default:'galeone'"`
    -    Age  int64
    +    ID   int64
    +    Name string `gorm:"default:'galeone'"`
    +    Age  int64
     }
     
     var animal = Animal{Age: 99, Name: ""}
    @@ -704,10 +734,10 @@ db.Create(&animal)
     // animal.Name => 'galeone'
     

    Setting Primary Key In Callbacks

    -

    If you want to set primary key in BeforeCreate callback, you could use scope.SetColumn, for example:

    +

    If you want to set primary field's value in BeforeCreate callback, you could use scope.SetColumn, for example:

    func (user *User) BeforeCreate(scope *gorm.Scope) error {
       scope.SetColumn("ID", uuid.New())
    -  return nil
    +  return nil
     }
     

    Extra Creating option

    @@ -716,11 +746,11 @@ db.Set("gorm:insert_option", // INSERT INTO products (name, code) VALUES ("name", "code") ON CONFLICT;
  • Query

    -
    // Get the first record
    +
    // Get first record, order by primary key
     db.First(&user)
     //// SELECT * FROM users ORDER BY id LIMIT 1;
     
    -// Get the last record
    +// Get last record, order by primary key
     db.Last(&user)
     //// SELECT * FROM users ORDER BY id DESC LIMIT 1;
     
    @@ -733,7 +763,7 @@ db.First(&user, 10)
     //// SELECT * FROM users WHERE id = 10;
     

    Query With Where (Plain SQL)

    -
    // Get the first matched record
    +
    // Get first matched record
     db.Where("name = ?", "jinzhu").First(&user)
     //// SELECT * FROM users WHERE name = 'jinzhu' limit 1;
     
    @@ -744,13 +774,13 @@ db.Where("name = ?", "name <> ?", "jinzhu").Find(&users)
     
     // IN
    -db.Where("name in (?)", []string{"jinzhu", "jinzhu 2"}).Find(&users)
    +db.Where("name in (?)", []string{"jinzhu", "jinzhu 2"}).Find(&users)
     
     // LIKE
     db.Where("name LIKE ?", "%jin%").Find(&users)
     
     // AND
    -db.Where("name = ? and age >= ?", "jinzhu", "22").Find(&users)
    +db.Where("name = ? AND age >= ?", "jinzhu", "22").Find(&users)
     
     // Time
     db.Where("updated_at > ?", lastWeek).Find(&users)
    @@ -758,16 +788,17 @@ db.Where("updated_at > ?", lastWee
     db.Where("created_at BETWEEN ? AND ?", lastWeek, today).Find(&users)
     

    Query With Where (Struct & Map)

    +

    NOTE When query with struct, GORM will only query with those fields has value

    // Struct
     db.Where(&User{Name: "jinzhu", Age: 20}).First(&user)
     //// SELECT * FROM users WHERE name = "jinzhu" AND age = 20 LIMIT 1;
     
     // Map
    -db.Where(map[string]interface{}{"name": "jinzhu", "age": 20}).Find(&users)
    +db.Where(map[string]interface{}{"name": "jinzhu", "age": 20}).Find(&users)
     //// SELECT * FROM users WHERE name = "jinzhu" AND age = 20;
     
     // Slice of primary keys
    -db.Where([]int64{20, 21, 22}).Find(&users)
    +db.Where([]int64{20, 21, 22}).Find(&users)
     //// SELECT * FROM users WHERE id IN (20, 21, 22);
     

    Query With Not

    @@ -775,14 +806,14 @@ db.Where([]int64{20 //// SELECT * FROM users WHERE name <> "jinzhu" LIMIT 1; // Not In -db.Not("name", []string{"jinzhu", "jinzhu 2"}).Find(&users) +db.Not("name", []string{"jinzhu", "jinzhu 2"}).Find(&users) //// SELECT * FROM users WHERE name NOT IN ("jinzhu", "jinzhu 2"); // Not In slice of primary keys -db.Not([]int64{1,2,3}).First(&user) +db.Not([]int64{1,2,3}).First(&user) //// SELECT * FROM users WHERE id NOT IN (1,2,3); -db.Not([]int64{}).First(&user) +db.Not([]int64{}).First(&user) //// SELECT * FROM users; // Plain SQL @@ -794,6 +825,7 @@ db.Not(User{Name: "jinzhu"}).First(&a //// SELECT * FROM users WHERE name <> "jinzhu";

    Query With Inline Condition

    +

    NOTE When query with primary key, you should carefully check the value you passed is a valid primary key, to avoid SQL injection

    // Get by primary key
     db.First(&user, 23)
     //// SELECT * FROM users WHERE id = 23 LIMIT 1;
    @@ -810,7 +842,7 @@ db.Find(&users, User{Age: 20})
     //// SELECT * FROM users WHERE age = 20;
     
     // Map
    -db.Find(&users, map[string]interface{}{"age": 20})
    +db.Find(&users, map[string]interface{}{"age": 20})
     //// SELECT * FROM users WHERE age = 20;
     

    Query With Or

    @@ -822,7 +854,7 @@ db.Where("name = 'jinzhu'") //// SELECT * FROM users WHERE name = 'jinzhu' OR name = 'jinzhu 2'; // Map -db.Where("name = 'jinzhu'").Or(map[string]interface{}{"name": "jinzhu 2"}).Find(&users) +db.Where("name = 'jinzhu'").Or(map[string]interface{}{"name": "jinzhu 2"}).Find(&users)

    Query Chains

    Gorm has a chainable API, you could use it like this

    @@ -837,7 +869,7 @@ db.Set("gorm:query_option", //// SELECT * FROM users WHERE id = 10 FOR UPDATE;

    FirstOrInit

    -

    Get the first matched record, or initialize a record with search conditions.

    +

    Get first matched record, or initalize a new one with given conditions (only works with struct, map conditions)

    // Unfound
     db.FirstOrInit(&user, User{Name: "non_existing"})
     //// user -> User{Name: "non_existing"}
    @@ -845,17 +877,17 @@ db.FirstOrInit(&user, User{Name: "non_existin
     // Found
     db.Where(User{Name: "Jinzhu"}).FirstOrInit(&user)
     //// user -> User{Id: 111, Name: "Jinzhu", Age: 20}
    -db.FirstOrInit(&user, map[string]interface{}{"name": "jinzhu"})
    +db.FirstOrInit(&user, map[string]interface{}{"name": "jinzhu"})
     //// user -> User{Id: 111, Name: "Jinzhu", Age: 20}
     

    Attrs

    -

    Ignore some values when searching, but use them to initialize the struct if record is not found.

    +

    Initalize struct with argument if record haven't been found

    // Unfound
     db.Where(User{Name: "non_existing"}).Attrs(User{Age: 20}).FirstOrInit(&user)
     //// SELECT * FROM USERS WHERE name = 'non_existing';
     //// user -> User{Name: "non_existing", Age: 20}
     
    -db.Where(User{Name: "noexisting_user"}).Attrs("age", 20).FirstOrInit(&user)
    +db.Where(User{Name: "non_existing"}).Attrs("age", 20).FirstOrInit(&user)
     //// SELECT * FROM USERS WHERE name = 'non_existing';
     //// user -> User{Name: "non_existing", Age: 20}
     
    @@ -865,7 +897,7 @@ db.Where(User{Name: "Jinzhu"}).Attrs(
     //// user -> User{Id: 111, Name: "Jinzhu", Age: 20}
     

    Assign

    -

    Ignore some values when searching, but assign it to the result regardless it is found or not.

    +

    Assign argument to results regardless it is found or not

    // Unfound
     db.Where(User{Name: "non_existing"}).Assign(User{Age: 20}).FirstOrInit(&user)
     //// user -> User{Name: "non_existing", Age: 20}
    @@ -876,7 +908,7 @@ db.Where(User{Name: "Jinzhu"}).Assign
     //// user -> User{Id: 111, Name: "Jinzhu", Age: 30}
     

    FirstOrCreate

    -

    Get the first matched record, or create with search conditions.

    +

    Get first matched record, or create a new one with given conditions (only works with struct, map conditions)

    // Unfound
     db.FirstOrCreate(&user, User{Name: "non_existing"})
     //// INSERT INTO "users" (name) VALUES ("non_existing");
    @@ -887,7 +919,7 @@ db.Where(User{Name: "Jinzhu"}).FirstO
     //// user -> User{Id: 111, Name: "Jinzhu"}
     

    Attrs

    -

    Ignore some values when searching, but use them to create the struct if record is not found. like FirstOrInit

    +

    Assgin struct with argument if record haven't been found

    // Unfound
     db.Where(User{Name: "non_existing"}).Attrs(User{Age: 20}).FirstOrCreate(&user)
     //// SELECT * FROM users WHERE name = 'non_existing';
    @@ -900,7 +932,7 @@ db.Where(User{Name: "jinzhu"}).Attrs(
     //// user -> User{Id: 111, Name: "jinzhu", Age: 20}
     

    Assign

    -

    Ignore some values when searching, but assign it to the record regardless it is found or not, then save back to database. like FirstOrInit

    +

    Assign it to the record regardless it is found or not, and save back to database.

    // Unfound
     db.Where(User{Name: "non_existing"}).Assign(User{Age: 20}).FirstOrCreate(&user)
     //// SELECT * FROM users WHERE name = 'non_existing';
    @@ -914,16 +946,18 @@ db.Where(User{Name: "jinzhu"}).Assign
     //// user -> User{Id: 111, Name: "jinzhu", Age: 30}
     

    Select

    +

    Specify fields that you want to retrieve from database, by default, will select all fields;

    db.Select("name, age").Find(&users)
     //// SELECT name, age FROM users;
     
    -db.Select([]string{"name", "age"}).Find(&users)
    +db.Select([]string{"name", "age"}).Find(&users)
     //// SELECT name, age FROM users;
     
     db.Table("users").Select("COALESCE(age,?)", 42).Rows()
     //// SELECT COALESCE(age,'42') FROM users;
     

    Order

    +

    Specify order when retrieve records from database, set reorder to true to overwrite defined conditions

    db.Order("age desc, name").Find(&users)
     //// SELECT * FROM users ORDER BY age desc, name;
     
    @@ -932,29 +966,32 @@ db.Order("age desc").Order(//// SELECT * FROM users ORDER BY age desc, name;
     
     // ReOrder
    -db.Order("age desc").Find(&users1).Order("age", true).Find(&users2)
    +db.Order("age desc").Find(&users1).Order("age", true).Find(&users2)
     //// SELECT * FROM users ORDER BY age desc; (users1)
     //// SELECT * FROM users ORDER BY age; (users2)
     

    Limit

    +

    Specify the number of records to be retrieved

    db.Limit(3).Find(&users)
     //// SELECT * FROM users LIMIT 3;
     
     // Cancel limit condition with -1
    -db.Limit(10).Find(&users1).Limit(-1).Find(&users2)
    +db.Limit(10).Find(&users1).Limit(-1).Find(&users2)
     //// SELECT * FROM users LIMIT 10; (users1)
     //// SELECT * FROM users; (users2)
     

    Offset

    +

    Specify the number of records to skip before starting to return the records

    db.Offset(3).Find(&users)
     //// SELECT * FROM users OFFSET 3;
     
     // Cancel offset condition with -1
    -db.Offset(10).Find(&users1).Offset(-1).Find(&users2)
    +db.Offset(10).Find(&users1).Offset(-1).Find(&users2)
     //// SELECT * FROM users OFFSET 10; (users1)
     //// SELECT * FROM users; (users2)
     

    Count

    +

    Get how many records for a model

    db.Where("name = ?", "jinzhu").Or("name = ?", "jinzhu 2").Find(&users).Count(&count)
     //// SELECT * from USERS WHERE name = 'jinzhu' OR name = 'jinzhu 2'; (users)
     //// SELECT count(*) FROM users WHERE name = 'jinzhu' OR name = 'jinzhu 2'; (count)
    @@ -978,11 +1015,12 @@ rows, err := db.Table("orders").Selec
     
     type Result struct {
         Date  time.Time
    -    Total int64
    +    Total int64
     }
     db.Table("orders").Select("date(created_at) as date, sum(amount) as total").Group("date(created_at)").Having("sum(amount) > ?", 100).Scan(&results)
     

    Joins

    +

    Specify Joins conditions

    rows, err := db.Table("users").Select("users.name, emails.email").Joins("left join emails on emails.user_id = users.id").Rows()
     for rows.Next() {
         ...
    @@ -994,11 +1032,11 @@ db.Table("users").Select("JOIN emails ON emails.user_id = users.id AND emails.email = ?", "jinzhu@example.org").Joins("JOIN credit_cards ON credit_cards.user_id = users.id").Where("credit_cards.number = ?", "411111111111").Find(&user)
     

    Pluck

    -

    Get selected attributes as map

    -
    var ages []int64
    +

    Query single column from a model as a map, if you want to query multiple columns, you could use Scan

    +
    var ages []int64
     db.Find(&users).Pluck("age", &ages)
     
    -var names []string
    +var names []string
     db.Model(&User{}).Pluck("name", &names)
     
     db.Table("deleted_users").Pluck("name", &names)
    @@ -1009,8 +1047,8 @@ db.Select("name, age").Find(&user
     

    Scan

    Scan results into another struct.

    type Result struct {
    -    Name string
    -    Age  int
    +    Name string
    +    Age  int
     }
     
     var result Result
    @@ -1020,6 +1058,7 @@ db.Table("users").Select("SELECT name, age FROM users WHERE name = ?", 3).Scan(&result)
     

    Scopes

    +

    Pass current database connection to func(*DB) *DB, which could be used to add conditions dynamically

    func AmountGreaterThan1000(db *gorm.DB) *gorm.DB {
         return db.Where("amount > ?", 1000)
     }
    @@ -1032,7 +1071,7 @@ db.Raw("SELECT name, age FROM users WHERE name =
         return db.Where("pay_mode_sign = ?", "C")
     }
     
    -func OrderStatus(status []string) func (db *gorm.DB) *gorm.DB {
    +func OrderStatus(status []string) func (db *gorm.DB) *gorm.DB {
         return func (db *gorm.DB) *gorm.DB {
             return db.Scopes(AmountGreaterThan1000).Where("status in (?)", status)
         }
    @@ -1044,7 +1083,7 @@ db.Scopes(AmountGreaterThan1000, PaidWithCreditCard).Find(&orders)
     db.Scopes(AmountGreaterThan1000, PaidWithCod).Find(&orders)
     // Find all COD orders and amount greater than 1000
     
    -db.Scopes(OrderStatus([]string{"paid", "shipped"})).Find(&orders)
    +db.Scopes(OrderStatus([]string{"paid", "shipped"})).Find(&orders)
     // Find all paid, shipped orders
     

    Specifying The Table Name

    @@ -1076,12 +1115,11 @@ db.Model(&user).Update("name", //// UPDATE users SET name='hello', updated_at='2013-11-17 21:34:10' WHERE id=111; // Update single attribute with combined conditions -db.Model(&user).Where("active = ?", true).Update("name", "hello") +db.Model(&user).Where("active = ?", true).Update("name", "hello") //// UPDATE users SET name='hello', updated_at='2013-11-17 21:34:10' WHERE id=111 AND active=true; - // Update multiple attributes with `map`, will only update those changed fields -db.Model(&user).Updates(map[string]interface{}{"name": "hello", "age": 18, "actived": false}) +db.Model(&user).Updates(map[string]interface{}{"name": "hello", "age": 18, "actived": false}) //// UPDATE users SET name='hello', age=18, actived=false, updated_at='2013-11-17 21:34:10' WHERE id=111; // Update multiple attributes with `struct`, will only update those changed & non blank fields @@ -1090,18 +1128,18 @@ db.Model(&user).Updates(User{Name: "hello&quo // WARNING when update with struct, GORM will only update those fields that with non blank value // For below Update, nothing will be updated as "", 0, false are blank values of their types -db.Model(&user).Updates(User{Name: "", Age: 0, Actived: false}) +db.Model(&user).Updates(User{Name: "", Age: 0, Actived: false})

    Update Selected Fields

    If you only want to update or ignore some fields when updating, you could use Select, Omit

    -
    db.Model(&user).Select("name").Updates(map[string]interface{}{"name": "hello", "age": 18, "actived": false})
    +
    db.Model(&user).Select("name").Updates(map[string]interface{}{"name": "hello", "age": 18, "actived": false})
     //// UPDATE users SET name='hello', updated_at='2013-11-17 21:34:10' WHERE id=111;
     
    -db.Model(&user).Omit("name").Updates(map[string]interface{}{"name": "hello", "age": 18, "actived": false})
    +db.Model(&user).Omit("name").Updates(map[string]interface{}{"name": "hello", "age": 18, "actived": false})
     //// UPDATE users SET age=18, actived=false, updated_at='2013-11-17 21:34:10' WHERE id=111;
     

    Update Changed Fields Without Callbacks

    -

    Updating operations above will invoke BeforeUpdate, AfterUpdate, Update UpdatedAt timestamp, Save Associations callbacks, if you don't call them, you could use UpdateColumn, UpdateColumns

    +

    Above updating operations will perform the mdoel's BeforeUpdate, AfterUpdate method, update its UpdatedAt timestamp, save its Associations when updaing, if you don't want to call them, you could use UpdateColumn, UpdateColumns

    // Update single attribute, similar with `Update`
     db.Model(&user).UpdateColumn("name", "hello")
     //// UPDATE users SET name='hello' WHERE id = 111;
    @@ -1112,7 +1150,7 @@ db.Model(&user).UpdateColumns(User{Name: "hel
     

    Batch Updates

    Callbacks won't run when do batch updates

    -
    db.Table("users").Where("id IN (?)", []int{10, 11}).Updates(map[string]interface{}{"name": "hello", "age": 18})
    +
    db.Table("users").Where("id IN (?)", []int{10, 11}).Updates(map[string]interface{}{"name": "hello", "age": 18})
     //// UPDATE users SET name='hello', age=18 WHERE id IN (10, 11);
     
     // Update with struct only works with none zero values, or use map[string]interface{}
    @@ -1126,7 +1164,7 @@ db.Model(User{}).Updates(User{Name: "hello"<
     
    DB.Model(&product).Update("price", gorm.Expr("price * ? + ?", 2, 100))
     //// UPDATE "products" SET "price" = price * '2' + '100', "updated_at" = '2013-11-17 21:34:10' WHERE "id" = '2';
     
    -DB.Model(&product).Updates(map[string]interface{}{"price": gorm.Expr("price * ? + ?", 2, 100)})
    +DB.Model(&product).Updates(map[string]interface{}{"price": gorm.Expr("price * ? + ?", 2, 100)})
     //// UPDATE "products" SET "price" = price * '2' + '100', "updated_at" = '2013-11-17 21:34:10' WHERE "id" = '2';
     
     DB.Model(&product).UpdateColumn("quantity", gorm.Expr("quantity - ?", 1))
    @@ -1138,7 +1176,7 @@ DB.Model(&product).Where("quantity > 1&quo
     

    Change Updating Values In Callbacks

    If you want to change updating values in callbacks using BeforeUpdate, BeforeSave, you could use scope.SetColumn, for example:

    func (user *User) BeforeSave(scope *gorm.Scope) (err error) {
    -  if pw, err := bcrypt.GenerateFromPassword(user.Password, 0); err == nil {
    +  if pw, err := bcrypt.GenerateFromPassword(user.Password, 0); err == nil {
         scope.SetColumn("EncryptedPassword", pw)
       }
     }
    @@ -1149,6 +1187,7 @@ db.Model(&user).Set("gorm:update_option", "OPTION (OPTIMIZE F
     //// UPDATE users SET name='hello', updated_at = '2013-11-17 21:34:10' WHERE id=111 OPTION (OPTIMIZE FOR UNKNOWN);
     

    Delete

    +

    WARNING When delete a record, you need to ensure it's primary field has value, and GORM will use the primary key to delete the record, if primary field's blank, GORM will delete all records for the model

    // Delete an existing record
     db.Delete(&email)
     //// DELETE from emails where id=10;
    @@ -1158,12 +1197,15 @@ db.Set("gorm:delete_option", //// DELETE from emails where id=10 OPTION (OPTIMIZE FOR UNKNOWN);
     

    Batch Delete

    +

    Delete all matched records

    db.Where("email LIKE ?", "%jinzhu%").Delete(Email{})
     //// DELETE from emails where email LIKE "%jinhu%";
    +
    +db.Delete(Email{}, "email LIKE ?", "%jinzhu%")
    +//// DELETE from emails where email LIKE "%jinhu%";
     

    Soft Delete

    -

    If struct has DeletedAt field, it will get soft delete ability automatically! -Then it won't be deleted from database permanently when call Delete.

    +

    If model has DeletedAt field, it will get soft delete ability automatically! then it won't be deleted from database permanently when call Delete, but only set field DeletedAt's value to current time

    db.Delete(&user)
     //// UPDATE users SET deleted_at="2013-10-29 10:23" WHERE id = 111;
     
    diff --git a/database.html b/database.html
    index afe95674..0d2f6cd4 100644
    --- a/database.html
    +++ b/database.html
    @@ -5,8 +5,8 @@
             
             
             
    -        
    -        
    +        
    +        
             
             
             
    @@ -69,8 +69,8 @@
         data-level="1"
         data-chapter-title="Database"
         data-filepath="database.md"
    -    data-basepath=""
    -    data-revision="Wed Mar 02 2016 08:53:45 GMT+0800 (CST)"
    +    data-basepath="."
    +    data-revision="Tue Mar 08 2016 12:18:21 GMT+0800 (CST)"
         data-innerlanguage="">
         
     
    @@ -178,12 +178,12 @@
         
             
  • - + 2.2. - Naming Conventions & Overriding + Conventions & Overriding @@ -481,12 +481,12 @@
  • - + 5.4. - Composite Primary Key + Generic database interface sql.DB @@ -496,11 +496,26 @@
  • - + 5.5. + Composite Primary Key + + + + + +
  • + +
  • + + + + + 5.6. + Overriding Logger @@ -532,11 +547,26 @@
  • - + 6.1. + Architecture + + + + + +
  • + +
  • + + + + + 6.2. + Write Plugins @@ -585,7 +615,7 @@

    - Database + Database

    @@ -605,7 +635,6 @@
  • Write Dialect for unsupported databases
  • -
  • Generic database object *sql.DB
  • Migration

    Connecting to a database

    +

    When connect to a database, you need to import the database's driver first, for example:

    +
    import _ "github.com/go-sql-driver/mysql"
    +
    +

    GORM has wrapped some drivers, for easier to remember the import path, so you could import the mysql driver with

    +
    import _ "github.com/jinzhu/gorm/dialects/mysql"
    +// import _ "github.com/jinzhu/gorm/dialects/postgres"
    +// import _ "github.com/jinzhu/gorm/dialects/sqlite"
    +// import _ "github.com/jinzhu/gorm/dialects/mssql"
    +

    MySQL

    -

    NOTE don't forgot params parseTime to handle data type time.Time, more support parameters

    +

    NOTE in order to handle time.Time you need to include parseTime as param more supported parameters

    import (
         "github.com/jinzhu/gorm"
    -    _ "github.com/go-sql-driver/mysql"
    +    _ "github.com/jinzhu/gorm/dialects/mysql"
     )
    +
     func main() {
       db, err := gorm.Open("mysql", "user:password@/dbname?charset=utf8&parseTime=True&loc=Local")
     }
    @@ -633,8 +672,9 @@
     

    PostgreSQL

    import (
         "github.com/jinzhu/gorm"
    -    _ "github.com/lib/pq"
    +    _ "github.com/jinzhu/gorm/dialects/postgres"
     )
    +
     func main() {
       db, err := gorm.Open("postgres", "user=gorm dbname=gorm sslmode=disable")
     }
    @@ -642,33 +682,20 @@
     

    Sqlite3

    import (
         "github.com/jinzhu/gorm"
    -    _ "github.com/mattn/go-sqlite3"
    +    _ "github.com/jinzhu/gorm/dialects/sqlite"
     )
    +
     func main() {
       db, err := gorm.Open("sqlite3", "/tmp/gorm.db")
     }
     

    Write Dialect for unsupported databases

    -

    GORM officially support above databases, for unsupported databaes, you could write a dialect for that.

    +

    GORM officially support above databases, but you could write a dialect for those unsupported databaes,

    Refer: https://github.com/jinzhu/gorm/blob/master/dialect.go

    -

    Generic database object *sql.DB

    -

    *sql.DB

    -
    // Get generic database object *sql.DB to use its functions
    -db.DB()
    -
    -// Connection Pool
    -db.DB().SetMaxIdleConns(10)
    -db.DB().SetMaxOpenConns(100)
    -
    -  // Ping
    -db.DB().Ping()
    -

    Migration

    -

    Auto Migration

    Automatically migrate your schema, to keep your schema update to date

    -

    WARNING AutoMigrate will ONLY create tables, columns and indexes if doesn't exist, -WON'T change existing column's type or delete unused columns to protect your data

    +

    WARNING AutoMigrate will ONLY create tables, missing columns and missing indexes, WON'T change existing column's type or delete unused columns to protect your data

    db.AutoMigrate(&User{})
     
     db.AutoMigrate(&User{}, &Product{}, &Order{})
    @@ -677,28 +704,37 @@ db.AutoMigrate(&User{}, &Product{}, &Order{})
     db.Set("gorm:table_options", "ENGINE=InnoDB").AutoMigrate(&User{})
     

    Has Table

    -
    // Check if model `User`'s table has been created or not
    +
    // Check model `User`'s table exists or not
     db.HasTable(&User{})
     
     // Check table `users` exists or not
     db.HasTable("users")
     

    Create Table

    -
    db.CreateTable(&User{})
    +
    // Create table for model `User`
    +db.CreateTable(&User{})
     
    -db.Set("gorm:table_options", "ENGINE=InnoDB").CreateTable(&User{})
     // will append "ENGINE=InnoDB" to the SQL statement when creating table `users`
    +db.Set("gorm:table_options", "ENGINE=InnoDB").CreateTable(&User{})
     

    Drop table

    -
    db.DropTable(&User{})
    +
    // Drop model `User`'s table
    +db.DropTable(&User{})
    +
    +// Drop table `users
    +db.DropTable("users")
    +
    +// Drop model's `User`'s table and table `products`
    +db.DropTableIfExists(&User{}, "products")
     

    ModifyColumn

    -

    Change column's type

    -
    // change column description's data type to `text` for model `User`'s table
    +

    Modify column's type to given value

    +
    // change column description's data type to `text` for model `User`
     db.Model(&User{}).ModifyColumn("description", "text")
     

    DropColumn

    -
    db.Model(&User{}).DropColumn("description")
    +
    // Drop column description from model `User`
    +db.Model(&User{}).DropColumn("description")
     

    Add Foreign Key

    // Add foreign key
    @@ -709,16 +745,16 @@ db.Model(&User{}).ModifyColumn("description&q
     db.Model(&User{}).AddForeignKey("city_id", "cities(id)", "RESTRICT", "RESTRICT")
     

    Indexes

    -
    // Add index
    +
    // Add index for columns `name` with given name `idx_user_name`
     db.Model(&User{}).AddIndex("idx_user_name", "name")
     
    -// Multiple column index
    +// Add index for columns `name`, `age` with given name `idx_user_name_age`
     db.Model(&User{}).AddIndex("idx_user_name_age", "name", "age")
     
     // Add unique index
     db.Model(&User{}).AddUniqueIndex("idx_user_name", "name")
     
    -// Multiple column unique index
    +// Add unique index for multiple columns
     db.Model(&User{}).AddUniqueIndex("idx_user_name_age", "name", "age")
     
     // Remove index
    diff --git a/development.html b/development.html
    index a83be702..7afaa845 100644
    --- a/development.html
    +++ b/development.html
    @@ -5,8 +5,8 @@
             
             
             
    -        
    -        
    +        
    +        
             
             
             
    @@ -69,8 +69,8 @@
         data-level="6"
         data-chapter-title="Development"
         data-filepath="development.md"
    -    data-basepath=""
    -    data-revision="Wed Mar 02 2016 08:53:45 GMT+0800 (CST)"
    +    data-basepath="."
    +    data-revision="Tue Mar 08 2016 12:18:21 GMT+0800 (CST)"
         data-innerlanguage="">
         
     
    @@ -178,12 +178,12 @@
         
             
  • - + 2.2. - Naming Conventions & Overriding + Conventions & Overriding @@ -481,12 +481,12 @@
  • - + 5.4. - Composite Primary Key + Generic database interface sql.DB @@ -496,11 +496,26 @@
  • - + 5.5. + Composite Primary Key + + + + + +
  • + +
  • + + + + + 5.6. + Overriding Logger @@ -532,11 +547,26 @@
  • - + 6.1. + Architecture + + + + + +
  • + +
  • + + + + + 6.2. + Write Plugins @@ -585,7 +615,7 @@

    - Development + Development

    @@ -595,34 +625,38 @@
    -

    Gorm Development

    +

    Development

    • Architecture
    • -
    • Callbacks

      Architecture

      -

      The most notable component of Gorm isgorm.DB, which hold database connection. It could be initialized like this:

      -
      db, err := gorm.Open("postgres", "user=gorm dbname=gorm sslmode=disable")
      -

      Gorm has chainable API, gorm.DB is the bridge of chains, it save related information and pass it to the next chain.

      -

      Lets use below code to explain how it works:

      -
      db.Where("name = ?", "jinzhu").Find(&users)
      +

      Gorm use chainable API, *gorm.DB is the bridge of chains, for each chain API, it will create a new relation.

      +
      db, err := gorm.Open("postgres", "user=gorm dbname=gorm sslmode=disable")
       
      -// equivalent code
      -newdb := db.Where("name =?", "jinzhu")
      -newdb.Find(&user)
      -

      newdb is db's clone, in addition, it contains search conditions from the Where method. -Find is a query method, it creates a Scope instance, and pass it as argument to query callbacks.

      -

      There are four kinds of callbacks corresponds to sql's CURD: create callbacks, update callbacks, query callbacks, delete callbacks.

      -

      Callbacks

      +// create a new relation +db = db.Where("name = ?", "jinzhu") + +// create another new relation +db = db.Where("age = ?", 20) +
      +

      When we start to perform any operations, GROM will create a new *gorm.Scope instance based on current *gorm.DB

      +
      // perform a querying operation
      +db.First(&user)
      +
      +

      And based on current operation's type, it will call registered creating, updating, querying, deleting or row_querying callbacks to run the operation.

      +

      For above example, will call querying callbacks, refer Querying Callbacks

      +

      Write Plugins

      +

      GORM itself is powered by Callbacks, so you could fully customize GORM as you want

      Register a new callback

      func updateCreated(scope *Scope) {
           if scope.HasColumn("Created") {
      @@ -645,13 +679,28 @@ db.Callback().Query().After("gorm:query").Register("my_plugin:aft
       db.Callback().Delete().After("gorm:delete").Register("my_plugin:after_delete", afterDelete)
       db.Callback().Update().Before("gorm:update").Register("my_plugin:before_update", beforeUpdate)
       db.Callback().Create().Before("gorm:create").After("gorm:before_create").Register("my_plugin:before_create", beforeCreate)
      -

      Callback API

      -

      Gorm is powered by callbacks, so you could refer below links to learn how to write callbacks

      -

      Create callbacks

      -

      Update callbacks

      -

      Query callbacks

      -

      Delete callbacks

      -

      View https://github.com/jinzhu/gorm/blob/master/scope.go for all available API

      +
  • Pre-Defined Callbacks

    +

    GORM has defiend callbacks to perform its CRUD operations, check them out before start write your plugins

    + +

    Row Query callbacks will be called when run Row or Rows, by default there is no registered callbacks for it, you could register a new one like:

    +
    func updateTableName(scope *gorm.Scope) {
    +  scope.Search.Table(scope.TableName() + "_draft") // append `_draft` to table name
    +}
    +
    +db.Callback().RowQuery().Register("publish:update_table_name", updateTableName)
    +
    +

    View https://godoc.org/github.com/jinzhu/gorm to view all available API

    @@ -667,7 +716,7 @@ db.Callback().Create().Before("gorm:create").After("gorm:before_c - + diff --git a/documents/curd.md b/documents/curd.md index 8a0c5145..7f677a0f 100644 --- a/documents/curd.md +++ b/documents/curd.md @@ -255,7 +255,7 @@ db.Where(User{Name: "non_existing"}).Attrs(User{Age: 20}).FirstOrInit(&user) //// SELECT * FROM USERS WHERE name = 'non_existing'; //// user -> User{Name: "non_existing", Age: 20} -db.Where(User{Name: "noexisting_user"}).Attrs("age", 20).FirstOrInit(&user) +db.Where(User{Name: "non_existing"}).Attrs("age", 20).FirstOrInit(&user) //// SELECT * FROM USERS WHERE name = 'non_existing'; //// user -> User{Name: "non_existing", Age: 20} diff --git a/gitbook/CHANGES.md b/gitbook/CHANGES.md index 169f2749..9e09c970 100644 --- a/gitbook/CHANGES.md +++ b/gitbook/CHANGES.md @@ -13,7 +13,7 @@ This project adheres to [Semantic Versioning](http://semver.org/). - Markdown parser is now using CommonMark - Root folder for the book can be specified in a `.gitbook` file - Multi-lingual books share assets folder -- YAML front matter is parsed and page's description can be specified in it +- YAML front matter is parsed and can extend page's properties - Fix `uk` translation ## 2.6.7 diff --git a/gitbook/book.js b/gitbook/book.js new file mode 100644 index 00000000..3c165735 --- /dev/null +++ b/gitbook/book.js @@ -0,0 +1,24 @@ +var pkg = require('./package.json'); + +module.exports = { + // Documentation for GitBook is stored under "docs" + root: './docs', + title: 'GitBook Documentation', + + // Enforce use of GitBook v3 + gitbook: pkg.version, + + // Use the "official" theme + plugins: ['theme-official', 'sitemap'], + theme: 'official', + + variables: { + version: pkg.version + }, + + pluginsConfig: { + sitemap: { + hostname: 'https://docs.gitbook.com' + } + } +}; diff --git a/gitbook/docs/README.md b/gitbook/docs/README.md index 6febb432..8507cb2e 100644 --- a/gitbook/docs/README.md +++ b/gitbook/docs/README.md @@ -1,10 +1,12 @@ # GitBook Format Documentation -> This documentation is for GitBook version **{{ book.version }}** +This document aims to be a comprehensive guide to GitBook. It contains the full documentation for version **{{ book.version }}**. Help for GitBook.com specific questions can be found at [help.gitbook.com](https://help.gitbook.com). -GitBook is a command line tool (and Node.js library) for building beautiful books using GitHub/Git and Markdown (or AsciiDoc). Here is an example: [Learn Javascript](https://www.gitbook.com/book/GitBookIO/javascript). This documentation has been generated using GitBook. +### What is GitBook? -GitBook can output your content as a website ([customizable](themes.md) and [extensibles](plugins.md)) or as an ebook (PDF, ePub or Mobi). +GitBook is a command line tool (and Node.js library) for building beautiful books using GitHub/Git and Markdown (or AsciiDoc). . This documentation has been generated using GitBook. + +GitBook can output your content as a website ([customizable](themes/README.md) and [extensibles](plugins/README.md)) or as an ebook (PDF, ePub or Mobi). [GitBook.com](https://www.gitbook.com) is the online platform to create and host books built using the GitBook format. It offers hosting, collaboration features and an [easy-to-use editor](https://www.gitbook.com/editor). @@ -12,9 +14,11 @@ GitBook can output your content as a website ([customizable](themes.md) and [ext We're always happy to help out with your books or any other questions you might have. You can ask a question on the following contact form at [gitbook.com/contact](https://www.gitbook.com/contact) or signal an issue on [GitHub](https://github.com/GitbookIO/gitbook). +Check out the [GitBook Community Slack Channel](https://slack.gitbook.com), Stay updated by following [@GitBookIO](https://twitter.com/GitBookIO) on Twitter or [GitBook](https://www.facebook.com/gitbookcom) on Facebook. + ### FAQ -There are questions that are asked quite often, [check this out before creating an issue](faq.md). +Some questions are frequently asked. If you have a problem you should [check this out](faq.md) first. ### Contribute to this documentation diff --git a/gitbook/docs/asciidoc.md b/gitbook/docs/asciidoc.md index 6fe0dec5..d51ebcc6 100644 --- a/gitbook/docs/asciidoc.md +++ b/gitbook/docs/asciidoc.md @@ -8,11 +8,11 @@ Just like for markdown, GitBook is using some special files to extract structure ### README.adoc -This is the main entry of your book: the introduction. This file is **non optional**. +This is the main entry of your book: the introduction. This file is **required**. ### SUMMARY.adoc -This file defines the list of chapters and subchapters. Just like [for markdown](./pages.md), the `SUMMARY.adoc`'s format is simply a list of links, the name of the link is used as the chapter's name, and the target is a path to that chapter's file. +This file defines the list of chapters and subchapters. Just like in Markdown, the `SUMMARY.adoc`'s format is simply a list of links, the name of the link is used as the chapter's name, and the target is a path to that chapter's file. Subchapters are defined simply by adding a nested list to a parent chapter. @@ -51,10 +51,15 @@ This file is used to define terms. [See the glossary section](./lexicon.md). = Glossary == Magic -Sufficiently advanced technology, beyond the understanding of the observer producing a sense of wonder. + +Sufficiently advanced technology, beyond the understanding of the +observer producing a sense of wonder. == PHP -An atrocious language, invented for the sole purpose of inflicting pain and suffering amongst the programming wizards of this world. -``` + +A popular web programming language, used by many large websites such +as Facebook. Rasmus Lerdorf originally created PHP in 1994 to power +his personal homepage (PHP originally stood for "Personal Home Page" +but now stands for "PHP: Hypertext Preprocessor"). ``` diff --git a/gitbook/docs/config.md b/gitbook/docs/config.md index 060a9d0f..0b1e188f 100644 --- a/gitbook/docs/config.md +++ b/gitbook/docs/config.md @@ -1,20 +1,36 @@ # Configuration -GitBook allows you to customize your book using a flexible configuration. These options are specified in a `book.json` file. +GitBook allows you to customize your book using a flexible configuration. These options are specified in a `book.json` file. For authors unfamiliar with the JSON syntax, you can validate the syntax using tools such as [JSONlint](http://jsonlint.com). -### Configuration Settings +### General Settings | Variable | Description | | -------- | ----------- | +| `root` | Path to the root folder containing all the book's files, except `book.json`| | `title` | Title of your book, default value is extracted from the README. On GitBook.com this field is pre-filled. | | `description` | Description of your book, default value is extracted from the README. On GitBook.com this field is pre-filled. | | `author` | Name of the author. On GitBook.com this field is pre-filled. | | `isbn` | ISBN of the book | -| `language` | ISO code of the book's language, default value is `en` | -| `direction` | `rtl` or `ltr`, default value depends on the value of `language` | -| `gitbook` | [SemVer](http://semver.org) condition to validate which GitBook version should be used | -| `plugins` | List of plugins to load, See [the plugins section](plugins.md) for more details | -| `pluginsConfig` |Configuration for plugins, See [the plugins section](plugins.md) for more details | +| `language` | [ISO code](https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes) of the book's language, default value is `en` | +| `direction` | Text's direction. Can be `rtl` or `ltr`, the default value depends on the value of `language` | +| `gitbook` | Version of GitBook that should be used. Uses the [SemVer](http://semver.org) specification and accepts conditions like `">= 3.0.0"` | + +### Plugins + +Plugins and their configurations are specified in the `book.json`. See [the plugins section](plugins/README.md) for more details. + +| Variable | Description | +| -------- | ----------- | +| `plugins` | List of plugins to load | +| `pluginsConfig` |Configuration for plugins | + +### Theme + +Since version 3.0.0, GitBook can use themes. See [the theming section](themes/README.md) for more details. + +| Variable | Description | +| -------- | ----------- | +| `theme` | The theme to use for the book | ### PDF Options @@ -30,8 +46,3 @@ PDF Output can be customized using a set of options in the `book.json`: | `pdf.margin.bottom` | Bottom margin (default is `56`) | | `pdf.margin.right` | Right margin (default is `62`) | | `pdf.margin.left` | Left margin (default is `62`) | - -### Plugins - -Plugins and their configurations are specified in the `book.json`. See [the plugins section](plugins.md) for more details. - diff --git a/gitbook/docs/cover.md b/gitbook/docs/cover.md new file mode 100644 index 00000000..0f895fbc --- /dev/null +++ b/gitbook/docs/cover.md @@ -0,0 +1,21 @@ +# Cover + +Covers are used for all the ebook formats, and to make books more elegant on GitBook.com. + +To provide a cover, place a **cover.jpg** file at the root directory of your book. Adding a **cover_small.jpg** will specify a smaller version of the cover. The cover should be a **JPEG** file. + +### Best Sizes + +| | Big | Small | +|:-------------------:|:-----------:|:-----------------:| +| **File** | `cover.jpg` | `cover_small.jpg` | +| **Size(in pixels)** | 1800x2360 | 200x262 | + +### Guidelines + +A good cover respects the following guidelines: + +* No border +* Clearly visible book title +* Any important text should be visible in the small version + diff --git a/gitbook/docs/examples.md b/gitbook/docs/examples.md index 2dbaea85..a748c333 100644 --- a/gitbook/docs/examples.md +++ b/gitbook/docs/examples.md @@ -4,7 +4,7 @@ description: Real world examples of content published using GitBook. # Examples -More than 50,000 books have benn published on [GitBook.com](https://www.gitbook.com/explore). +More than 50,000 books have been published on [GitBook.com](https://www.gitbook.com/explore). ### Books @@ -17,11 +17,11 @@ More than 50,000 books have benn published on [GitBook.com](https://www.gitbook. ### Research Papers -- [TowCenter Collection](https://www.gitbook.com/@towcenter) by [Columbia Journalism School]() +- [TowCenter Collection](https://www.gitbook.com/@towcenter) by [Columbia Journalism School](http://www.journalism.columbia.edu/) - [Block Relaxation Algorithms in Statistics](https://www.gitbook.com/@jandeleeuw) by Jan de Leeuw ### Documentation -- [DuckDuckHack Documentation](http://docs.duckduckhack.com) by DuckDuckGo +- [DuckDuckHack Documentation](http://docs.duckduckhack.com) by [DuckDuckGo](https://duckduckgo.com/about) - This documentation diff --git a/gitbook/docs/faq.md b/gitbook/docs/faq.md index 42de8fea..57fdf3be 100644 --- a/gitbook/docs/faq.md +++ b/gitbook/docs/faq.md @@ -12,7 +12,7 @@ Any text editor should work! But we advise using the [GitBook Editor](https://ww #### Should I use an `.html` or `.md` extensions in my links? -You should always use `.md` extensions for your relative links, GitBook will automatically replace these links by the right value when the pointing file is referenced in the Table of Contents. +You should always use paths and the `.md` extensions when linking to your files, GitBook will automatically replace these paths by the appropriate link when the pointing file is referenced in the Table of Contents. #### Can I create a GitBook in a sub-directory of my repository? @@ -26,8 +26,8 @@ GitBook supports math equations and TeX thanks to plugins. There are currently 2 #### Can I customize/theme the output? -Yes, both the website and ebook outputs can be customized using [themes](themes.md). +Yes, both the website and ebook outputs can be customized using [themes](themes/README.md). #### Can I add interactive content (videos, etc)? -GitBook is very [extensible](plugins.md). You can use [existing plugins](https://plugins.gitbook.com) or create your own! +GitBook is very [extensible](plugins/README.md). You can use [existing plugins](https://plugins.gitbook.com) or create your own! diff --git a/gitbook/docs/languages.md b/gitbook/docs/languages.md index 9a866bec..6afbd4e7 100644 --- a/gitbook/docs/languages.md +++ b/gitbook/docs/languages.md @@ -3,6 +3,8 @@ GitBook supports building books written in multiple languages. Each language should be a sub-directory following the normal GitBook format, and a file named `LANGS.md` should be present at the root of the repository with the following format: ```markdown +# Languages + * [English](en/) * [French](fr/) * [Español](es/) @@ -12,4 +14,4 @@ GitBook supports building books written in multiple languages. Each language sho When a language book (ex: `en`) has a `book.json`, its configuration will extend the main configuration. -The only exception is plugins, plugins are specify globally relative to the book, and language specific plugins can not be specified. +The only exception is plugins, plugins are specified globally, and language specific plugins cannot be specified. diff --git a/gitbook/docs/lexicon.md b/gitbook/docs/lexicon.md index 5d356b44..57401395 100644 --- a/gitbook/docs/lexicon.md +++ b/gitbook/docs/lexicon.md @@ -1,6 +1,6 @@ # Glossary -Allows you to specify terms and their respective definitions to be displayed as annotations. Based on those terms, gitbook will automatically build an index and highlight those terms in pages. +Allows you to specify terms and their respective definitions to be displayed as annotations. Based on those terms, GitBook will automatically build an index and highlight those terms in pages. The `GLOSSARY.md` format is very simple : @@ -9,5 +9,6 @@ The `GLOSSARY.md` format is very simple : Definition for this term # Another term -With it's definition, this can contain bold text and all other kinds of inline markup ... -``` \ No newline at end of file +With it's definition, this can contain bold text +and all other kinds of inline markup ... +``` diff --git a/gitbook/docs/pages.md b/gitbook/docs/pages.md index 8ffa0546..6bff096e 100644 --- a/gitbook/docs/pages.md +++ b/gitbook/docs/pages.md @@ -1,12 +1,12 @@ # Pages and Summary -GitBook uses a `SUMMARY.md` file to define the structure of chapters and subchapters of the book. The `SUMMARY.md` file is used to generate the book's table of contents. - ### Summary -The `SUMMARY.md`'s format is simply a list of links, the title of the link is used as the chapter's title, and the target is a path to that chapter's file. +GitBook uses a `SUMMARY.md` file to define the structure of chapters and subchapters of the book. The `SUMMARY.md` file is used to generate the book's table of contents. -Subchapters are defined simply by adding a nested list to a parent chapter. +The format of `SUMMARY.md` is just a list of links. The link's title is used as the chapter's title, and the link's target is a path to that chapter's file. + +Adding a nested list to a parent chapter will create subchapters. ##### Simple example @@ -21,23 +21,50 @@ Subchapters are defined simply by adding a nested list to a parent chapter. * [Better tools for authors](part2/better_tools.md) ``` +Each chapter has a dedicated page (`part#/README.md`) and is split into subchapters. + ##### Example with subchapters split into parts ```markdown # Summary -### Part 1 +### Part I * [Writing is nice](part1/writing.md) * [GitBook is nice](part1/gitbook.md) -### Part 2 +### Part II * [We love feedback](part2/feedback_please.md) * [Better tools for authors](part2/better_tools.md) ``` -### Front Matter +Here, parts are just groups of chapters and do not have dedicated pages, but will show in the navigation for example. + +### Pages + +#### Markdown syntax + +Most of the files for GitBook use the Markdown syntax by default. GitBook infers your pages's structure from it. The syntax used is similar to the [GitHub Flavored Markdown syntax](https://guides.github.com/features/mastering-markdown/). One can also opt for the [AsciiDoc syntax](asciidoc.md). + +##### Example of a chapter file + +``` markdown +# Title of the chapter + +This is a great introduction. + +## Section 1 + +Markdown will dictates _most_ of your **book's structure** + +## Section 2 + +... + +``` + +#### Front Matter Pages can contain an optional front matter. It can be used to define the page's description. The front matter must be the first thing in the file and must take the form of valid YAML set between triple-dashed lines. Here is a basic example: @@ -47,4 +74,7 @@ description: This is a short description of my page --- # The content of my page +... ``` + +The front matter can define variables of your own, they will be added to the [page variable](templating/variables.md) so you can use them in your templating. diff --git a/gitbook/docs/plugins/README.md b/gitbook/docs/plugins/README.md new file mode 100644 index 00000000..4df62b8c --- /dev/null +++ b/gitbook/docs/plugins/README.md @@ -0,0 +1,28 @@ +# Plugins + +Plugins are the best way to extend GitBook functionalities (ebook and website). There exist plugins to do a lot of things: bring math formulas display support, track visits using Google Analytic, etc. + +### How to find plugins? + +Plugins can be easily searched on [plugins.gitbook.com](https://plugins.gitbook.com). + + +### How to install a plugin? + +Once you find a plugin that you want to install, you need to add it to your `book.json`: + +``` +{ + "plugins": ["myPlugin", "anotherPlugin"] +} +``` + +You can also specify a specific version using: `"myPlugin@0.3.1"`. By default GitBook will resolve the latest version of the plugin compatbile with the current GitBook version. + +### GitBook.com + +Plugins are automatically installed on [GitBook.com](https://www.gitbook.com). Locally, run `gitbook install` to install and prepare all plugins for your books. + +### Configuring plugins + +Plugins specific configurations are stored in `pluginsConfig`. You have to refer to the documentation of the plugin itself for details about the available options. diff --git a/gitbook/docs/plugins/create.md b/gitbook/docs/plugins/create.md new file mode 100644 index 00000000..3a5e3467 --- /dev/null +++ b/gitbook/docs/plugins/create.md @@ -0,0 +1,63 @@ +# Create and publish a plugin + +A GitBook plugin is a node package published on NPM that follow a defined convention. + +## Structure + +#### package.json + +The `package.json` is a manifest format for describing **Node.js modules**. GitBook plugins are built on top of Node modules. It declares dependencies, version, ownership, and other information required to run a plugin in GitBook. This document describes the schema in detail. + +``` +{ + "name": "gitbook-plugin-mytest", + "version": "0.0.1", + "description": "This is my first GitBook plugin", + "engines": { + "gitbook": ">1.x.x" + } +} +``` + +You can learn more about `package.json` from the [NPM documentation](https://docs.npmjs.com/files/package.json). + +The **package name** must begin with `gitbook-plugin-` and the **package engines** should contains `gitbook`. + +#### index.js + +The `index.js` is main entry point of your plugin runtime: + +```js +module.exports = { + // Map of hooks + hooks: {}, + + // Map of new blocks + blocks: {}, + + // Map of new filters + filters: {} +}; +``` + +## Publish your plugin + +GitBook plugins can be published on [NPM](https://www.npmjs.com). + +To publish a new plugin, you need to create an account on [npmjs.com](https://www.npmjs.com) then publish it from the command line: + +``` +$ npm publish +``` + +## Private plugins + +Private plugins can be hosted on GitHub and included using `git` urls: + +``` +{ + "plugins": [ + "myplugin@git+https://github.com/MyCompany/mygitbookplugin.git#1.0.0" + ] +} +``` diff --git a/gitbook/docs/plugins/hooks.md b/gitbook/docs/plugins/hooks.md new file mode 100644 index 00000000..e69de29b diff --git a/gitbook/docs/plugins/testing.md b/gitbook/docs/plugins/testing.md new file mode 100644 index 00000000..bf00da28 --- /dev/null +++ b/gitbook/docs/plugins/testing.md @@ -0,0 +1,22 @@ +# Testing your plugin + +### Testing your plugin locally + +Testing your plugin on your book before plushing it is possible using [npm link](https://docs.npmjs.com/cli/link). + +In the plugin's folder, run: + +``` +$ npm link +``` + +The nin your book's folder: + +``` +$ npm link gitbook-plugin- +``` + +### Unit testing on Travis + +[gitbook-tester](https://github.com/todvora/gitbook-tester) makes it easy to write **Node.js/Mocha** unit tests for your plugins. Using [Travis.org](https://travis.org), tests can be run on each commits/tags. + diff --git a/gitbook/docs/setup.md b/gitbook/docs/setup.md index 764dedd3..878fe57e 100644 --- a/gitbook/docs/setup.md +++ b/gitbook/docs/setup.md @@ -4,7 +4,7 @@ Getting GitBook installed and ready-to-go should only take a few minutes. ### GitBook.com -[GitBook.com](https://www.gitbook.com) is an easy to use solution to write, publish and host books. It's best and easier solution for publishing your content and collaborate on it. +[GitBook.com](https://www.gitbook.com) is an easy to use solution to write, publish and host books. It is the easiest solution for publishing your content and collaborating on it. It integrates well with the [GitBook Editor](https://www.gitbook.com/editor). @@ -12,7 +12,7 @@ It integrates well with the [GitBook Editor](https://www.gitbook.com/editor). ##### Requirements -Installing GitBook is easy and straight-forward, but there are a few requirements you’ll need to make sure your system has before you start. +Installing GitBook is easy and straightforward. Your system just needs to meet these two requirements: * NodeJS (v4.0.0 and above are adviced) * Windows, Linux, Unix, or Mac OS X @@ -25,7 +25,7 @@ The best way to install GitBook is via **NPM**. At the terminal prompt, simply r $ npm install gitbook-cli -g ``` -`gitbook-cli` is an utility to install and use multiple versions of GitBook on the same system. It will automatically install the required version to build a book. +`gitbook-cli` is an utility to install and use multiple versions of GitBook on the same system. It will automatically install the required version of GitBook to build a book. ##### Create a book @@ -43,7 +43,7 @@ Preview and serve your book using: $ gitbook serve ``` -or build the static website using: +Or build the static website using: ``` $ gitbook build @@ -51,7 +51,7 @@ $ gitbook build ##### Install pre-releases -`gitbook-cli` makes it easy to install and test other versions of GitBook with your book: +`gitbook-cli` makes it easy to download and install other versions of GitBook to test with your book: ``` $ gitbook fetch beta diff --git a/gitbook/docs/structure.md b/gitbook/docs/structure.md index 31b00f64..02b196e1 100644 --- a/gitbook/docs/structure.md +++ b/gitbook/docs/structure.md @@ -1,6 +1,8 @@ -# Directory structure +# Directory Structure -GitBook uses a very simple and obvious directory sttructure: +GitBook uses a simple directory structure. All Markdown/Asciidoc files listed in the [SUMMARY](pages.md) will be transformed as HTML. Multi-Lingual books have a slightly [different structure](languages.md). + +A basic GitBook usually looks something like this: ``` . @@ -21,19 +23,19 @@ An overview of what each of these does: | -------- | ----------- | | `book.json` | Stores [configuration](config.md) data (__optional__) | | `README.md` | Preface / Introduction for your book (**required**) | -| `SUMMARY.md` | Table of Contents | - +| `SUMMARY.md` | Table of Contents (See [Pages](pages.md)) (__optional__) | +| `GLOSSARY.md` | Lexicon / List of terms to annotate (See [Glossary](lexicon.md)) (__optional__) | ### Static files and Images -A static file is a file that is not listed in the `SUMMARY.md`. All static files, not [ignored](#ignore), are copied to the output. +A static file is a file that is not listed in the `SUMMARY.md`. All static files, unless [ignored](#ignore), are copied to the output. ### Ignoring files & folders {#ignore} GitBook will read the `.gitignore`, `.bookignore` and `.ignore` files to get a list of files and folders to skip. The format inside those files, follows the same convention as `.gitignore`: -```markdown +``` # This is a comment # Ignore the file test.md @@ -43,20 +45,22 @@ test.md bin/* ``` -### Project documentation / Sub-directory {#subdirectory} +### Project integration with subdirectory {#subdirectory} -For project documentaiton, it sometimes better to use a diretcory (like `docs/`) to store the prject's documentation. You can use a `.gitbook` file to indicate to GitBook in which folder the book is stored: +For software projects, you can use a subdirectory (like `docs/`) to store the book for the project's documentation. You can configure the [`root` option](config.md) to indicate the folder where GitBook can find the book's files: ``` . -├── .gitbook +├── book.json └── docs/ ├── README.md └── SUMMARY.md ``` -With `.gitbook` containing: +With `book.json` containing: ``` -./docs/ +{ + "root": "./docs" +} ``` diff --git a/gitbook/docs/templating/README.md b/gitbook/docs/templating/README.md new file mode 100644 index 00000000..963f9214 --- /dev/null +++ b/gitbook/docs/templating/README.md @@ -0,0 +1,89 @@ +# Templating + +GitBook uses the [Nunjucks templating language](https://mozilla.github.io/nunjucks/) to process pages and theme's templates. + +The Nunjucks syntax is very similar to **Jinja2** or **Liquid**. Its syntax uses surrounding braces `{ }` to mark content that needs to be processed. + +### Variables + +A variable looks up a value from the template context. If you wanted to simply display a variable, you would use the `{{ variable }}` syntax. For example : + +```twig +My name is {{ name }}, nice to meet you +``` + +This looks up username from the context and displays it. Variable names can have dots in them which lookup properties, just like JavaScript. You can also use the square bracket syntax. + +```twig +{{ foo.bar }} +{{ foo["bar"] }} +``` + +If a value is undefined, nothing is displayed. The following all output nothing if foo is undefined: `{{ foo }}`, `{{ foo.bar }}`, `{{ foo.bar.baz }}`. + +GitBook provides a set of [predefined variables](variables.md) from the context. + +### Filters + +Filters are essentially functions that can be applied to variables. They are called with a pipe operator (`|`) and can take arguments. + +```twig +{{ foo | title }} +{{ foo | join(",") }} +{{ foo | replace("foo", "bar") | capitalize }} +``` + +The third example shows how you can chain filters. It would display "Bar", by first replacing "foo" with "bar" and then capitalizing it. + +### Tags + +##### if + +`if` tests a condition and lets you selectively display content. It behaves exactly as JavaScript's `if` behaves. + +```twig +{% if variable %} + It is true +{% endif %} +``` + +If variable is defined and evaluates to true, "It is true" will be displayed. Otherwise, nothing will be. + +You can specify alternate conditions with `elif` and `else`: + +```twig +{% if hungry %} + I am hungry +{% elif tired %} + I am tired +{% else %} + I am good! +{% endif %} +``` + +##### for + +`for` iterates over arrays and dictionaries. + +```twig +# Chapters about GitBook + +{% for article in glossary.terms['gitbook'].articles %} +* [{{ article.title }}]({{ article.path }}) +{% endfor %} +``` + +##### set + +`set` lets you create/modify a variable. + +```twig +{% set softwareVersion = "1.0.0" %} + +Current version is {{ softwareVersion }}. +[Download it](website.com/download/{{ softwareVersion }}) +``` + +##### include and block + +Inclusion and inheritance is detailled in the [Content References](conrefs.md) section. diff --git a/gitbook/docs/templating/conrefs.md b/gitbook/docs/templating/conrefs.md new file mode 100644 index 00000000..252fec95 --- /dev/null +++ b/gitbook/docs/templating/conrefs.md @@ -0,0 +1,55 @@ +# Content References + +Content referencing (conref) is a convenient mechanism to reuse content from other files or books. + +### Importing local files + +Importing an other file's content is easy using the `include` tag: + +``` +{% include "./test.md" %} +``` + +### Importing file from another book + +GitBook can also resolve the include path by using git: + +``` +{% include "git+https://github.com/GitbookIO/documentation.git/README.md#0.0.1" %} +``` + +The format of git url is: + +``` +git+https://user@hostname/owner/project.git/file#commit-ish +``` + +The real git url part should finish with `.git`, the filename to import is extracted after the `.git` till the fragment of the url. + +The `commit-ish` can be any tag, sha, or branch which can be supplied as an argument to `git checkout`. The default is `master`. + +### Inheritance + +Template inheritance is a way to make it easy to reuse templates. When writing a template, you can define "blocks" that child templates can override. The inheritance chain can be as long as you like. + +`block` defines a section on the template and identifies it with a name. Base templates can specify blocks and child templates can override them with new content. + +``` +{% extends "./mypage.md" %} + +{% block pageContent %} +# This is my page content +{% endblock %} +``` + +In the file `mypage.md`, you should specify the blocks that can be extended: + +``` +{% block pageContent %} +This is the default content +{% endblock %} + +# License + +{% import "./LICENSE" %} +``` diff --git a/gitbook/docs/templating/variables.md b/gitbook/docs/templating/variables.md new file mode 100644 index 00000000..bca58801 --- /dev/null +++ b/gitbook/docs/templating/variables.md @@ -0,0 +1,64 @@ +# Variables + +The following is a reference of the available data during book's parsing and theme generation. + +### Global Variables + +| Variable | Description | +| -------- | ----------- | +| `book` | Book-wide information + configuration settings from `book.json`. See below for details. | +| `gitbook` | GitBook specific information | +| `page` | Current page specific information | +| `file` | File associated with the current page specific information | +| `summary` | Information about the table of contents | +| `languages` | List of languages for multi-lingual books | +| `config` | Dump of the `book.json` | + +### Book Variables + +| Variable | Description | +| -------- | ----------- | +| `book.[CONFIGURATION_DATA]` | All the `variables` set via the `book.json` are available through the book variable. | +| `book.language` | Current language for a multilingual book | + +### GitBook Variables + +| Variable | Description | +| -------- | ----------- | +| `gitbook.time` | The current time (when you run the `gitbook` command) . | +| `gitbook.version` | Version of GitBook used to generate the book | + +### File Variables + +| Variable | Description | +| -------- | ----------- | +| `file.path` | The path to the raw page | +| `file.mtime` | Modified Time. Last time the file was modified | +| `file.type` | The name of the parser used to compile this file (ex: `markdown`, `asciidoc`, etc) | + +#### Page Variables + +| Variable | Description | +| -------- | ----------- | +| `page.title` | Title of the page | +| `page.previous` | Previous page in the Table of Contents (can be `null`) | +| `page.next` | Next page in the Table of Contents (can be `null`) | +| `page.dir` | Text direction, based on configuration or detected from content (`rtl` or `ltr`) | + +#### Table of Contents Variables + +| Variable | Description | +| -------- | ----------- | +| `summary.parts` | List of sections in the Table of Contents | + +The whole table of contents (`SUMMARY.md`) can be accessed: + +`summary.parts[0].articles[0].title` will return the title of the first article. + +#### Multi-lingual book Variable + +| Variable | Description | +| -------- | ----------- | +| `languages.list` | List of languages for this book | + +Languages are defined by `{ id: 'en', title: 'English' }`. diff --git a/gitbook/docs/themes/README.md b/gitbook/docs/themes/README.md new file mode 100644 index 00000000..8a361099 --- /dev/null +++ b/gitbook/docs/themes/README.md @@ -0,0 +1,26 @@ +# Theming + +Since version 3.0.0, GitBook can be easily themed. Books are using by default the [theme-default](https://github.com/GitbookIO/theme-default). + +The theme to use is specified in the [book's configuration](config.md) using key `theme`. + +> **Caution**: Custom theming can block some plugins from working correctly. + +### Structure of a theme + +A theme is a folder containing templates and assets. All the templates are optionnal, since theme are always extending the default theme. + +| Folder | Description | +| -------- | ----------- | +| `_layouts` | Main folder containing all the templates | +| `_layouts/website/page.html` | Template for a normal page | +| `_layouts/ebook/page.html` | Template for a normal page during ebook generation (PDF< ePub, Mobi) | + + +### Extend/Customize theme in a book + +Authors can extend the templates of a theme directly from the book source (without creating an external theme). Templates will be resolved in the `_layouts` folder of the book first, then in + +### Publish a theme + +Themes are published as plugins ([see related docs](../plugins/README.md)) with a `theme-` prefix. For example the theme `awesome` will be loaded from the `theme-awesome` plugin, and then from the `gitbook-plugin-theme-awesome` NPM package. diff --git a/gitbook/lib/backbone/summary.js b/gitbook/lib/backbone/summary.js index 4ae34537..9c8a38d8 100644 --- a/gitbook/lib/backbone/summary.js +++ b/gitbook/lib/backbone/summary.js @@ -1,12 +1,10 @@ var _ = require('lodash'); var util = require('util'); -var url = require('url'); var location = require('../utils/location'); var error = require('../utils/error'); var BackboneFile = require('./file'); - /* An article represent an entry in the Summary. It's defined by a title, a reference, and children articles, @@ -33,13 +31,13 @@ function TOCArticle(def, parent) { // Path can be a relative path or an url, or nothing this.ref = def.path; - if (this.ref) { - var parts = url.parse(this.ref); + if (this.ref && !this.isExternal()) { + var parts = this.ref.split('#'); + this.path = (parts.length > 1? parts.slice(0, -1).join('#') : this.ref); + this.anchor = (parts.length > 1? '#' + _.last(parts) : null); - if (!this.isExternal()) { - this.path = parts.pathname; - this.anchor = parts.hash; - } + // Normalize path to remove ('./', etc) + this.path = location.normalize(this.path); } this.articles = _.map(def.articles || [], function(article) { @@ -264,6 +262,17 @@ Summary.prototype.find = function(filter) { return result; }; +// Flatten the list of articles +Summary.prototype.flatten = function() { + var result = []; + + this.walk(function(article) { + result.push(article); + }); + + return result; +}; + // Return the first TOCArticle for a specific page (or path) Summary.prototype.getArticle = function(page) { if (!_.isString(page)) page = page.path; diff --git a/gitbook/lib/book.js b/gitbook/lib/book.js index 400296e5..dac73f8d 100644 --- a/gitbook/lib/book.js +++ b/gitbook/lib/book.js @@ -13,6 +13,7 @@ var error = require('./utils/error'); var Promise = require('./utils/promise'); var Logger = require('./utils/logger'); var parsers = require('./parsers'); +var initBook = require('./init'); /* @@ -92,7 +93,27 @@ function Book(opts) { // List of page in the book this.pages = {}; + // Deprecation for templates + Object.defineProperty(this, 'options', { + get: function () { + this.log.warn.ln('"options" property is deprecated, use config.get(key) instead'); + var cfg = this.config.dump(); + error.deprecateField(cfg, 'book', (this.output? this.output.name : null), '"options.generator" property is deprecated, use "output.name" instead'); + + // options.generator + cfg.generator = this.output? this.output.name : null; + + // options.output + cfg.output = this.output? this.output.root() : null; + + return cfg; + } + }); + _.bindAll(this); + + // Loop for template filters/blocks + error.deprecateField(this, 'book', this, '"book" property is deprecated, use "this" directly instead'); } // Return templating context for the book @@ -108,7 +129,16 @@ Book.prototype.getContext = function() { // Parse and prepare the configuration, fail if invalid Book.prototype.prepareConfig = function() { - return this.config.load(); + var that = this; + + return this.config.load() + .then(function() { + var rootFolder = that.config.get('root'); + if (!rootFolder) return; + + that.originalRoot = that.root; + that.root = path.resolve(that.root, rootFolder); + }); }; // Resolve a path in the book source @@ -329,29 +359,29 @@ Book.prototype.isInLanguageBook = function(filename) { }); }; -// Locate a book in a folder -// - Read the ".gitbook" is exists -// - Try the folder itself -// - Try a "docs" folder -Book.locate = function(fs, root) { - return fs.readAsString(path.join(root, '.gitbook')) - .then(function(content) { - return path.join(root, content); - }, function() { - // .gitbook doesn't exists, fall back to the root folder - return Promise(root); - }); -}; +// ----- DEPRECATED METHODS -// Locate and setup a book -Book.setup = function(fs, root, opts) { - return Book.locate(fs, root) - .then(function(_root) { - return new Book(_.extend(opts || {}, { - root: _root, - fs: fs - })); - }); +Book.prototype.contentLink = error.deprecateMethod(function(s) { + return this.output.toURL(s); +}, '.contentLink() is deprecated, use ".output.toURL()" instead'); + +Book.prototype.contentPath = error.deprecateMethod(function(s) { + return this.output.toURL(s); +}, '.contentPath() is deprecated, use ".output.toURL()" instead'); + +Book.prototype.isSubBook = error.deprecateMethod(function() { + return this.isLanguageBook(); +}, '.isSubBook() is deprecated, use ".isLanguageBook()" instead'); + + +// Initialize a book +Book.init = function(fs, root, opts) { + var book = new Book(_.extend(opts || {}, { + root: root, + fs: fs + })); + + return initBook(book); }; diff --git a/gitbook/lib/cli/helper.js b/gitbook/lib/cli/helper.js index e4dc8daf..02cede65 100644 --- a/gitbook/lib/cli/helper.js +++ b/gitbook/lib/cli/helper.js @@ -42,12 +42,13 @@ var FORMATS = { function bookCmd(fn) { return function(args, kwargs) { var input = path.resolve(args[0] || process.cwd()); - return Book.setup(nodeFS, input, { + var book = new Book({ + fs: nodeFS, + root: input, logLevel: kwargs.log - }) - .then(function(book) { - return fn(book, args.slice(1), kwargs); }); + + return fn(book, args.slice(1), kwargs); }; } @@ -80,7 +81,7 @@ function ebookCmd(format) { return fs.tmpDir() .then(function(dir) { var ext = '.'+format; - var outputFile = path.resolve(process.cwd(), args[1] || ('book' + ext)); + var outputFile = path.resolve(process.cwd(), args[0] || ('book' + ext)); var output = new EBookOutput(book, { root: dir, format: format diff --git a/gitbook/lib/cli/index.js b/gitbook/lib/cli/index.js index 4d3d3648..eea707f5 100644 --- a/gitbook/lib/cli/index.js +++ b/gitbook/lib/cli/index.js @@ -14,6 +14,17 @@ var watch = require('./watch'); module.exports = { commands: [ + { + name: 'init [book]', + description: 'setup and create files for chapters', + options: [ + helper.options.log + ], + exec: function(args) { + var input = path.resolve(args[0] || process.cwd()); + return Book.init(helper.nodeFS, input); + } + }, { name: 'parse [book]', @@ -119,26 +130,27 @@ module.exports = { // Generate the book .then(function() { - return Book.setup(helper.nodeFS, input, { - 'logLevel': kwargs.log - }) - .then(function(book) { - return book.parse() - .then(function() { - // Add livereload plugin - book.config.set('plugins', - book.config.get('plugins') - .concat([ - { name: 'livereload' } - ]) - ); + var book = new Book({ + fs: helper.nodeFS, + root: input, + logLevel: kwargs.log + }); - var Out = helper.FORMATS[kwargs.format]; - var output = new Out(book); + return book.parse() + .then(function() { + // Add livereload plugin + book.config.set('plugins', + book.config.get('plugins') + .concat([ + { name: 'livereload' } + ]) + ); - return output.generate() - .thenResolve(output); - }); + var Out = helper.FORMATS[kwargs.format]; + var output = new Out(book); + + return output.generate() + .thenResolve(output); }); }) diff --git a/gitbook/lib/cli/server.js b/gitbook/lib/cli/server.js index 3bd5d181..8d3d7ce3 100644 --- a/gitbook/lib/cli/server.js +++ b/gitbook/lib/cli/server.js @@ -64,8 +64,9 @@ Server.prototype.start = function(dir, port) { } // Send file - send(req, url.parse(req.url).pathname) - .root(dir) + send(req, url.parse(req.url).pathname, { + root: dir + }) .on('error', error) .on('directory', redirect) .pipe(res); diff --git a/gitbook/lib/config/index.js b/gitbook/lib/config/index.js index 7f757330..edc048c3 100644 --- a/gitbook/lib/config/index.js +++ b/gitbook/lib/config/index.js @@ -54,7 +54,7 @@ Config.prototype.load = function() { throw new Error('GitBook version doesn\'t satisfy version required by the book: '+that.options.gitbook); } if (that.options.gitbook != '*' && !semver.satisfies(semver.inc(gitbook.version, 'patch'), that.options.gitbook)) { - that.log.warn.ln('gitbook version specified in your book.json might be too strict for future patches, \''+(_.first(gitbook.version.split('.'))+'.x.x')+'\' is more adequate'); + that.log.warn.ln('gitbook version specified in your book.json might be too strict for future patches, \'>='+(_.first(gitbook.version.split('.'))+'.x.x')+'\' is more adequate'); } that.options.plugins = plugins.toList(that.options.plugins); diff --git a/gitbook/lib/config/schema.js b/gitbook/lib/config/schema.js index 34a6c760..3fb20507 100644 --- a/gitbook/lib/config/schema.js +++ b/gitbook/lib/config/schema.js @@ -4,13 +4,13 @@ module.exports = { 'title': 'GitBook Configuration', 'type': 'object', 'properties': { - 'title': { + 'root': { 'type': 'string', - 'title': 'Title of the book, default is extracted from README' + 'title': 'Path fro the root folder containing the book\'s content' }, 'title': { 'type': 'string', - 'title': 'Description of the book, default is extracted from README' + 'title': 'Title of the book, default is extracted from README' }, 'isbn': { 'type': 'string', diff --git a/gitbook/lib/init.js b/gitbook/lib/init.js new file mode 100644 index 00000000..b7bb7f50 --- /dev/null +++ b/gitbook/lib/init.js @@ -0,0 +1,67 @@ +var path = require('path'); + +var fs = require('./utils/fs'); +var Promise = require('./utils/promise'); + +// Initialize folder structure for a book +// Read SUMMARY to created the right chapter +function initBook(book) { + var extensionToUse = '.md'; + + book.log.info.ln('init book at', book.root); + return fs.mkdirp(book.root) + .then(function() { + return book.config.load(); + }) + .then(function() { + book.log.info.ln('detect structure from SUMMARY (if it exists)'); + return book.summary.load(); + }) + .then(function() { + var summary = book.summary.path || 'SUMMARY.md'; + var articles = book.summary.flatten(); + + // Use extension of summary + extensionToUse = path.extname(summary); + + // Readme doesn't have a path + if (!articles[0].path) { + articles[0].path = 'README' + extensionToUse; + } + + // Summary doesn't exists? create one + if (!book.summary.path) { + articles.push({ + title: 'Summary', + path: 'SUMMARY'+extensionToUse + }); + } + + // Create files that don't exist + return Promise.serie(articles, function(article) { + if (!article.path) return; + + var absolutePath = book.resolve(article.path); + + return fs.exists(absolutePath) + .then(function(exists) { + if(exists) { + book.log.info.ln('found', article.path); + return; + } else { + book.log.info.ln('create', article.path); + } + + return fs.mkdirp(path.dirname(absolutePath)) + .then(function() { + return fs.writeFile(absolutePath, '# '+article.title+'\n\n'); + }); + }); + }); + }) + .then(function() { + book.log.info.ln('initialization is finished'); + }); +} + +module.exports = initBook; diff --git a/gitbook/lib/output/base.js b/gitbook/lib/output/base.js index a1d88040..9c2153de 100644 --- a/gitbook/lib/output/base.js +++ b/gitbook/lib/output/base.js @@ -24,6 +24,7 @@ function Output(book, opts, parent) { }); this.book = book; + book.output = this; this.log = this.book.log; // Create plugins manager @@ -146,6 +147,7 @@ Output.prototype.prepare = function() { '.ignore', '.bookignore', 'node_modules', + '_layouts', // The configuration file should not be copied in the output this.book.config.path, @@ -183,7 +185,7 @@ Output.prototype.onRelativeLink = function(currentPage, href) { href = currentPage.relative(href); // Replace .md by .html - href = this.outputUrl(href); + href = this.toURL(href); } return href; @@ -261,7 +263,7 @@ Output.prototype.outputPath = function(filename, ext) { // Filename for output // /test/index.html -> /test/ -Output.prototype.outputUrl = function(filename, ext) { +Output.prototype.toURL = function(filename, ext) { var href = this.outputPath(filename, ext); if (path.basename(href) == 'index.html' && this.opts.directoryIndex) { diff --git a/gitbook/lib/output/ebook.js b/gitbook/lib/output/ebook.js index 228a0256..ace52552 100644 --- a/gitbook/lib/output/ebook.js +++ b/gitbook/lib/output/ebook.js @@ -114,7 +114,7 @@ EbookOutput.prototype.locateCover = function() { // Cover doesn't exist and multilingual? if (!fs.existsSync(cover)) { - if (this.parent) return this.parent.locateCover() + if (this.parent) return this.parent.locateCover(); else return undefined; } diff --git a/gitbook/lib/output/json.js b/gitbook/lib/output/json.js index e8a71cc2..32464076 100644 --- a/gitbook/lib/output/json.js +++ b/gitbook/lib/output/json.js @@ -22,7 +22,7 @@ JSONOutput.prototype.onPage = function(page) { delete json.config; // Specify JSON output version - json.version = '2'; + json.version = '3'; return that.writeFile( page.withExtension('.json'), diff --git a/gitbook/lib/output/website.js b/gitbook/lib/output/website.js index 230af718..ae3d7af4 100644 --- a/gitbook/lib/output/website.js +++ b/gitbook/lib/output/website.js @@ -117,7 +117,7 @@ WebsiteOutput.prototype.prepare = function() { // Transform a '.md' into a '.html' (README -> index) that.env.addFilter('contentURL', function(s) { - return location.normalize(that.outputUrl(s)); + return that.toURL(s); }); // Relase path to an asset diff --git a/gitbook/lib/page/index.js b/gitbook/lib/page/index.js index f3a8f39b..6c634895 100644 --- a/gitbook/lib/page/index.js +++ b/gitbook/lib/page/index.js @@ -23,12 +23,13 @@ function Page(book, filename) { this.book = book; this.log = this.book.log; + // Map of attributes from YAML frontmatter + // Description is also extracted by default from content + this.attributes = {}; + // Current content this.content = ''; - // Short description for the page - this.description = ''; - // Relative path to the page this.path = location.normalize(filename); @@ -122,16 +123,15 @@ Page.prototype.getContext = function() { mtime: this.mtime, type: this.type }, - page: { + page: _.extend({}, this.attributes, { title: article? article.title : null, - description: this.description, next: next? next.getContext() : null, previous: prev? prev.getContext() : null, level: article? article.level : null, depth: article? article.depth : 0, content: this.content, dir: dir - } + }) }, gitbook.getContext(), this.book.getContext(), @@ -165,8 +165,8 @@ Page.prototype.toHTML = function(output) { .then(function() { var parsed = fm(that.content); - // Extend page with the fontmatter attribute - that.description = parsed.attributes.description || ''; + // Extract attributes + that.attributes = parsed.attributes; // Keep only the body that.update(parsed.body); @@ -223,8 +223,8 @@ Page.prototype.toHTML = function(output) { // Extract description from page's content if no frontmatter onDescription: function(description) { - if (that.description) return; - that.description = description; + if (that.attributes.description) return; + that.attributes.description = description; }, // Convert glossary entries to annotations diff --git a/gitbook/lib/plugins/compatibility.js b/gitbook/lib/plugins/compatibility.js index 7ad35a95..9f80c38a 100644 --- a/gitbook/lib/plugins/compatibility.js +++ b/gitbook/lib/plugins/compatibility.js @@ -7,19 +7,7 @@ var error = require('../utils/error'); */ function pluginCtx(plugin) { var book = plugin.book; - var ctx = { - config: book.config, - log: plugin.log, - - // Paths - resolve: book.resolve - }; - - // Deprecation - error.deprecateField(ctx, 'options', book.config.dump(), '"options" property is deprecated, use config.get(key) instead'); - - // Loop for template filters/blocks - error.deprecateField(ctx, 'book', ctx, '"book" property is deprecated, use "this" directly instead'); + var ctx = book; return ctx; } diff --git a/gitbook/lib/plugins/plugin.js b/gitbook/lib/plugins/plugin.js index f6781118..d707e5cd 100644 --- a/gitbook/lib/plugins/plugin.js +++ b/gitbook/lib/plugins/plugin.js @@ -204,7 +204,6 @@ BookPlugin.prototype._getResources = function(base) { .then(function() { if (that._resources[base]) return that._resources[base]; - base = base; var book = that.content[base]; // Compatibility with version 1.x.x diff --git a/gitbook/lib/plugins/registry.js b/gitbook/lib/plugins/registry.js index 837c9b5e..abb8215b 100644 --- a/gitbook/lib/plugins/registry.js +++ b/gitbook/lib/plugins/registry.js @@ -87,7 +87,7 @@ function installPlugin(book, plugin, version) { throw new Error('Found no satisfactory version for plugin "' + plugin + '"'); } - book.log.info.ln('install plugin' + plugin +'" from npm ('+npnName+') with version', version); + book.log.info.ln('install plugin "' + plugin +'" from npm ('+npnName+') with version', version); return Promise.nfcall(npmi, { 'name': npnName, 'version': version, diff --git a/gitbook/lib/template/index.js b/gitbook/lib/template/index.js index fc7603dc..eb625493 100644 --- a/gitbook/lib/template/index.js +++ b/gitbook/lib/template/index.js @@ -202,7 +202,7 @@ TemplateEngine.prototype.addBlock = function(name, block) { lastBlockArgs = parser.parseSignature(null, true); parser.advanceAfterBlockEnd(lastBlockName); } - } while (lastBlockName != block.end) + } while (lastBlockName != block.end); parser.advanceAfterBlockEnd(); diff --git a/gitbook/lib/utils/command.js b/gitbook/lib/utils/command.js index de240df0..93df7505 100644 --- a/gitbook/lib/utils/command.js +++ b/gitbook/lib/utils/command.js @@ -1,6 +1,6 @@ var _ = require('lodash'); var childProcess = require('child_process'); -var spawn = require("spawn-cmd").spawn; +var spawn = require('spawn-cmd').spawn; var Promise = require('./promise'); // Execute a command diff --git a/gitbook/lib/utils/location.js b/gitbook/lib/utils/location.js index ba0c57dc..ba43644d 100644 --- a/gitbook/lib/utils/location.js +++ b/gitbook/lib/utils/location.js @@ -27,7 +27,7 @@ function isAnchor(href) { // Normalize a path to be a link function normalize(s) { - return s.replace(/\\/g, '/'); + return path.normalize(s).replace(/\\/g, '/'); } // Convert relative to absolute path @@ -36,7 +36,7 @@ function normalize(s) { function toAbsolute(_href, dir, outdir) { if (isExternal(_href)) return _href; outdir = outdir == undefined? dir : outdir; - + _href = normalize(_href); dir = normalize(dir); outdir = normalize(outdir); diff --git a/gitbook/package.json b/gitbook/package.json index 76529f6e..bf24b556 100644 --- a/gitbook/package.json +++ b/gitbook/package.json @@ -1,93 +1,92 @@ { - "name": "gitbook", - "version": "3.0.0-pre.1", - "homepage": "https://www.gitbook.com", - "description": "Library and cmd utility to generate GitBooks", - "main": "lib/index.js", - "dependencies": { - "q": "1.0.1", - "lodash": "3.10.1", - "graceful-fs": "4.1.3", - "resolve": "0.6.3", - "mkdirp": "0.5.1", - "error": "7.0.2", - "gitbook-markdown": "1.0.3", - "gitbook-asciidoc": "1.0.2", - "gitbook-plugin-highlight": "1.0.3", - "gitbook-plugin-sharing": "1.0.1", - "gitbook-plugin-search": "1.1.0", - "gitbook-plugin-fontsettings": "1.0.2", - "gitbook-plugin-theme-default": "1.0.0-pre.4", - "nunjucks": "2.3.0", - "nunjucks-autoescape": "1.0.0", - "nunjucks-filter": "1.0.0", - "semver": "5.0.1", - "npmi": "0.1.1", - "cheerio": "0.19.0", - "gitbook-plugin-livereload": "0.0.1", - "chokidar": "~1.0.5", - "send": "0.2.0", - "tiny-lr": "0.2.1", - "tmp": "0.0.28", - "crc": "3.2.1", - "bash-color": "0.0.3", - "urijs": "1.17.0", - "request": "2.69.0", - "npm": "2.4.1", - "dom-serializer": "0.1.0", - "spawn-cmd": "0.0.2", - "escape-string-regexp": "1.0.3", - "juice": "1.9.0", - "jsonschema": "1.1.0", - "json-schema-defaults": "0.1.1", - "merge-defaults": "0.2.1", - "github-slugid": "1.0.0", - "destroy": "1.0.4", - "ignore": "2.2.19", - "deprecated": "0.0.1", - "rmdir": "1.2.0", - "cp": "0.2.0", - "cpr": "1.0.0", - "direction": "0.1.5", - "moment": "2.11.2", - "i18n-t": "1.0.0", - "front-matter": "2.0.6", - "spawn-cmd": "0.0.2" + "name": "gitbook", + "version": "3.0.0-pre.5", + "homepage": "https://www.gitbook.com", + "description": "Library and cmd utility to generate GitBooks", + "main": "lib/index.js", + "dependencies": { + "bash-color": "0.0.3", + "cheerio": "0.20.0", + "chokidar": "1.4.3", + "cp": "0.2.0", + "cpr": "1.0.0", + "crc": "3.4.0", + "deprecated": "0.0.1", + "destroy": "1.0.4", + "direction": "0.1.5", + "dom-serializer": "0.1.0", + "error": "7.0.2", + "escape-string-regexp": "1.0.5", + "eslint": "^2.2.0", + "front-matter": "2.0.6", + "gitbook-asciidoc": "1.0.2", + "gitbook-markdown": "1.0.3", + "gitbook-plugin-fontsettings": "1.0.2", + "gitbook-plugin-highlight": "2.0.0", + "gitbook-plugin-livereload": "0.0.1", + "gitbook-plugin-search": "1.2.0", + "gitbook-plugin-sharing": "1.0.1", + "gitbook-plugin-theme-default": "1.0.0-pre.5", + "github-slugid": "1.0.0", + "graceful-fs": "4.1.3", + "i18n-t": "1.0.0", + "ignore": "3.0.3", + "json-schema-defaults": "0.1.1", + "jsonschema": "1.1.0", + "juice": "1.10.0", + "lodash": "3.10.1", + "merge-defaults": "0.2.1", + "mkdirp": "0.5.1", + "moment": "2.11.2", + "npm": "3.7.5", + "npmi": "1.0.1", + "nunjucks": "2.3.0", + "nunjucks-autoescape": "1.0.1", + "q": "1.4.1", + "request": "2.69.0", + "resolve": "0.6.3", + "rmdir": "1.2.0", + "semver": "5.1.0", + "send": "0.13.1", + "spawn-cmd": "0.0.2", + "tiny-lr": "0.2.1", + "tmp": "0.0.28", + "urijs": "1.17.1" + }, + "devDependencies": { + "eslint": "2.2.0", + "mocha": "2.4.5", + "should": "8.2.2" + }, + "scripts": { + "test": "node_modules/.bin/mocha --reporter spec --bail --timeout 15000 ./test/all.js", + "lint": "eslint ." + }, + "repository": { + "type": "git", + "url": "https://github.com/GitbookIO/gitbook.git" + }, + "bin": { + "gitbook": "./bin/gitbook.js" + }, + "keywords": [ + "git", + "book", + "gitbook" + ], + "author": "FriendCode Inc. ", + "license": "Apache-2.0", + "bugs": { + "url": "https://github.com/GitbookIO/gitbook/issues" + }, + "contributors": [ + { + "name": "Aaron O'Mullan", + "email": "aaron@gitbook.com" }, - "devDependencies": { - "eslint": "1.5.0", - "mocha": "2.4.5", - "should": "8.2.2" - }, - "scripts": { - "test": "node_modules/.bin/mocha --reporter spec --bail --timeout 15000 ./test/all.js", - "lint": "eslint ." - }, - "repository": { - "type": "git", - "url": "https://github.com/GitbookIO/gitbook.git" - }, - "bin": { - "gitbook": "./bin/gitbook.js" - }, - "keywords": [ - "git", - "book", - "gitbook" - ], - "author": "FriendCode Inc. ", - "license": "Apache-2.0", - "bugs": { - "url": "https://github.com/GitbookIO/gitbook/issues" - }, - "contributors": [ - { - "name": "Aaron O'Mullan", - "email": "aaron@gitbook.com" - }, - { - "name": "Samy Pessé", - "email": "samy@gitbook.com" - } - ] + { + "name": "Samy Pessé", + "email": "samy@gitbook.com" + } + ] } diff --git a/gitbook/test/all.js b/gitbook/test/all.js index 9c82c91c..cb4e6051 100644 --- a/gitbook/test/all.js +++ b/gitbook/test/all.js @@ -1,4 +1,7 @@ +// Module API +require('./exports'); + // Utilities require('./location'); require('./paths'); @@ -25,3 +28,6 @@ require('./assets-inliner'); require('./output-json'); require('./output-website'); require('./output-ebook'); + +// Misc +require('./init'); diff --git a/gitbook/test/assertions.js b/gitbook/test/assertions.js index 56da2491..f96fdc1d 100644 --- a/gitbook/test/assertions.js +++ b/gitbook/test/assertions.js @@ -1,18 +1,31 @@ var fs = require('fs'); +var path = require('path'); var _ = require('lodash'); var cheerio = require('cheerio'); var should = require('should'); // Assertions to test if an Output has generated a file should.Assertion.add('file', function(file, description) { + var rootFolder; + if (_.isFunction(this.obj.root)) { + rootFolder = this.obj.root(); + } else { + rootFolder = this.obj; + } + this.params = { - actual: this.obj.root(), + actual: rootFolder, operator: 'have file ' + file, message: description }; - this.obj.should.have.property('resolve').which.is.a.Function; - this.assert(fs.existsSync(this.obj.resolve(file))); + if (_.isFunction(this.obj.resolve)) { + file = this.obj.resolve(file); + } else { + file = path.resolve(rootFolder, file); + } + + this.assert(fs.existsSync(file)); }); should.Assertion.add('html', function(rules, description) { diff --git a/gitbook/test/config.js b/gitbook/test/config.js index be28fc9a..d997c46a 100644 --- a/gitbook/test/config.js +++ b/gitbook/test/config.js @@ -46,7 +46,7 @@ describe('Configuration', function() { return mock.setupDefaultBook() .then(function(_book) { book = _book; - return book.config.load(); + return book.prepareConfig(); }); }); @@ -64,7 +64,7 @@ describe('Configuration', function() { }) .then(function(_book) { book = _book; - return book.config.load(); + return book.prepareConfig(); }); }); @@ -82,7 +82,7 @@ describe('Configuration', function() { }) .then(function(_book) { book = _book; - return book.config.load(); + return book.prepareConfig(); }); }); diff --git a/gitbook/test/exports.js b/gitbook/test/exports.js new file mode 100644 index 00000000..ae298dc1 --- /dev/null +++ b/gitbook/test/exports.js @@ -0,0 +1,12 @@ +var should = require('should'); +var gitbook = require('../'); + +describe('Exports', function() { + it('should export the Book class', function() { + should(gitbook.Book).be.a.Function(); + }); + + it('should export the list of commands', function() { + should(gitbook.commands).be.an.Array(); + }); +}); diff --git a/gitbook/test/glossary.js b/gitbook/test/glossary.js index d6d1af61..e1ba82a9 100644 --- a/gitbook/test/glossary.js +++ b/gitbook/test/glossary.js @@ -7,7 +7,7 @@ describe('Glossary', function() { 'GLOSSARY.md': '' }) .then(function(book) { - return book.config.load() + return book.prepareConfig() .then(function() { return book.glossary.load(); @@ -27,7 +27,7 @@ describe('Glossary', function() { }) .then(function(_book) { book = _book; - return book.config.load(); + return book.prepareConfig(); }) .then(function() { return book.glossary.load(); diff --git a/gitbook/test/init.js b/gitbook/test/init.js new file mode 100644 index 00000000..200f795a --- /dev/null +++ b/gitbook/test/init.js @@ -0,0 +1,57 @@ +var Book = require('../lib/book'); +var mock = require('./mock'); + +describe('Init', function() { + + it('should create file according to summary', function() { + return mock.setupFS({ + 'SUMMARY.md': '# Summary\n\n' + + '* [Hello](hello.md)\n' + + '* [Hello 2](hello 2.md)\n' + }) + .then(function(rootFolder) { + return Book.init(mock.fs, rootFolder, { + log: function() {} + }) + .then(function() { + rootFolder.should.have.file('SUMMARY.md'); + rootFolder.should.have.file('README.md'); + rootFolder.should.have.file('hello.md'); + rootFolder.should.have.file('hello 2.md'); + }); + }); + }); + + it('should create file subfolder', function() { + return mock.setupFS({ + 'SUMMARY.md': '# Summary\n\n' + + '* [Hello](test/hello.md)\n' + + '* [Hello 2](test/test2/world.md)\n' + }) + .then(function(rootFolder) { + return Book.init(mock.fs, rootFolder, { + log: function() {} + }) + .then(function() { + rootFolder.should.have.file('README.md'); + rootFolder.should.have.file('SUMMARY.md'); + rootFolder.should.have.file('test/hello.md'); + rootFolder.should.have.file('test/test2/world.md'); + }); + }); + }); + + it('should create SUMMARY if non-existant', function() { + return mock.setupFS({}) + .then(function(rootFolder) { + return Book.init(mock.fs, rootFolder, { + log: function() {} + }) + .then(function() { + rootFolder.should.have.file('SUMMARY.md'); + rootFolder.should.have.file('README.md'); + }); + }); + }); + +}); diff --git a/gitbook/test/langs.js b/gitbook/test/langs.js index 91dbd5a5..dbde992b 100644 --- a/gitbook/test/langs.js +++ b/gitbook/test/langs.js @@ -6,7 +6,7 @@ describe('Langs', function() { 'LANGS.md': '' }) .then(function(book) { - return book.config.load() + return book.prepareConfig() .then(function() { return book.langs.load(); diff --git a/gitbook/test/locate.js b/gitbook/test/locate.js index 609f2da8..f9adcd79 100644 --- a/gitbook/test/locate.js +++ b/gitbook/test/locate.js @@ -1,27 +1,33 @@ var path = require('path'); +var should = require('should'); -var Book = require('../').Book; var mock = require('./mock'); describe('Locate', function() { it('should use root folder if no .gitbook', function() { - return mock.setupFS({ + return mock.setupBook({ 'README.md': '# Hello' }) - .then(function(root) { - return Book.locate(mock.fs, root) - .should.be.fulfilledWith(root); + .then(function(book) { + return book.prepareConfig() + .then(function() { + should(book.originalRoot).not.be.ok(); + }); }); }); - it('should use resolve using .gitbook', function() { - return mock.setupFS({ + it('should use resolve using book.js root property', function() { + return mock.setupBook({ 'README.md': '# Hello', - '.gitbook': './docs' + 'docs/README.md': '# Hello Book', + 'book.json': { root: './docs' } }) - .then(function(root) { - return Book.locate(mock.fs, root) - .should.be.fulfilledWith(path.resolve(root, 'docs')); + .then(function(book) { + return book.prepareConfig() + .then(function() { + should(book.originalRoot).be.ok(); + book.root.should.equal(path.resolve(book.originalRoot, 'docs')); + }); }); }); diff --git a/gitbook/test/page.js b/gitbook/test/page.js index ae36660b..b9ad42c5 100644 --- a/gitbook/test/page.js +++ b/gitbook/test/page.js @@ -9,7 +9,8 @@ describe('Page', function() { 'README.md': ' # Hello World\n\nThis is a description', 'heading.md': '# Hello\n\n## World', 'description.md': '# This is a title\n\nThis is the short description.\n\nNot this one.', - 'frontmatter.md': '---\ndescription: Hello World\n---\n\n# This is a title\n\nThis is not the description', + 'frontmatter/description.md': '---\ndescription: Hello World\n---\n\n# This is a title\n\nThis is not the description', + 'frontmatter/var.md': '---\ntest: Hello World\n---\n\n{{ page.test }}', 'links.md': '[link](hello.md) [link 2](variables/page/next.md) [readme](README.md)', 'links/relative.md': '[link](../hello.md) [link 2](/variables/page/next.md) [readme](../README.md)', @@ -131,23 +132,32 @@ describe('Page', function() { }); describe('Description', function() { - it('should extratc page description from content', function() { + it('should extract page description from content', function() { var page = book.addPage('description.md'); return page.toHTML(output) .then(function() { - page.description.should.equal('This is the short description.'); + page.attributes.description.should.equal('This is the short description.'); }); }); }); describe('Font-Matter', function() { - it('should extratc page description from front matter', function() { - var page = book.addPage('frontmatter.md'); + it('should extract page description from front matter', function() { + var page = book.addPage('frontmatter/description.md'); return page.toHTML(output) .then(function() { - page.description.should.equal('Hello World'); + page.attributes.description.should.equal('Hello World'); + }); + }); + + it('should extend page attributes with custom properties', function() { + var page = book.addPage('frontmatter/var.md'); + + return page.toHTML(output) + .then(function() { + page.content.should.equal('

    Hello World

    \n'); }); }); }); diff --git a/gitbook/test/plugins.js b/gitbook/test/plugins.js index 4d9cdf1f..5d100317 100644 --- a/gitbook/test/plugins.js +++ b/gitbook/test/plugins.js @@ -53,7 +53,23 @@ describe('Plugins', function() { } }) .then(function(book) { - return book.config.load() + return book.prepareConfig() + .then(function() { + var plugins = new PluginsManager(book); + return plugins.install(); + }); + }) + .should.be.fulfilledWith(1); + }); + + it('should correctly install dependencies from GitHub', function() { + return mock.setupBook({ + 'book.json': { + plugins: ['ga@git+https://github.com/GitbookIO/plugin-ga#master'] + } + }) + .then(function(book) { + return book.prepareConfig() .then(function() { var plugins = new PluginsManager(book); return plugins.install(); @@ -90,7 +106,7 @@ describe('Plugins', function() { } }) .then(function(book2) { - return book2.config.load() + return book2.prepareConfig() .then(function() { var plugin = new BookPlugin(book2, 'test-config'); return plugin.load(PLUGINS_ROOT); diff --git a/gitbook/test/readme.js b/gitbook/test/readme.js index 0cf66ffe..16aa81ae 100644 --- a/gitbook/test/readme.js +++ b/gitbook/test/readme.js @@ -6,7 +6,7 @@ describe('Readme', function() { 'README.md': '' }) .then(function(book) { - return book.config.load() + return book.prepareConfig() .then(function() { return book.readme.load(); diff --git a/gitbook/test/summary.js b/gitbook/test/summary.js index 08b9db85..98596938 100644 --- a/gitbook/test/summary.js +++ b/gitbook/test/summary.js @@ -59,6 +59,34 @@ describe('Summary / Table of contents', function() { }); }); + describe('Unicode summary', function() { + var book; + + before(function() { + return mockSummary({ + 'SUMMARY.md': '# Summary\n\n' + + '* [Hello](./hello world.md)\n' + + '* [Spanish](./Descripción del problema.md)\n\n' + + '* [Chinese](读了这本书.md)\n\n' + }) + .then(function(_book) { + book = _book; + }); + }); + + it('should accept article with spaces', function() { + should(book.summary.getArticle('hello world.md')).be.ok(); + }); + + it('should accept article with chinese filename', function() { + should(book.summary.getArticle('读了这本书.md')).be.ok(); + }); + + it('should accept article with accents', function() { + should(book.summary.getArticle('Descripción del problema.md')).be.ok(); + }); + }); + describe('Non-empty summary list', function() { var book; diff --git a/index.html b/index.html index a2e6a715..b6fd573c 100644 --- a/index.html +++ b/index.html @@ -6,7 +6,7 @@ - + @@ -67,8 +67,8 @@ data-level="0" data-chapter-title="Getting Started with GORM" data-filepath="README.md" - data-basepath="" - data-revision="Wed Mar 02 2016 08:53:45 GMT+0800 (CST)" + data-basepath="." + data-revision="Tue Mar 08 2016 12:18:21 GMT+0800 (CST)" data-innerlanguage=""> @@ -176,12 +176,12 @@
  • - + 2.2. - Naming Conventions & Overriding + Conventions & Overriding @@ -479,12 +479,12 @@
  • - + 5.4. - Composite Primary Key + Generic database interface sql.DB @@ -494,11 +494,26 @@
  • - + 5.5. + Composite Primary Key + + + + + +
  • + +
  • + + + + + 5.6. + Overriding Logger @@ -530,11 +545,26 @@
  • - + 6.1. + Architecture + + + + + +
  • + +
  • + + + + + 6.2. + Write Plugins @@ -583,7 +613,7 @@

    - Getting Started with GORM + Getting Started with GORM

    @@ -595,53 +625,64 @@

    GORM

    The fantastic ORM library for Golang, aims to be developer friendly.

    -

    wercker status -GoDoc -Join the chat at https://gitter.im/jinzhu/gorm

    +

    Join the chat at https://gitter.im/jinzhu/gorm +wercker status +GoDoc

    Overview

    • Full-Featured ORM (almost)
    • -
    • Chainable API
    • -
    • Auto Migrations
    • -
    • Relations (Has One, Has Many, Belongs To, Many To Many, Polymorphism)
    • +
    • Associations (Has One, Has Many, Belongs To, Many To Many, Polymorphism)
    • Callbacks (Before/After Create/Save/Update/Delete/Find)
    • Preloading (eager loading)
    • Transactions
    • -
    • Embed Anonymous Struct
    • -
    • Soft Deletes
    • -
    • Customizable Logger
    • -
    • Iteration Support via Rows
    • +
    • Composite Primary Key
    • +
    • SQL Builder
    • +
    • Auto Migrations
    • +
    • Logger
    • +
    • Extendable, write Plugins based on GORM callbacks
    • Every feature comes with tests
    • Developer Friendly

    Install

    -
    go get -u github.com/jinzhu/gorm
    -

    Upgrading

    -

    Change Log

    -

    Basic Usage

    -
    type Product struct {
    +
    go get -u github.com/jinzhu/gorm
    +
    +

    Upgrading To V1.0

    + +

    Quick Start

    +
    package main
    +
    +import (
    +    "github.com/jinzhu/gorm"
    +    _ "github.com/jinzhu/gorm/dialects/sqlite"
    +)
    +
    +type Product struct {
       gorm.Model
    -  Code string
    -  Price uint
    -}
    -
    -var db *gorm.DB
    -
    -func init() {
    -  var err error
    -  db, err = gorm.Open("sqlite", "test.db")
    +  Code string
    +  Price uint
     }
     
     func main() {
    +  db, err := gorm.Open("sqlite", "test.db")
    +  if err != nil {
    +    panic("faield to connect database")
    +  }
    +
    +  // Create
       db.Create(&Product{Code: "L1212", Price: 1000})
     
    +  // Read
       var product Product
       db.First(&product, 1) // find product with id 1
       db.First(&product, "code = ?", "L1212") // find product with code l1212
     
    -  db.Model(&product).Update("Price", 2000) // update product's price to 2000
    +  // Update - update product's price to 2000
    +  db.Model(&product).Update("Price", 2000)
     
    -  db.Delete(&product) // delete product
    +  // Delete - delete product
    +  db.Delete(&product)
     }
     

    Author

    diff --git a/models.html b/models.html index f3877040..f3372beb 100644 --- a/models.html +++ b/models.html @@ -5,8 +5,8 @@ - - + + @@ -69,8 +69,8 @@ data-level="2" data-chapter-title="Models" data-filepath="models.md" - data-basepath="" - data-revision="Wed Mar 02 2016 08:53:45 GMT+0800 (CST)" + data-basepath="." + data-revision="Tue Mar 08 2016 12:18:21 GMT+0800 (CST)" data-innerlanguage=""> @@ -178,12 +178,12 @@
  • - + 2.2. - Naming Conventions & Overriding + Conventions & Overriding @@ -481,12 +481,12 @@
  • - + 5.4. - Composite Primary Key + Generic database interface sql.DB @@ -496,11 +496,26 @@
  • - + 5.5. + Composite Primary Key + + + + + +
  • + +
  • + + + + + 5.6. + Overriding Logger @@ -532,11 +547,26 @@
  • - + 6.1. + Architecture + + + + + +
  • + +
  • + + + + + 6.2. + Write Plugins @@ -585,7 +615,7 @@

    - Models + Models

    @@ -599,7 +629,7 @@
    • Model Defination
    • -
    • Conventions & Overriding Conventions
        +
      • Conventions
        • gorm.Model struct
        • Table name is the pluralized version of struct name
        • Column name is the snake case of field's name
        • @@ -613,34 +643,84 @@

          Model Defination

          type User struct {
          -  gorm.Model
          +    gorm.Model
               Birthday     time.Time
          -    Age          int
          -    Name         string  `sql:"size:255"` // Default size for string is 255, you could reset it with this tag
          -    Num          int     `sql:"AUTO_INCREMENT"`
          -    IgnoreMe     int `sql:"-"`   // Ignore this field
          +    Age          int
          +    Name         string  `gorm:"size:255"` // Default size for string is 255, reset it with this tag
          +    Num          int     `gorm:"AUTO_INCREMENT"`
          +
          +    CreditCard        CreditCard      // One-To-One relationship (has one - use CreditCard's UserID as foreign key)
          +    Emails            []Email         // One-To-Many relationship (has many - use Email's UserID as foreign key)
          +
          +    BillingAddress    Address         // One-To-One relationship (belongs to - use BillingAddressID as foreign key)
          +    BillingAddressID  sql.NullInt64
          +
          +    ShippingAddress   Address         // One-To-One relationship (belongs to - use ShippingAddressID as foreign key)
          +    ShippingAddressID int
          +
          +    IgnoreMe          int `gorm:"-"`   // Ignore this field
          +    Languages         []Language `gorm:"many2many:user_languages;"` // Many-To-Many relationship, 'user_languages' is join table
          +}
          +
          +type Email struct {
          +    ID      int
          +    UserID  int     `gorm:"index"` // Foreign key (belongs to), tag `index` will create index for this column
          +    Email   string  `gorm:"type:varchar(100);unique_index"` // `type` set sql type, `unique_index` will create unique index for this column
          +    Subscribed bool
          +}
          +
          +type Address struct {
          +    ID       int
          +    Address1 string         `gorm:"not null;unique"` // Set field as not nullable and unique
          +    Address2 string         `gorm:"type:varchar(100);unique"`
          +    Post     sql.NullString `gorm:"not null"`
          +}
          +
          +type Language struct {
          +    ID   int
          +    Name string `gorm:"index:idx_name_code"` // Create index with name, and will create combined index if find other fields defined same name
          +    Code string `gorm:"index:idx_name_code"` // `unique_index` also works
          +}
          +
          +type CreditCard struct {
          +    gorm.Model
          +    UserID  uint
          +    Number  string
           }
           
          -

          Conventions & Overriding Conventions

          +

          Conventions

          gorm.Model struct

          -

          Gorm has defined struct gorm.Model, which could be embeded in your models, it will add fields ID, CreatedAt, UpdatedAt, DeletedAt to your model

          -
          // Model's definition
          +

          Base model definition gorm.Model, including fields ID, CreatedAt, UpdatedAt, DeletedAt, you could embed it in your model, or only write those fields you want

          +
          // Base Model's definition
           type Model struct {
          -  ID        uint `gorm:"primary_key"`
          +  ID        uint `gorm:"primary_key"`
             CreatedAt time.Time
             UpdatedAt time.Time
             DeletedAt *time.Time
           }
          +
          +// Add fields `ID`, `CreatedAt`, `UpdatedAt`, `DeletedAt`
          +type User struct {
          +  gorm.Model
          +  Name string
          +}
          +
          +// Only need field `ID`, `CreatedAt`
          +type User struct {
          +  ID        uint
          +  CreatedAt time.Time
          +  Name      string
          +}
           

          Table name is the pluralized version of struct name

          type User struct {} // default table name is `users`
           
           // set User's table name to be `profiles
          -type (User) TableName() string {
          +type (User) TableName() string {
             return "profiles"
           }
           
          -func (u User) TableName() string {
          +func (u User) TableName() string {
               if u.Role == "admin" {
                   return "admin_users"
               } else {
          @@ -649,33 +729,34 @@
           }
           
           // Disable table name's pluralization globally
          -db.SingularTable(true) // if set this to true, `User`'s default table name will be `user`, table name setted with `TableName` won't be affected
          +db.SingularTable(true) // if set this to true, `User`'s default table name will be `user`, table name setted with `TableName` won't be affected
           

          Column name is the snake case of field's name

          type User struct {
          -  ID uint             // column name will be `id`
          -  Name string         // column name will be `name`
          +  ID uint             // column name will be `id`
          +  Name string         // column name will be `name`
             Birthday time.Time  // column name will be `birthday`
             CreatedAt time.Time // column name will be `created_at`
           }
           
          +// Overriding Column Name
           type Animal struct {
          -    AnimalId    int64     `gorm:"column:beast_id"`         // set column name to `beast_id`
          +    AnimalId    int64     `gorm:"column:beast_id"`         // set column name to `beast_id`
               Birthday    time.Time `gorm:"column:day_of_the_beast"` // set column name to `day_of_the_beast`
          -    Age         int64     `gorm:"column:age_of_the_beast"` // set column name to `age_of_the_beast`
          +    Age         int64     `gorm:"column:age_of_the_beast"` // set column name to `age_of_the_beast`
           }
           

          Field ID as primary key

          type User struct {
          -  ID uint  // field named `ID` is the default primary key for `User`
          -  Name string
          +  ID   uint  // field named `ID` will be the default primary field
          +  Name string
           }
           
          -// your could also use tag `primary_key` to set other field as primary key
          +// Set a field to be primary field with tag `primary_key`
           type Animal struct {
          -  AnimalId int64 `gorm:"primary_key"` // set AnimalId to be primary key
          -  Name     string
          -  Age      int64
          +  AnimalId int64 `gorm:"primary_key"` // set AnimalId to be primary key
          +  Name     string
          +  Age      int64
           }
           

          Field CreatedAt used to store record's created time

          @@ -691,7 +772,7 @@ db.Model(&user).Update("CreatedAt""name", "jinzhu") // will set `UpdatedAt` to current time

          Use DeletedAt to store record's deleted time if field exists

          -

          Delete records having DeletedAt field, it won't delete the record from database, but will set field DeletedAt's value to current time.

          +

          Delete records having DeletedAt field, it won't be deleted from database, but only set field DeletedAt's value to current time, and the record is not findable when querying, refer Soft Delete

          diff --git a/search_index.json b/search_index.json new file mode 100644 index 00000000..8bc2a4f3 --- /dev/null +++ b/search_index.json @@ -0,0 +1 @@ +{"version":"0.5.12","fields":[{"name":"title","boost":10},{"name":"body","boost":1}],"ref":"url","documentStore":{"store":{"./":["1","1000","2000","_","aim","associ","author","auto","base","before/aft","belong","builder","callback","changelog","code","come","composit","connect","contributor","creat","create/save/update/delete/find","database"","db","db.create(&product{cod","db.delete(&product","db.first(&product","db.model(&product).update("price"","delet","develop","eager","err","extend","fantast","featur","find","friendli","full","func","github.com/jinzhu/gorm","go","golang","gorm","gorm.model","gorm.open("sqlite"","http://github.com/jinzhu","http://twitter.com/zhangjinzhu","https://github.com/jinzhu/gorm/graphs/contributor","id","import","instal","jinzhu","key","l1212","librari","licens","load","logger","main","mani","migrat","mit","nil","on","orm","overview","packag","panic("faield","plugin","polymorph","preload","price","primari","product","product'","quick","quot","quot;cod","quot;github.com/jinzhu/gorm"","quot;github.com/jinzhu/gorm/dialects/sqlite"","quot;l1212"","quot;test.db"","read","releas","sql","start","string","struct","test","transact","type","u","uint","under","updat","upgrad","v1.0","var","wosmvp@gmail.com","write"],"advanced.html":["0","3).scan(&result","advanc","ag","age").row","amp","amp;ag","amp;email","amp;us","apos;db&apo","apos;tx&apo","begin","below","builder","built","card","case","check","commit","composit","connect","createanimals(db","credit","custom","databas","db'","db.begin","db.db","db.db().ping","db.db().setmaxidleconns(10","db.db().setmaxopenconns(100","db.debug().where("nam","db.exec("drop","db.exec("upd","db.first(&user).limit(10).find(&users).geterror","db.logmode(fals","db.logmode(tru","db.model(&user).related(&credit_card).recordnotfound","db.model(&user{}).where("nam","db.raw("select","db.scanrows(row","db.setlogger(gorm.logger{revel.trac","db.setlogger(log.new(os.stdout","db.table("users").where("nam","db.where("nam","debug","default","defer","detail","diabl","don't","email","email").row","enabl","err","error","exampl","field","flow","found","func","function","gener","geterror","gorm","gorm'","gorm.db","gorm:"primary_key"","handl","happen","https://github.com/jinzhu/gorm/blob/master/logger.go","id","int","int64{11,22,33","interfac","iter","key","languagecod","log","logger","more","multipl","name","nil","note","object","on","onc","oper","order","perform","ping","point","pool","priamri","primari","print","product","queri","quot","quot;\\r\\n"","quot;giraffe"}).error","quot;hello","quot;jinzhu").first(&us","quot;jinzhu").first(&user).error","quot;jinzhu").row","quot;jinzhu").select("nam","quot;lion"}).error","raw","recordnotfound","refer","result","return","rollback","row","row.scan(&nam","rows.clos","rows.next","rows.scan(&nam","run","scan","set","shipped_at","show","singl","someth","specif","sql","sql.db","sql.row","string","struct","support","tabl","time.now","transact","tx","tx.commit","tx.creat","tx.create(&animal{nam","tx.rollback","type","us","usag","user","users;"","var","within","world").first(&user).recordnotfound"],"associations.html":["111","123","abov","account","amp","append","argument","associ","belong","belongs_to","between","card","cat","check","clear","condit","contain","count","credit_card","creditcard","current","customizeaccount","customizeperson","db.model(&user).association("languages"","db.model(&user).association("languages").append([]language{languagezh","db.model(&user).association("languages").append(language{nam","db.model(&user).association("languages").clear","db.model(&user).association("languages").count","db.model(&user).association("languages").delete([]language{languagezh","db.model(&user).association("languages").delete(languagezh","db.model(&user).association("languages").error","db.model(&user).association("languages").find(&languag","db.model(&user).association("languages").replace([]language{languagezh","db.model(&user).association("languages").replace(language{nam","db.model(&user).related(&card","db.model(&user).related(&email","db.model(&user).related(&languag","db.model(&user).related(&profil","delet","dog","easili","email","error","exampl","explicitli","field","fill","find","foreign","gorm.model","gorm:"foreignkey:profileid;associationforeignkey:refer"","gorm:"foreignkey:profilerefer"","gorm:"foreignkey:userid;associationforeignkey:refer"","gorm:"foreignkey:userrefer"","gorm:"many2many:personaccount;associationforeignkey:idaccount;foreignkey:idperson"","gorm:"many2many:user_languages;"","gorm:"polymorphic:owner;"","gorm:"primary_key:true"","handl","has_mani","has_on","helper","id","idaccount","idperson","inner","int","join","key","languag","languageen","mani","many2mani","match","mean","method","mode","name","need","new","note","number","omit","on","out","ownerid","ownertyp","pass","polymorph","primari","profil","profileid","profileref","queri","quot;creditcard"","quot;de"","quot;languages"","quot;languages"."id"","quot;user_languages"","quot;user_languages"."language_id"","quot;user_languages"."user_id"","record","refer","relat","relationship","remov","replac","return","same","select","sourc","source'","specifi","start","string","struct","support","tabl","thing","those","throw","toy","type","uint","us","user","user'","user_id","user_languag","userid","userref","valid","var","variabl","variable'","won't"],"callbacks.html":["1000","1000"","aftercr","aftercreate(scop","aftercreate(tx","afterdelet","afterfind","aftersav","afterupd","alreadi","associ","avail","befor","beforecr","beforedelet","beforesav","beforeupd","begin","blank","call","callback","chang","commit","creat","createdat","current","data","databas","default","defin","delet","edger","err","error","errors.new("read","errors.new("us","exampl","field","func","futur","gorm","gorm.db","gorm.scop","greater","gt","id","insert","load","made","method","model","need","object","oper","pass","pointer","preload","queri","quot;admin"","reload","return","rollback","run","same","save","save/delet","scope.db().model(u).update("role"","self","sql","stop","struct","those","timestamp","transact","tx.model(u).update("role"","u","u.id","u.readonli","unless","updat","updatedat","us","user","user'","user"","valu","visibl","want"],"changelog.html":["0","0001","01","02","02&apo","02")).update("deleted_at"","_","accord","affect","alert","amp;imag","apos;0001","applic","bcrypt.generatefrompassword(user.password","befor","beforesav","beforeupd","beforeupdate(scop","below","blank","break","callback","case","chang","check","column","common","convert","correctli","database'","db","db.unscoped().model(model).where("deleted_at","default","delete'","deleted_at","deletedat","doesn't","driver","encryptedpassword","enough","err","error","errrecordnotfound","exampl","exclud","exist","field","field'","fix","func","github.com/jinzhu/gorm/dialects/postgr","golint","good","gorm","gorm.db","gorm.expr("null"","gorm.model","gorm.open","gorm.scop","gorm:"column:s_k_u"","h_t_t_p","handl","have","hstore","http","http'","import","includ","initi","instead","interface{}{&us","it'","less","log","logic","look","lt","main","make","migrat","model","model'","move","mssql","name","necessari","need","new","nil","noth","now.mustparse("0001","null","out","overwrit","packag","pw","queri","quot","quot;github.com/jinzhu/gorm/dialects/mssql"","quot;github.com/jinzhu/now"","rang","record","recordnotfound","releas","renam","return","s_k_u","sampl","scope","scope.setcolumn","scope.setcolumn("encryptedpassword"","script","select","set","sku","soft","special","sql","struct","sure","tag","those","time","time.tim","todbnam","type","ugli","updat","upper","uri","us","user","user.encryptedpassword","v1.0","valu","var","won't","work"],"curd.html":["0","01","01&apo","1","1"","1").updatecolumn("quantity"","1).find(&users2","1,2,3","10","100","100).row","100).scan(&result","1000","10:23"","11","111","112","11}).updates(map[string]interface{}{"name"","17","18","18}).rowsaffect","2","2&apo","2"","2").find(&users).count(&count","2"}).find(&us","20","20").find(&us","20).delete(&us","20).firstorinit(&us","20}).find(&us","20}).first(&us","20}).firstorcreate(&us","20}).firstorinit(&us","21","21:34:10&apo","22","22}).find(&us","23","29","2@example.com"","2@example@example.com"","3","3).scan(&result","30","30}).firstorcreate(&us","30}).firstorinit(&us","42).row","99","abil","abov","activ","active=tru","actived=fals","add","address","address1","address{address1","afterupd","ag","age").find(&us","age").where("nam","age=100","age=18","age=30","amount","amountgreaterthan1000(db","amp","amp;ag","amp;nam","anim","animal.nam","animals("age"","animal{ag","anoth","api","apos;100&apo","apos;2&apo","apos;2013","apos;admin&apo","apos;en&apo","apos;galeone&apo","apos;jinzhu","apos;jinzhu&apo","apos;jinzhu'").or(map[string]interface{}{"name"","apos;jinzhu'").or(user{nam","apos;non_existing&apo","apos;super_admin&apo","apos;zh&apo","argument","assgin","assign","associ","attr","attribut","automat","avoid","back","batch","bcrypt.generatefrompassword(user.password","befor","beforecr","beforecreate(scop","beforesav","beforesave(scop","beforeupd","begin","below","between","billingaddress","birthday","birthday='2016","blank","call","callback","cancel","card","carefulli","chain","chainabl","chang","check","coalesce(age,'42&apo","cod","code","column","combin","commit","condit","conflict","conflict").create(&product","connect","count","creat","credit","credit_card","credit_cards.user_id","crud","current","data","databa","databas","date","db","db.create(&anim","db.create(&us","db.delete(&email","db.delete(&us","db.delete(email","db.find(&us","db.find(&users).pluck("age"","db.first(&us","db.firstorcreate(&us","db.firstorinit(&us","db.joins("join","db.last(&us","db.limit(10).find(&users1).limit","db.limit(3).find(&us","db.model(&product).update("price"","db.model(&product).updatecolumn("quantity"","db.model(&product).updates(map[string]interface{}{"price"","db.model(&product).where("quant","db.model(&user).omit("name").updates(map[string]interface{}{"name"","db.model(&user).select("name").updates(map[string]interface{}{"name"","db.model(&user).set("gorm:update_option"","db.model(&user).update("name"","db.model(&user).updatecolumn("name"","db.model(&user).updatecolumns(user{nam","db.model(&user).updates(map[string]interface{}{"name"","db.model(&user).updates(user{nam","db.model(&user).where("act","db.model(&user{}).pluck("name"","db.model(&user{}).where("nam","db.model(user{}).updates(user{nam","db.newrecord(us","db.not("nam","db.not("name"","db.not([]int64{1,2,3}).first(&us","db.not([]int64{}).first(&us","db.not(user{nam","db.offset(10).find(&users1).offset","db.offset(3).find(&us","db.order("ag","db.raw("select","db.save(&us","db.scopes(amountgreaterthan1000","db.scopes(amountgreaterthan1000).where("statu","db.scopes(orderstatus([]string{"paid"","db.select("nam","db.select([]string{"name"","db.set("gorm:delete_option"","db.set("gorm:insert_option"","db.set("gorm:query_option"","db.table("deleted_users").count(&count","db.table("deleted_users").createtable(&us","db.table("deleted_users").find(&deleted_us","db.table("deleted_users").pluck("name"","db.table("deleted_users").where("nam","db.table("orders").select("date(created_at","db.table("users").select("coalesce(age,?)"","db.table("users").select("nam","db.table("users").select("users.nam","db.table("users").where("id","db.unscoped().delete(&ord","db.unscoped().where("ag","db.where(&user{nam","db.where("ag","db.where("amount","db.where("created_at","db.where("email","db.where("nam","db.where("pay_mode_sign","db.where("rol","db.where("updated_at","db.where([]int64{20","db.where(map[string]interface{}{"name"","db.where(user{nam","default","defin","definit","delet","deleted_at","deleted_at="2013","deleted_us","deletedat","deletedat'","desc","desc").find(&users1).order("age"","desc").order("name").find(&us","detail","don't","dynam","email","emails.email","emails.email").joins("left","emails.user_id","email{{email","ensur","err","error","even","exampl","exist","express","extra","fals","field","field'","fields'","find","first","firstorcr","firstorinit","found","func","func(*db","given","gorm","gorm.db","gorm.expr("pric","gorm.expr("quant","gorm.scop","gorm:"default:'galeone'"","greater","group","gt","have","haven't","id","id=10","id=111","ignor","includ","init","inject","inlin","insert","int","int64","int{10","it'","jinzhu&apo","join","key","languag","language{{nam","last","lastweek","lastweek).find(&us","limit","load","lt;>","mani","map","map[string]interfac","map[string]interface{}{"age"","map[string]interface{}{"name"","match","mdoel'","method","model","more","multipl","name","name").find(&us","name,billing_address_id,shipping_address_id","name='hello&apo","name='jinzhu","need","new","nil","non","none","not(nam","note","noth","null","number","offset","omit","on","oper","optim","option","order","orderstatus(statu","overwrit","paid","paidwithcod(db","paidwithcod).find(&ord","paidwithcreditcard(db","paidwithcreditcard).find(&ord","paramet","pass","perform","perman","plain","pluck","price","primari","product","pw","quantiti","queri","quot","quot;%jin%").find(&us","quot;%jinhu%"","quot;%jinzhu%"","quot;%jinzhu%").delete(email","quot;"","quot;,"jinzhu").where("ag","quot;,20,"admin").find(&us","quot;22").find(&us","quot;411111111111").find(&us","quot;actived"","quot;addresses"","quot;admin").or("rol","quot;age"","quot;age"}).find(&us","quot;bil","quot;c"","quot;code"","quot;email","quot;emails"","quot;en"","quot;for","quot;hello"","quot;id"","quot;jinzhu","quot;jinzhu"","quot;jinzhu").count(&count","quot;jinzhu").delet","quot;jinzhu").find(&us","quot;jinzhu").first(&us","quot;jinzhu").or("nam","quot;jinzhu"}).assign(user{ag","quot;jinzhu"}).attrs(user{ag","quot;jinzhu"}).first(&us","quot;jinzhu"}).firstorcreate(&us","quot;jinzhu"}).firstorinit(&us","quot;jinzhu@example.com"","quot;jinzhu@example.org").joins("join","quot;languages"","quot;nam","quot;name"","quot;non_existing"","quot;non_existing"}).assign(user{ag","quot;non_existing"}).attrs("age"","quot;non_existing"}).attrs(user{ag","quot;on","quot;opt","quot;price"","quot;products"","quot;quantity"","quot;ship","quot;shipped"})).find(&ord","quot;super_admin").find(&us","quot;super_admin").not("nam","quot;updated_at"","quot;user_id","language_id"","quot;users"","quot;zh"","raw","read","record","refer","regardless","reorder","request","result","retriev","return","role","row","rows.next","rowsaffect","run","save","scan","scope","scope.setcolumn","scope.setcolumn("encryptedpassword"","scope.setcolumn("id"","select","set","ship","shippingaddress","similar","singl","skip","slice","soft","specifi","sql","start","statu","string","string{"jinzhu"","struct","sum(amount","tabl","tag","those","time","time.now","time.tim","timestamp","today).find(&us","total","total").group("date(created_at)").having("sum(amount","total").group("date(created_at)").row","transact","true","true).find(&users2","true).update("name"","type","unfound","unknown","unknown)").delete(&email","unknown)").update("nam","unscop","upda","updat","update").first(&us","updatecolumn","updated_at","updated_at='2013","updatedat","us","user","user'","user.ag","user.nam","user_id,email","user_languag","users.id","users.id").row","users.id").scan(&result","users.id").where("credit_cards.numb","users1","users2","user{ag","user{id","user{nam","uuid.new","valid","valu","values('99&apo","var","want","warn","without","won't","work","write","zero"],"database.html":["1st","2nd","3rd","4th","_","abov","add","ag","amp;ord","amp;product","append","auto","automat","automigr","chang","check","column","column'","connect","creat","data","databa","databas","database'","date","db","db.automigrate(&us","db.createtable(&us","db.droptable(&us","db.droptable("users"","db.droptableifexists(&us","db.hastable(&us","db.hastable("users"","db.model(&user{}).addforeignkey("city_id"","db.model(&user{}).addindex("idx_user_name"","db.model(&user{}).addindex("idx_user_name_age"","db.model(&user{}).adduniqueindex("idx_user_name"","db.model(&user{}).adduniqueindex("idx_user_name_age"","db.model(&user{}).dropcolumn("description"","db.model(&user{}).modifycolumn("description"","db.model(&user{}).removeindex("idx_user_name"","db.set("gorm:table_options"","dbname=gorm","delet","descript","description'","destin","dialect","driver","driver/mysql"","drop","dropcolumn","easier","err","exampl","exist","field","first","foreign","foreignkey","func","given","gorm","gorm.open("mysql"","gorm.open("postgres"","gorm.open("sqlite3"","handl","https://github.com/jinzhu/gorm/blob/master/dialect.go","idx_user_nam","idx_user_name_ag","import","includ","index","keep","key","main","migrat","miss","model","model'","modifi","modifycolumn","more","multipl","mysql","name","need","note","offici","ondelet","onupd","order","param","paramet","parsetim","path","postgresql","product","protect","quot;/tmp/gorm.db"","quot;age"","quot;cities(id)"","quot;engine=innodb"","quot;engine=innodb").automigrate(&us","quot;engine=innodb").createtable(&us","quot;github.com/go","quot;github.com/jinzhu/gorm"","quot;github.com/jinzhu/gorm/dialects/mssql"","quot;github.com/jinzhu/gorm/dialects/mysql"","quot;github.com/jinzhu/gorm/dialects/postgres"","quot;github.com/jinzhu/gorm/dialects/sqlite"","quot;name"","quot;products"","quot;restrict"","quot;text"","quot;user:password@/dbname?charset=utf8&parsetime=true&loc=local"","quot;user=gorm","refer","rememb","remov","schema","sql","sqlite3","sslmode=disable"","statement","suffix","support","tabl","table(id","text","those","time.tim","type","uniqu","unsupport","unus","updat","user","user`'","valu","warn","won't","wrap","write"],"development.html":["20","_draft","abov","afterdelet","afterqueri","anoth","api","append","architectur","avail","base","befor","beforecr","beforeupd","bridg","call","callback","chain","chainabl","check","creat","crud","current","custom","db","db.callback().create().after("gorm:create").register("update_created_at"","db.callback().create().before("gorm:create").after("gorm:before_create").register("my_plugin:before_create"","db.callback().create().before("gorm:create").register("update_created_at"","db.callback().create().register("update_created_at"","db.callback().create().remove("gorm:create"","db.callback().create().replace("gorm:create"","db.callback().delete().after("gorm:delete").register("my_plugin:after_delete"","db.callback().query().after("gorm:query").register("my_plugin:after_query"","db.callback().rowquery().register("publish:update_table_name"","db.callback().update().before("gorm:update").register("my_plugin:before_update"","db.first(&us","db.where("ag","db.where("nam","dbname=gorm","default","defiend","defin","delet","develop","each","err","exampl","exist","fulli","func","function","gorm","gorm.db","gorm.open("postgres"","gorm.scop","gorm:creat","grom","https://godoc.org/github.com/jinzhu/gorm","instanc","itself","name","new","newcreatefunct","nowfunc","on","oper","operation'","order","out","perform","plugin","power","pre","process","queri","quot","quot;_draft"","quot;jinzhu"","quot;user=gorm","refer","regist","relat","replac","row","row_queri","run","scope","scope.hascolumn("created"","scope.search.table(scope.tablenam","scope.setcolumn("created"","sslmode=disable"","start","tabl","type","updat","updatecr","updatecreated(scop","updatetablenam","updatetablename(scop","us","view","want","write"],"models.html":["255","add","address","address1","address2","affect","ag","age_of_the_beast","anim","animalid","apos;user_languages&apo","base","beast_id","belong","billingaddress","billingaddressid","birthday","bool","case","chang","code","column","combin","convent","creat","created_at","createdat","creditcard","creditcard'","current","databas","day_of_the_beast","db.create(&us","db.model(&user).update("createdat"","db.model(&user).update("name"","db.save(&us","db.singulartable(tru","default","defin","definit","delet","deletedat","deletedat'","disabl","email","email'","emb","exist","field","field'","find","findabl","foreign","func","global","gorm.model","gorm:"","gorm:"auto_increment"","gorm:"column:age_of_the_beast"","gorm:"column:beast_id"","gorm:"column:day_of_the_beast"","gorm:"index"","gorm:"index:idx_name_code"","gorm:"many2many:user_languages;"","gorm:"not","gorm:"primary_key"","gorm:"size:255"","gorm:"type:varchar(100);unique"","gorm:"type:varchar(100);unique_index"","have","id","ignor","ignorem","includ","index","int","int64","join","key","languag","mani","model","model'","name","name'","need","null"","null;unique"","nullabl","num","number","on","overrid","plural","post","primari","primary_key","profil","queri","quot","quot;admin"","quot;admin_users"","quot;jinzhu"","quot;profiles"","quot;users"","record","record'","refer","relationship","reset","return","same","save","set","shippingaddress","shippingaddressid","size","snake","soft","sql","sql.nullint64","sql.nullstr","store","string","struct","subscrib","tabl","tablenam","tag","those","time","time.now","time.tim","true","type","u","u.rol","uint","uniqu","unique_index","updat","updatedat","us","user","user'","user`'","userid","valu","version","want","won't","work","write"]},"length":9},"tokenStore":{"root":{"0":{"0":{"0":{"1":{"docs":{"changelog.html":{"ref":"changelog.html","tf":0.004784688995215311}}},"docs":{}},"docs":{}},"1":{"docs":{"changelog.html":{"ref":"changelog.html","tf":0.014354066985645933},"curd.html":{"ref":"curd.html","tf":0.0005370569280343716}},"&":{"docs":{},"a":{"docs":{},"p":{"docs":{},"o":{"docs":{"curd.html":{"ref":"curd.html","tf":0.0005370569280343716}}}}}}},"2":{"docs":{"changelog.html":{"ref":"changelog.html","tf":0.004784688995215311}},"&":{"docs":{},"a":{"docs":{},"p":{"docs":{},"o":{"docs":{"changelog.html":{"ref":"changelog.html","tf":0.004784688995215311}}}}},"q":{"docs":{},"u":{"docs":{},"o":{"docs":{},"t":{"docs":{},";":{"docs":{},")":{"docs":{},")":{"docs":{},".":{"docs":{},"u":{"docs":{},"p":{"docs":{},"d":{"docs":{},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},"(":{"docs":{},"&":{"docs":{},"q":{"docs":{},"u":{"docs":{},"o":{"docs":{},"t":{"docs":{},";":{"docs":{},"d":{"docs":{},"e":{"docs":{},"l":{"docs":{},"e":{"docs":{},"t":{"docs":{},"e":{"docs":{},"d":{"docs":{},"_":{"docs":{},"a":{"docs":{},"t":{"docs":{},"&":{"docs":{},"q":{"docs":{},"u":{"docs":{},"o":{"docs":{},"t":{"docs":{"changelog.html":{"ref":"changelog.html","tf":0.004784688995215311}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"docs":{"advanced.html":{"ref":"advanced.html","tf":0.00303951367781155},"changelog.html":{"ref":"changelog.html","tf":0.004784688995215311},"curd.html":{"ref":"curd.html","tf":0.001611170784103115}}},"1":{"0":{"0":{"0":{"docs":{"./":{"ref":"./","tf":0.008},"callbacks.html":{"ref":"callbacks.html","tf":0.010362694300518135},"curd.html":{"ref":"curd.html","tf":0.001611170784103115}},"&":{"docs":{},"q":{"docs":{},"u":{"docs":{},"o":{"docs":{},"t":{"docs":{"callbacks.html":{"ref":"callbacks.html","tf":0.0051813471502590676}}}}}}}},"docs":{"curd.html":{"ref":"curd.html","tf":0.001611170784103115}},")":{"docs":{},".":{"docs":{},"r":{"docs":{},"o":{"docs":{},"w":{"docs":{"curd.html":{"ref":"curd.html","tf":0.0005370569280343716}}}}},"s":{"docs":{},"c":{"docs":{},"a":{"docs":{},"n":{"docs":{},"(":{"docs":{},"&":{"docs":{},"a":{"docs":{},"m":{"docs":{},"p":{"docs":{},";":{"docs":{},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"u":{"docs":{},"l":{"docs":{},"t":{"docs":{"curd.html":{"ref":"curd.html","tf":0.0005370569280343716}}}}}}}}}}}}}}}}}}}}},"docs":{"curd.html":{"ref":"curd.html","tf":0.004833512352309345}},":":{"2":{"3":{"docs":{},"&":{"docs":{},"q":{"docs":{},"u":{"docs":{},"o":{"docs":{},"t":{"docs":{"curd.html":{"ref":"curd.html","tf":0.0010741138560687433}}}}}}}},"docs":{}},"docs":{}}},"1":{"1":{"docs":{"associations.html":{"ref":"associations.html","tf":0.010893246187363835},"curd.html":{"ref":"curd.html","tf":0.009129967776584319}}},"2":{"docs":{"curd.html":{"ref":"curd.html","tf":0.001611170784103115}}},"docs":{"curd.html":{"ref":"curd.html","tf":0.005907626208378088}},"}":{"docs":{},")":{"docs":{},".":{"docs":{},"u":{"docs":{},"p":{"docs":{},"d":{"docs":{},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},"s":{"docs":{},"(":{"docs":{},"m":{"docs":{},"a":{"docs":{},"p":{"docs":{},"[":{"docs":{},"s":{"docs":{},"t":{"docs":{},"r":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},"]":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"f":{"docs":{},"a":{"docs":{},"c":{"docs":{},"e":{"docs":{},"{":{"docs":{},"}":{"docs":{},"{":{"docs":{},"&":{"docs":{},"q":{"docs":{},"u":{"docs":{},"o":{"docs":{},"t":{"docs":{},";":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},"&":{"docs":{},"q":{"docs":{},"u":{"docs":{},"o":{"docs":{},"t":{"docs":{"curd.html":{"ref":"curd.html","tf":0.0005370569280343716}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"2":{"3":{"docs":{"associations.html":{"ref":"associations.html","tf":0.004357298474945534}}},"docs":{}},"7":{"docs":{"curd.html":{"ref":"curd.html","tf":0.0053705692803437165}}},"8":{"docs":{"curd.html":{"ref":"curd.html","tf":0.004296455424274973}},"}":{"docs":{},")":{"docs":{},".":{"docs":{},"r":{"docs":{},"o":{"docs":{},"w":{"docs":{},"s":{"docs":{},"a":{"docs":{},"f":{"docs":{},"f":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{"curd.html":{"ref":"curd.html","tf":0.0005370569280343716}}}}}}}}}}}}}}}},"docs":{"./":{"ref":"./","tf":0.016},"curd.html":{"ref":"curd.html","tf":0.008055853920515575}},"&":{"docs":{},"q":{"docs":{},"u":{"docs":{},"o":{"docs":{},"t":{"docs":{"curd.html":{"ref":"curd.html","tf":0.0021482277121374865}},";":{"docs":{},")":{"docs":{},".":{"docs":{},"u":{"docs":{},"p":{"docs":{},"d":{"docs":{},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},"c":{"docs":{},"o":{"docs":{},"l":{"docs":{},"u":{"docs":{},"m":{"docs":{},"n":{"docs":{},"(":{"docs":{},"&":{"docs":{},"q":{"docs":{},"u":{"docs":{},"o":{"docs":{},"t":{"docs":{},";":{"docs":{},"q":{"docs":{},"u":{"docs":{},"a":{"docs":{},"n":{"docs":{},"t":{"docs":{},"i":{"docs":{},"t":{"docs":{},"y":{"docs":{},"&":{"docs":{},"q":{"docs":{},"u":{"docs":{},"o":{"docs":{},"t":{"docs":{"curd.html":{"ref":"curd.html","tf":0.0005370569280343716}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},")":{"docs":{},".":{"docs":{},"f":{"docs":{},"i":{"docs":{},"n":{"docs":{},"d":{"docs":{},"(":{"docs":{},"&":{"docs":{},"a":{"docs":{},"m":{"docs":{},"p":{"docs":{},";":{"docs":{},"u":{"docs":{},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},"s":{"2":{"docs":{"curd.html":{"ref":"curd.html","tf":0.0010741138560687433}}},"docs":{}}}}}}}}}}}}}}}}}},",":{"2":{"docs":{},",":{"3":{"docs":{"curd.html":{"ref":"curd.html","tf":0.0005370569280343716}}},"docs":{}}},"docs":{}},"s":{"docs":{},"t":{"docs":{"database.html":{"ref":"database.html","tf":0.0034129692832764505}}}}},"2":{"0":{"0":{"0":{"docs":{"./":{"ref":"./","tf":0.016}}},"docs":{}},"docs":{"curd.html":{"ref":"curd.html","tf":0.01288936627282492},"development.html":{"ref":"development.html","tf":0.004807692307692308}},"&":{"docs":{},"q":{"docs":{},"u":{"docs":{},"o":{"docs":{},"t":{"docs":{},";":{"docs":{},")":{"docs":{},".":{"docs":{},"f":{"docs":{},"i":{"docs":{},"n":{"docs":{},"d":{"docs":{},"(":{"docs":{},"&":{"docs":{},"a":{"docs":{},"m":{"docs":{},"p":{"docs":{},";":{"docs":{},"u":{"docs":{},"s":{"docs":{"curd.html":{"ref":"curd.html","tf":0.0010741138560687433}}}}}}}}}}}}}}}}}}}}}},")":{"docs":{},".":{"docs":{},"d":{"docs":{},"e":{"docs":{},"l":{"docs":{},"e":{"docs":{},"t":{"docs":{},"e":{"docs":{},"(":{"docs":{},"&":{"docs":{},"a":{"docs":{},"m":{"docs":{},"p":{"docs":{},";":{"docs":{},"u":{"docs":{},"s":{"docs":{"curd.html":{"ref":"curd.html","tf":0.0005370569280343716}}}}}}}}}}}}}}}},"f":{"docs":{},"i":{"docs":{},"r":{"docs":{},"s":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{},"i":{"docs":{},"n":{"docs":{},"i":{"docs":{},"t":{"docs":{},"(":{"docs":{},"&":{"docs":{},"a":{"docs":{},"m":{"docs":{},"p":{"docs":{},";":{"docs":{},"u":{"docs":{},"s":{"docs":{"curd.html":{"ref":"curd.html","tf":0.0005370569280343716}}}}}}}}}}}}}}}}}}}}}}},"}":{"docs":{},")":{"docs":{},".":{"docs":{},"f":{"docs":{},"i":{"docs":{},"n":{"docs":{},"d":{"docs":{},"(":{"docs":{},"&":{"docs":{},"a":{"docs":{},"m":{"docs":{},"p":{"docs":{},";":{"docs":{},"u":{"docs":{},"s":{"docs":{"curd.html":{"ref":"curd.html","tf":0.0005370569280343716}}}}}}}}}}}},"r":{"docs":{},"s":{"docs":{},"t":{"docs":{},"(":{"docs":{},"&":{"docs":{},"a":{"docs":{},"m":{"docs":{},"p":{"docs":{},";":{"docs":{},"u":{"docs":{},"s":{"docs":{"curd.html":{"ref":"curd.html","tf":0.0005370569280343716}}}}}}}}}},"o":{"docs":{},"r":{"docs":{},"c":{"docs":{},"r":{"docs":{},"e":{"docs":{},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},"(":{"docs":{},"&":{"docs":{},"a":{"docs":{},"m":{"docs":{},"p":{"docs":{},";":{"docs":{},"u":{"docs":{},"s":{"docs":{"curd.html":{"ref":"curd.html","tf":0.0010741138560687433}}}}}}}}}}}}}}}},"i":{"docs":{},"n":{"docs":{},"i":{"docs":{},"t":{"docs":{},"(":{"docs":{},"&":{"docs":{},"a":{"docs":{},"m":{"docs":{},"p":{"docs":{},";":{"docs":{},"u":{"docs":{},"s":{"docs":{"curd.html":{"ref":"curd.html","tf":0.0010741138560687433}}}}}}}}}}}}}}}}}}}}}}}}},"1":{"docs":{"curd.html":{"ref":"curd.html","tf":0.0010741138560687433}},":":{"3":{"4":{"docs":{},":":{"1":{"0":{"docs":{},"&":{"docs":{},"a":{"docs":{},"p":{"docs":{},"o":{"docs":{"curd.html":{"ref":"curd.html","tf":0.0053705692803437165}}}}}}},"docs":{}},"docs":{}}},"docs":{}},"docs":{}}},"2":{"docs":{"curd.html":{"ref":"curd.html","tf":0.0005370569280343716}},"}":{"docs":{},")":{"docs":{},".":{"docs":{},"f":{"docs":{},"i":{"docs":{},"n":{"docs":{},"d":{"docs":{},"(":{"docs":{},"&":{"docs":{},"a":{"docs":{},"m":{"docs":{},"p":{"docs":{},";":{"docs":{},"u":{"docs":{},"s":{"docs":{"curd.html":{"ref":"curd.html","tf":0.0005370569280343716}}}}}}}}}}}}}}}}}},"3":{"docs":{"curd.html":{"ref":"curd.html","tf":0.0010741138560687433}}},"5":{"5":{"docs":{"models.html":{"ref":"models.html","tf":0.00202020202020202}}},"docs":{}},"9":{"docs":{"curd.html":{"ref":"curd.html","tf":0.0010741138560687433}}},"docs":{"curd.html":{"ref":"curd.html","tf":0.0021482277121374865}},"&":{"docs":{},"a":{"docs":{},"p":{"docs":{},"o":{"docs":{"curd.html":{"ref":"curd.html","tf":0.0021482277121374865}}}}},"q":{"docs":{},"u":{"docs":{},"o":{"docs":{},"t":{"docs":{"curd.html":{"ref":"curd.html","tf":0.0010741138560687433}},";":{"docs":{},")":{"docs":{},".":{"docs":{},"f":{"docs":{},"i":{"docs":{},"n":{"docs":{},"d":{"docs":{},"(":{"docs":{},"&":{"docs":{},"a":{"docs":{},"m":{"docs":{},"p":{"docs":{},";":{"docs":{},"u":{"docs":{},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},"s":{"docs":{},")":{"docs":{},".":{"docs":{},"c":{"docs":{},"o":{"docs":{},"u":{"docs":{},"n":{"docs":{},"t":{"docs":{},"(":{"docs":{},"&":{"docs":{},"a":{"docs":{},"m":{"docs":{},"p":{"docs":{},";":{"docs":{},"c":{"docs":{},"o":{"docs":{},"u":{"docs":{},"n":{"docs":{},"t":{"docs":{"curd.html":{"ref":"curd.html","tf":0.0005370569280343716}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"}":{"docs":{},")":{"docs":{},".":{"docs":{},"f":{"docs":{},"i":{"docs":{},"n":{"docs":{},"d":{"docs":{},"(":{"docs":{},"&":{"docs":{},"a":{"docs":{},"m":{"docs":{},"p":{"docs":{},";":{"docs":{},"u":{"docs":{},"s":{"docs":{"curd.html":{"ref":"curd.html","tf":0.0021482277121374865}}}}}}}}}}}}}}}}}}}}}}},"@":{"docs":{},"e":{"docs":{},"x":{"docs":{},"a":{"docs":{},"m":{"docs":{},"p":{"docs":{},"l":{"docs":{},"e":{"docs":{},".":{"docs":{},"c":{"docs":{},"o":{"docs":{},"m":{"docs":{},"&":{"docs":{},"q":{"docs":{},"u":{"docs":{},"o":{"docs":{},"t":{"docs":{"curd.html":{"ref":"curd.html","tf":0.0005370569280343716}}}}}}}}}}},"@":{"docs":{},"e":{"docs":{},"x":{"docs":{},"a":{"docs":{},"m":{"docs":{},"p":{"docs":{},"l":{"docs":{},"e":{"docs":{},".":{"docs":{},"c":{"docs":{},"o":{"docs":{},"m":{"docs":{},"&":{"docs":{},"q":{"docs":{},"u":{"docs":{},"o":{"docs":{},"t":{"docs":{"curd.html":{"ref":"curd.html","tf":0.0005370569280343716}}}}}}}}}}}}}}}}}}}}}}}}}}},"n":{"docs":{},"d":{"docs":{"database.html":{"ref":"database.html","tf":0.0034129692832764505}}}}},"3":{"0":{"docs":{"curd.html":{"ref":"curd.html","tf":0.0010741138560687433}},"}":{"docs":{},")":{"docs":{},".":{"docs":{},"f":{"docs":{},"i":{"docs":{},"r":{"docs":{},"s":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{},"c":{"docs":{},"r":{"docs":{},"e":{"docs":{},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},"(":{"docs":{},"&":{"docs":{},"a":{"docs":{},"m":{"docs":{},"p":{"docs":{},";":{"docs":{},"u":{"docs":{},"s":{"docs":{"curd.html":{"ref":"curd.html","tf":0.0010741138560687433}}}}}}}}}}}}}}}},"i":{"docs":{},"n":{"docs":{},"i":{"docs":{},"t":{"docs":{},"(":{"docs":{},"&":{"docs":{},"a":{"docs":{},"m":{"docs":{},"p":{"docs":{},";":{"docs":{},"u":{"docs":{},"s":{"docs":{"curd.html":{"ref":"curd.html","tf":0.0010741138560687433}}}}}}}}}}}}}}}}}}}}}}}}},"docs":{"curd.html":{"ref":"curd.html","tf":0.0010741138560687433}},")":{"docs":{},".":{"docs":{},"s":{"docs":{},"c":{"docs":{},"a":{"docs":{},"n":{"docs":{},"(":{"docs":{},"&":{"docs":{},"a":{"docs":{},"m":{"docs":{},"p":{"docs":{},";":{"docs":{},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"u":{"docs":{},"l":{"docs":{},"t":{"docs":{"advanced.html":{"ref":"advanced.html","tf":0.00303951367781155},"curd.html":{"ref":"curd.html","tf":0.0010741138560687433}}}}}}}}}}}}}}}}}}}},"r":{"docs":{},"d":{"docs":{"database.html":{"ref":"database.html","tf":0.0034129692832764505}}}}},"4":{"2":{"docs":{},")":{"docs":{},".":{"docs":{},"r":{"docs":{},"o":{"docs":{},"w":{"docs":{"curd.html":{"ref":"curd.html","tf":0.0005370569280343716}}}}}}}},"docs":{},"t":{"docs":{},"h":{"docs":{"database.html":{"ref":"database.html","tf":0.0034129692832764505}}}}},"9":{"9":{"docs":{"curd.html":{"ref":"curd.html","tf":0.0005370569280343716}}},"docs":{}},"docs":{},"_":{"docs":{"./":{"ref":"./","tf":0.008},"changelog.html":{"ref":"changelog.html","tf":0.009569377990430622},"database.html":{"ref":"database.html","tf":0.027303754266211604}},"d":{"docs":{},"r":{"docs":{},"a":{"docs":{},"f":{"docs":{},"t":{"docs":{"development.html":{"ref":"development.html","tf":0.004807692307692308}}}}}}}},"a":{"docs":{},"i":{"docs":{},"m":{"docs":{"./":{"ref":"./","tf":0.008}}}},"s":{"docs":{},"s":{"docs":{},"o":{"docs":{},"c":{"docs":{},"i":{"docs":{"./":{"ref":"./","tf":0.008},"associations.html":{"ref":"associations.html","tf":0.037037037037037035},"callbacks.html":{"ref":"callbacks.html","tf":0.02072538860103627},"curd.html":{"ref":"curd.html","tf":0.0026852846401718583}}}}},"g":{"docs":{},"i":{"docs":{},"n":{"docs":{"curd.html":{"ref":"curd.html","tf":0.0005370569280343716}}}}},"i":{"docs":{},"g":{"docs":{},"n":{"docs":{"curd.html":{"ref":"curd.html","tf":0.00322234156820623}}}}}}},"u":{"docs":{},"t":{"docs":{},"h":{"docs":{},"o":{"docs":{},"r":{"docs":{"./":{"ref":"./","tf":0.008}}}}},"o":{"docs":{"./":{"ref":"./","tf":0.008},"database.html":{"ref":"database.html","tf":0.006825938566552901}},"m":{"docs":{},"a":{"docs":{},"t":{"docs":{"curd.html":{"ref":"curd.html","tf":0.0010741138560687433},"database.html":{"ref":"database.html","tf":0.0034129692832764505}}}},"i":{"docs":{},"g":{"docs":{},"r":{"docs":{"database.html":{"ref":"database.html","tf":0.0034129692832764505}}}}}}}}},"d":{"docs":{},"v":{"docs":{},"a":{"docs":{},"n":{"docs":{},"c":{"docs":{"advanced.html":{"ref":"advanced.html","tf":0.00303951367781155}}}}}},"d":{"docs":{"curd.html":{"ref":"curd.html","tf":0.0026852846401718583},"database.html":{"ref":"database.html","tf":0.027303754266211604},"models.html":{"ref":"models.html","tf":0.00202020202020202}},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"1":{"docs":{"curd.html":{"ref":"curd.html","tf":0.0010741138560687433},"models.html":{"ref":"models.html","tf":0.00202020202020202}}},"2":{"docs":{"models.html":{"ref":"models.html","tf":0.00202020202020202}}},"docs":{"curd.html":{"ref":"curd.html","tf":0.004296455424274973},"models.html":{"ref":"models.html","tf":0.006060606060606061}},"{":{"docs":{},"a":{"docs":{},"d":{"docs":{},"d":{"docs":{},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"1":{"docs":{"curd.html":{"ref":"curd.html","tf":0.0010741138560687433}}},"docs":{}}}}}}}}}}}}}}},"g":{"docs":{"advanced.html":{"ref":"advanced.html","tf":0.015197568389057751},"curd.html":{"ref":"curd.html","tf":0.02201933404940924},"database.html":{"ref":"database.html","tf":0.0034129692832764505},"models.html":{"ref":"models.html","tf":0.006060606060606061}},"e":{"docs":{},"&":{"docs":{},"q":{"docs":{},"u":{"docs":{},"o":{"docs":{},"t":{"docs":{},";":{"docs":{},")":{"docs":{},".":{"docs":{},"r":{"docs":{},"o":{"docs":{},"w":{"docs":{"advanced.html":{"ref":"advanced.html","tf":0.00303951367781155}}}}},"f":{"docs":{},"i":{"docs":{},"n":{"docs":{},"d":{"docs":{},"(":{"docs":{},"&":{"docs":{},"a":{"docs":{},"m":{"docs":{},"p":{"docs":{},";":{"docs":{},"u":{"docs":{},"s":{"docs":{"curd.html":{"ref":"curd.html","tf":0.0010741138560687433}}}}}}}}}}}}}},"w":{"docs":{},"h":{"docs":{},"e":{"docs":{},"r":{"docs":{},"e":{"docs":{},"(":{"docs":{},"&":{"docs":{},"q":{"docs":{},"u":{"docs":{},"o":{"docs":{},"t":{"docs":{},";":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{"curd.html":{"ref":"curd.html","tf":0.0005370569280343716}}}}}}}}}}}}}}}}}}}}}}}}},"=":{"1":{"0":{"0":{"docs":{"curd.html":{"ref":"curd.html","tf":0.0005370569280343716}}},"docs":{}},"8":{"docs":{"curd.html":{"ref":"curd.html","tf":0.00322234156820623}}},"docs":{}},"3":{"0":{"docs":{"curd.html":{"ref":"curd.html","tf":0.0005370569280343716}}},"docs":{}},"docs":{}},"_":{"docs":{},"o":{"docs":{},"f":{"docs":{},"_":{"docs":{},"t":{"docs":{},"h":{"docs":{},"e":{"docs":{},"_":{"docs":{},"b":{"docs":{},"e":{"docs":{},"a":{"docs":{},"s":{"docs":{},"t":{"docs":{"models.html":{"ref":"models.html","tf":0.00202020202020202}}}}}}}}}}}}}}}}},"m":{"docs":{},"p":{"docs":{"advanced.html":{"ref":"advanced.html","tf":0.0060790273556231},"associations.html":{"ref":"associations.html","tf":0.013071895424836602},"curd.html":{"ref":"curd.html","tf":0.0026852846401718583}},";":{"docs":{},"a":{"docs":{},"g":{"docs":{"advanced.html":{"ref":"advanced.html","tf":0.00911854103343465},"curd.html":{"ref":"curd.html","tf":0.0005370569280343716}}}},"e":{"docs":{},"m":{"docs":{},"a":{"docs":{},"i":{"docs":{},"l":{"docs":{"advanced.html":{"ref":"advanced.html","tf":0.0060790273556231}}}}}}},"u":{"docs":{},"s":{"docs":{"advanced.html":{"ref":"advanced.html","tf":0.00303951367781155}}}},"i":{"docs":{},"m":{"docs":{},"a":{"docs":{},"g":{"docs":{"changelog.html":{"ref":"changelog.html","tf":0.004784688995215311}}}}}},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{"curd.html":{"ref":"curd.html","tf":0.0010741138560687433}}}}},"o":{"docs":{},"r":{"docs":{},"d":{"docs":{"database.html":{"ref":"database.html","tf":0.0034129692832764505}}}}},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"d":{"docs":{},"u":{"docs":{},"c":{"docs":{},"t":{"docs":{"database.html":{"ref":"database.html","tf":0.0034129692832764505}}}}}}}}}}},"o":{"docs":{},"u":{"docs":{},"n":{"docs":{},"t":{"docs":{"curd.html":{"ref":"curd.html","tf":0.0010741138560687433}},"g":{"docs":{},"r":{"docs":{},"e":{"docs":{},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"t":{"docs":{},"h":{"docs":{},"a":{"docs":{},"n":{"1":{"0":{"0":{"0":{"docs":{},"(":{"docs":{},"d":{"docs":{},"b":{"docs":{"curd.html":{"ref":"curd.html","tf":0.0005370569280343716}}}}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}}}}}}}}}}}}}}}}},"p":{"docs":{},"o":{"docs":{},"s":{"docs":{},";":{"0":{"0":{"0":{"1":{"docs":{"changelog.html":{"ref":"changelog.html","tf":0.004784688995215311}}},"docs":{}},"docs":{}},"docs":{}},"1":{"0":{"0":{"docs":{},"&":{"docs":{},"a":{"docs":{},"p":{"docs":{},"o":{"docs":{"curd.html":{"ref":"curd.html","tf":0.0010741138560687433}}}}}}},"docs":{}},"docs":{}},"2":{"0":{"1":{"3":{"docs":{"curd.html":{"ref":"curd.html","tf":0.0026852846401718583}}},"docs":{}},"docs":{}},"docs":{},"&":{"docs":{},"a":{"docs":{},"p":{"docs":{},"o":{"docs":{"curd.html":{"ref":"curd.html","tf":0.00322234156820623}}}}}}},"docs":{},"d":{"docs":{},"b":{"docs":{},"&":{"docs":{},"a":{"docs":{},"p":{"docs":{},"o":{"docs":{"advanced.html":{"ref":"advanced.html","tf":0.00303951367781155}}}}}}}},"t":{"docs":{},"x":{"docs":{},"&":{"docs":{},"a":{"docs":{},"p":{"docs":{},"o":{"docs":{"advanced.html":{"ref":"advanced.html","tf":0.00303951367781155}}}}}}}},"a":{"docs":{},"d":{"docs":{},"m":{"docs":{},"i":{"docs":{},"n":{"docs":{},"&":{"docs":{},"a":{"docs":{},"p":{"docs":{},"o":{"docs":{"curd.html":{"ref":"curd.html","tf":0.0010741138560687433}}}}}}}}}}},"e":{"docs":{},"n":{"docs":{},"&":{"docs":{},"a":{"docs":{},"p":{"docs":{},"o":{"docs":{"curd.html":{"ref":"curd.html","tf":0.0005370569280343716}}}}}}}},"g":{"docs":{},"a":{"docs":{},"l":{"docs":{},"e":{"docs":{},"o":{"docs":{},"n":{"docs":{},"e":{"docs":{},"&":{"docs":{},"a":{"docs":{},"p":{"docs":{},"o":{"docs":{"curd.html":{"ref":"curd.html","tf":0.0005370569280343716}}}}}}}}}}}}},"j":{"docs":{},"i":{"docs":{},"n":{"docs":{},"z":{"docs":{},"h":{"docs":{},"u":{"docs":{"curd.html":{"ref":"curd.html","tf":0.001611170784103115}},"&":{"docs":{},"a":{"docs":{},"p":{"docs":{},"o":{"docs":{"curd.html":{"ref":"curd.html","tf":0.0053705692803437165}},"s":{"docs":{},";":{"docs":{},"&":{"docs":{},"q":{"docs":{},"u":{"docs":{},"o":{"docs":{},"t":{"docs":{},";":{"docs":{},")":{"docs":{},".":{"docs":{},"o":{"docs":{},"r":{"docs":{},"(":{"docs":{},"m":{"docs":{},"a":{"docs":{},"p":{"docs":{},"[":{"docs":{},"s":{"docs":{},"t":{"docs":{},"r":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},"]":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"f":{"docs":{},"a":{"docs":{},"c":{"docs":{},"e":{"docs":{},"{":{"docs":{},"}":{"docs":{},"{":{"docs":{},"&":{"docs":{},"q":{"docs":{},"u":{"docs":{},"o":{"docs":{},"t":{"docs":{},";":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},"&":{"docs":{},"q":{"docs":{},"u":{"docs":{},"o":{"docs":{},"t":{"docs":{"curd.html":{"ref":"curd.html","tf":0.0005370569280343716}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"u":{"docs":{},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},"{":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{"curd.html":{"ref":"curd.html","tf":0.0005370569280343716}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"n":{"docs":{},"o":{"docs":{},"n":{"docs":{},"_":{"docs":{},"e":{"docs":{},"x":{"docs":{},"i":{"docs":{},"s":{"docs":{},"t":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},"&":{"docs":{},"a":{"docs":{},"p":{"docs":{},"o":{"docs":{"curd.html":{"ref":"curd.html","tf":0.0021482277121374865}}}}}}}}}}}}}}}}}},"s":{"docs":{},"u":{"docs":{},"p":{"docs":{},"e":{"docs":{},"r":{"docs":{},"_":{"docs":{},"a":{"docs":{},"d":{"docs":{},"m":{"docs":{},"i":{"docs":{},"n":{"docs":{},"&":{"docs":{},"a":{"docs":{},"p":{"docs":{},"o":{"docs":{"curd.html":{"ref":"curd.html","tf":0.0005370569280343716}}}}}}}}}}}}}}}}},"z":{"docs":{},"h":{"docs":{},"&":{"docs":{},"a":{"docs":{},"p":{"docs":{},"o":{"docs":{"curd.html":{"ref":"curd.html","tf":0.0005370569280343716}}}}}}}},"u":{"docs":{},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},"_":{"docs":{},"l":{"docs":{},"a":{"docs":{},"n":{"docs":{},"g":{"docs":{},"u":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"s":{"docs":{},"&":{"docs":{},"a":{"docs":{},"p":{"docs":{},"o":{"docs":{"models.html":{"ref":"models.html","tf":0.00202020202020202}}}}}}}}}}}}}}}}}}}}}}},"p":{"docs":{},"e":{"docs":{},"n":{"docs":{},"d":{"docs":{"associations.html":{"ref":"associations.html","tf":0.004357298474945534},"database.html":{"ref":"database.html","tf":0.0034129692832764505},"development.html":{"ref":"development.html","tf":0.004807692307692308}}}}},"l":{"docs":{},"i":{"docs":{},"c":{"docs":{"changelog.html":{"ref":"changelog.html","tf":0.009569377990430622}}}}}},"i":{"docs":{"curd.html":{"ref":"curd.html","tf":0.0005370569280343716},"development.html":{"ref":"development.html","tf":0.014423076923076924}}}},"b":{"docs":{},"o":{"docs":{},"v":{"docs":{"associations.html":{"ref":"associations.html","tf":0.002178649237472767},"curd.html":{"ref":"curd.html","tf":0.0005370569280343716},"database.html":{"ref":"database.html","tf":0.0034129692832764505},"development.html":{"ref":"development.html","tf":0.004807692307692308}}}},"i":{"docs":{},"l":{"docs":{"curd.html":{"ref":"curd.html","tf":0.0005370569280343716}}}}},"c":{"docs":{},"c":{"docs":{},"o":{"docs":{},"u":{"docs":{},"n":{"docs":{},"t":{"docs":{"associations.html":{"ref":"associations.html","tf":0.002178649237472767}}}}},"r":{"docs":{},"d":{"docs":{"changelog.html":{"ref":"changelog.html","tf":0.004784688995215311}}}}}},"t":{"docs":{},"i":{"docs":{},"v":{"docs":{"curd.html":{"ref":"curd.html","tf":0.0005370569280343716}},"e":{"docs":{},"=":{"docs":{},"t":{"docs":{},"r":{"docs":{},"u":{"docs":{"curd.html":{"ref":"curd.html","tf":0.0005370569280343716}}}}}},"d":{"docs":{},"=":{"docs":{},"f":{"docs":{},"a":{"docs":{},"l":{"docs":{},"s":{"docs":{"curd.html":{"ref":"curd.html","tf":0.0010741138560687433}}}}}}}}}}}}},"r":{"docs":{},"g":{"docs":{},"u":{"docs":{},"m":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{"associations.html":{"ref":"associations.html","tf":0.004357298474945534},"curd.html":{"ref":"curd.html","tf":0.001611170784103115}}}}}}}},"c":{"docs":{},"h":{"docs":{},"i":{"docs":{},"t":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},"u":{"docs":{},"r":{"docs":{"development.html":{"ref":"development.html","tf":0.009615384615384616}}}}}}}}}}}},"f":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"c":{"docs":{},"r":{"docs":{"callbacks.html":{"ref":"callbacks.html","tf":0.010362694300518135}},"e":{"docs":{},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},"(":{"docs":{},"s":{"docs":{},"c":{"docs":{},"o":{"docs":{},"p":{"docs":{"callbacks.html":{"ref":"callbacks.html","tf":0.0051813471502590676}}}}}},"t":{"docs":{},"x":{"docs":{"callbacks.html":{"ref":"callbacks.html","tf":0.0051813471502590676}}}}}}}}}}},"d":{"docs":{},"e":{"docs":{},"l":{"docs":{},"e":{"docs":{},"t":{"docs":{"callbacks.html":{"ref":"callbacks.html","tf":0.0051813471502590676},"development.html":{"ref":"development.html","tf":0.004807692307692308}}}}}}},"f":{"docs":{},"i":{"docs":{},"n":{"docs":{},"d":{"docs":{"callbacks.html":{"ref":"callbacks.html","tf":0.0051813471502590676}}}}}},"s":{"docs":{},"a":{"docs":{},"v":{"docs":{"callbacks.html":{"ref":"callbacks.html","tf":0.010362694300518135}}}}},"u":{"docs":{},"p":{"docs":{},"d":{"docs":{"callbacks.html":{"ref":"callbacks.html","tf":0.0051813471502590676},"curd.html":{"ref":"curd.html","tf":0.0005370569280343716}}}}},"q":{"docs":{},"u":{"docs":{},"e":{"docs":{},"r":{"docs":{},"i":{"docs":{"development.html":{"ref":"development.html","tf":0.004807692307692308}}}}}}}}}},"f":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{"changelog.html":{"ref":"changelog.html","tf":0.004784688995215311},"models.html":{"ref":"models.html","tf":0.00202020202020202}}}}}}},"l":{"docs":{},"r":{"docs":{},"e":{"docs":{},"a":{"docs":{},"d":{"docs":{},"i":{"docs":{"callbacks.html":{"ref":"callbacks.html","tf":0.0051813471502590676}}}}}}},"e":{"docs":{},"r":{"docs":{},"t":{"docs":{"changelog.html":{"ref":"changelog.html","tf":0.004784688995215311}}}}}},"v":{"docs":{},"a":{"docs":{},"i":{"docs":{},"l":{"docs":{"callbacks.html":{"ref":"callbacks.html","tf":0.02072538860103627},"development.html":{"ref":"development.html","tf":0.004807692307692308}}}}},"o":{"docs":{},"i":{"docs":{},"d":{"docs":{"curd.html":{"ref":"curd.html","tf":0.0005370569280343716}}}}}},"n":{"docs":{},"i":{"docs":{},"m":{"docs":{"curd.html":{"ref":"curd.html","tf":0.001611170784103115},"models.html":{"ref":"models.html","tf":0.00404040404040404}},"a":{"docs":{},"l":{"docs":{},".":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{"curd.html":{"ref":"curd.html","tf":0.0005370569280343716}}}}}},"s":{"docs":{},"(":{"docs":{},"&":{"docs":{},"q":{"docs":{},"u":{"docs":{},"o":{"docs":{},"t":{"docs":{},";":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"&":{"docs":{},"q":{"docs":{},"u":{"docs":{},"o":{"docs":{},"t":{"docs":{"curd.html":{"ref":"curd.html","tf":0.0005370569280343716}}}}}}}}}}}}}}}}}},"{":{"docs":{},"a":{"docs":{},"g":{"docs":{"curd.html":{"ref":"curd.html","tf":0.0005370569280343716}}}}},"i":{"docs":{},"d":{"docs":{"models.html":{"ref":"models.html","tf":0.006060606060606061}}}}}}}},"o":{"docs":{},"t":{"docs":{},"h":{"docs":{"curd.html":{"ref":"curd.html","tf":0.0005370569280343716},"development.html":{"ref":"development.html","tf":0.004807692307692308}}}}}},"t":{"docs":{},"t":{"docs":{},"r":{"docs":{"curd.html":{"ref":"curd.html","tf":0.0021482277121374865}},"i":{"docs":{},"b":{"docs":{},"u":{"docs":{},"t":{"docs":{"curd.html":{"ref":"curd.html","tf":0.00322234156820623}}}}}}}}}},"b":{"docs":{},"a":{"docs":{},"s":{"docs":{},"e":{"docs":{"./":{"ref":"./","tf":0.008},"development.html":{"ref":"development.html","tf":0.009615384615384616},"models.html":{"ref":"models.html","tf":0.00404040404040404}}}},"c":{"docs":{},"k":{"docs":{"curd.html":{"ref":"curd.html","tf":0.0005370569280343716}}}},"t":{"docs":{},"c":{"docs":{},"h":{"docs":{"curd.html":{"ref":"curd.html","tf":0.00322234156820623}}}}}},"e":{"docs":{},"f":{"docs":{},"o":{"docs":{},"r":{"docs":{"callbacks.html":{"ref":"callbacks.html","tf":0.010362694300518135},"changelog.html":{"ref":"changelog.html","tf":0.009569377990430622},"curd.html":{"ref":"curd.html","tf":0.0005370569280343716},"development.html":{"ref":"development.html","tf":0.004807692307692308}},"e":{"docs":{},"/":{"docs":{},"a":{"docs":{},"f":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.008}}}}}},"c":{"docs":{},"r":{"docs":{"callbacks.html":{"ref":"callbacks.html","tf":0.0051813471502590676},"curd.html":{"ref":"curd.html","tf":0.0005370569280343716},"development.html":{"ref":"development.html","tf":0.004807692307692308}},"e":{"docs":{},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},"(":{"docs":{},"s":{"docs":{},"c":{"docs":{},"o":{"docs":{},"p":{"docs":{"curd.html":{"ref":"curd.html","tf":0.0005370569280343716}}}}}}}}}}}}},"d":{"docs":{},"e":{"docs":{},"l":{"docs":{},"e":{"docs":{},"t":{"docs":{"callbacks.html":{"ref":"callbacks.html","tf":0.0051813471502590676}}}}}}},"s":{"docs":{},"a":{"docs":{},"v":{"docs":{"callbacks.html":{"ref":"callbacks.html","tf":0.010362694300518135},"changelog.html":{"ref":"changelog.html","tf":0.004784688995215311},"curd.html":{"ref":"curd.html","tf":0.0005370569280343716}},"e":{"docs":{},"(":{"docs":{},"s":{"docs":{},"c":{"docs":{},"o":{"docs":{},"p":{"docs":{"curd.html":{"ref":"curd.html","tf":0.0005370569280343716}}}}}}}}}}},"u":{"docs":{},"p":{"docs":{},"d":{"docs":{"callbacks.html":{"ref":"callbacks.html","tf":0.010362694300518135},"changelog.html":{"ref":"changelog.html","tf":0.004784688995215311},"curd.html":{"ref":"curd.html","tf":0.0010741138560687433},"development.html":{"ref":"development.html","tf":0.004807692307692308}},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},"(":{"docs":{},"s":{"docs":{},"c":{"docs":{},"o":{"docs":{},"p":{"docs":{"changelog.html":{"ref":"changelog.html","tf":0.004784688995215311}}}}}}}}}}}}}}}}},"l":{"docs":{},"o":{"docs":{},"n":{"docs":{},"g":{"docs":{"./":{"ref":"./","tf":0.008},"associations.html":{"ref":"associations.html","tf":0.010893246187363835},"models.html":{"ref":"models.html","tf":0.006060606060606061}},"s":{"docs":{},"_":{"docs":{},"t":{"docs":{},"o":{"docs":{"associations.html":{"ref":"associations.html","tf":0.002178649237472767}}}}}}}},"w":{"docs":{"advanced.html":{"ref":"advanced.html","tf":0.00303951367781155},"changelog.html":{"ref":"changelog.html","tf":0.004784688995215311},"curd.html":{"ref":"curd.html","tf":0.0005370569280343716}}}}},"g":{"docs":{},"i":{"docs":{},"n":{"docs":{"advanced.html":{"ref":"advanced.html","tf":0.00303951367781155},"callbacks.html":{"ref":"callbacks.html","tf":0.015544041450777202},"curd.html":{"ref":"curd.html","tf":0.0005370569280343716}}}}},"t":{"docs":{},"w":{"docs":{},"e":{"docs":{},"e":{"docs":{},"n":{"docs":{"associations.html":{"ref":"associations.html","tf":0.004357298474945534},"curd.html":{"ref":"curd.html","tf":0.0005370569280343716}}}}}}},"a":{"docs":{},"s":{"docs":{},"t":{"docs":{},"_":{"docs":{},"i":{"docs":{},"d":{"docs":{"models.html":{"ref":"models.html","tf":0.00202020202020202}}}}}}}}},"u":{"docs":{},"i":{"docs":{},"l":{"docs":{},"d":{"docs":{},"e":{"docs":{},"r":{"docs":{"./":{"ref":"./","tf":0.008},"advanced.html":{"ref":"advanced.html","tf":0.0060790273556231}}}}},"t":{"docs":{"advanced.html":{"ref":"advanced.html","tf":0.00303951367781155}}}}}},"l":{"docs":{},"a":{"docs":{},"n":{"docs":{},"k":{"docs":{"callbacks.html":{"ref":"callbacks.html","tf":0.0051813471502590676},"changelog.html":{"ref":"changelog.html","tf":0.009569377990430622},"curd.html":{"ref":"curd.html","tf":0.00322234156820623}}}}}},"c":{"docs":{},"r":{"docs":{},"y":{"docs":{},"p":{"docs":{},"t":{"docs":{},".":{"docs":{},"g":{"docs":{},"e":{"docs":{},"n":{"docs":{},"e":{"docs":{},"r":{"docs":{},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},"f":{"docs":{},"r":{"docs":{},"o":{"docs":{},"m":{"docs":{},"p":{"docs":{},"a":{"docs":{},"s":{"docs":{},"s":{"docs":{},"w":{"docs":{},"o":{"docs":{},"r":{"docs":{},"d":{"docs":{},"(":{"docs":{},"u":{"docs":{},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},".":{"docs":{},"p":{"docs":{},"a":{"docs":{},"s":{"docs":{},"s":{"docs":{},"w":{"docs":{},"o":{"docs":{},"r":{"docs":{},"d":{"docs":{"changelog.html":{"ref":"changelog.html","tf":0.004784688995215311},"curd.html":{"ref":"curd.html","tf":0.0005370569280343716}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"r":{"docs":{},"e":{"docs":{},"a":{"docs":{},"k":{"docs":{"changelog.html":{"ref":"changelog.html","tf":0.004784688995215311}}}}},"i":{"docs":{},"d":{"docs":{},"g":{"docs":{"development.html":{"ref":"development.html","tf":0.004807692307692308}}}}}},"i":{"docs":{},"l":{"docs":{},"l":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},"a":{"docs":{},"d":{"docs":{},"d":{"docs":{},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{"curd.html":{"ref":"curd.html","tf":0.0005370569280343716},"models.html":{"ref":"models.html","tf":0.00202020202020202}},"i":{"docs":{},"d":{"docs":{"models.html":{"ref":"models.html","tf":0.00404040404040404}}}}}}}}}}}}}}}},"r":{"docs":{},"t":{"docs":{},"h":{"docs":{},"d":{"docs":{},"a":{"docs":{},"y":{"docs":{"curd.html":{"ref":"curd.html","tf":0.0005370569280343716},"models.html":{"ref":"models.html","tf":0.00808080808080808}},"=":{"docs":{},"&":{"docs":{},"a":{"docs":{},"p":{"docs":{},"o":{"docs":{},"s":{"docs":{},";":{"2":{"0":{"1":{"6":{"docs":{"curd.html":{"ref":"curd.html","tf":0.0005370569280343716}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}}}}}}}}}}}}}}},"o":{"docs":{},"o":{"docs":{},"l":{"docs":{"models.html":{"ref":"models.html","tf":0.00202020202020202}}}}}},"c":{"docs":{},"a":{"docs":{},"l":{"docs":{},"l":{"docs":{"callbacks.html":{"ref":"callbacks.html","tf":0.0051813471502590676},"curd.html":{"ref":"curd.html","tf":0.0010741138560687433},"development.html":{"ref":"development.html","tf":0.014423076923076924}},"b":{"docs":{},"a":{"docs":{},"c":{"docs":{},"k":{"docs":{"./":{"ref":"./","tf":0.016},"callbacks.html":{"ref":"callbacks.html","tf":0.05699481865284974},"changelog.html":{"ref":"changelog.html","tf":0.004784688995215311},"curd.html":{"ref":"curd.html","tf":0.004833512352309345},"development.html":{"ref":"development.html","tf":0.125}}}}}}}},"r":{"docs":{},"d":{"docs":{"advanced.html":{"ref":"advanced.html","tf":0.00303951367781155},"associations.html":{"ref":"associations.html","tf":0.004357298474945534},"curd.html":{"ref":"curd.html","tf":0.0005370569280343716}}},"e":{"docs":{},"f":{"docs":{},"u":{"docs":{},"l":{"docs":{},"l":{"docs":{},"i":{"docs":{"curd.html":{"ref":"curd.html","tf":0.0005370569280343716}}}}}}}}},"s":{"docs":{},"e":{"docs":{"advanced.html":{"ref":"advanced.html","tf":0.00303951367781155},"changelog.html":{"ref":"changelog.html","tf":0.009569377990430622},"models.html":{"ref":"models.html","tf":0.00404040404040404}}}},"t":{"docs":{"associations.html":{"ref":"associations.html","tf":0.002178649237472767}}},"n":{"docs":{},"c":{"docs":{},"e":{"docs":{},"l":{"docs":{"curd.html":{"ref":"curd.html","tf":0.0010741138560687433}}}}}}},"h":{"docs":{},"a":{"docs":{},"n":{"docs":{},"g":{"docs":{"callbacks.html":{"ref":"callbacks.html","tf":0.015544041450777202},"changelog.html":{"ref":"changelog.html","tf":0.023923444976076555},"curd.html":{"ref":"curd.html","tf":0.00644468313641246},"database.html":{"ref":"database.html","tf":0.006825938566552901},"models.html":{"ref":"models.html","tf":0.00202020202020202}},"e":{"docs":{},"l":{"docs":{},"o":{"docs":{},"g":{"docs":{"./":{"ref":"./","tf":0.008}}}}}}}},"i":{"docs":{},"n":{"docs":{"curd.html":{"ref":"curd.html","tf":0.0010741138560687433},"development.html":{"ref":"development.html","tf":0.009615384615384616}},"a":{"docs":{},"b":{"docs":{},"l":{"docs":{"curd.html":{"ref":"curd.html","tf":0.0005370569280343716},"development.html":{"ref":"development.html","tf":0.004807692307692308}}}}}}}},"e":{"docs":{},"c":{"docs":{},"k":{"docs":{"advanced.html":{"ref":"advanced.html","tf":0.00303951367781155},"associations.html":{"ref":"associations.html","tf":0.002178649237472767},"changelog.html":{"ref":"changelog.html","tf":0.009569377990430622},"curd.html":{"ref":"curd.html","tf":0.0005370569280343716},"database.html":{"ref":"database.html","tf":0.006825938566552901},"development.html":{"ref":"development.html","tf":0.004807692307692308}}}}}},"o":{"docs":{},"d":{"docs":{"curd.html":{"ref":"curd.html","tf":0.0005370569280343716}},"e":{"docs":{"./":{"ref":"./","tf":0.016},"curd.html":{"ref":"curd.html","tf":0.0005370569280343716},"models.html":{"ref":"models.html","tf":0.00202020202020202}}}},"m":{"docs":{},"e":{"docs":{"./":{"ref":"./","tf":0.008}}},"p":{"docs":{},"o":{"docs":{},"s":{"docs":{},"i":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.008},"advanced.html":{"ref":"advanced.html","tf":0.00911854103343465}}}}}}},"m":{"docs":{},"i":{"docs":{},"t":{"docs":{"advanced.html":{"ref":"advanced.html","tf":0.00303951367781155},"callbacks.html":{"ref":"callbacks.html","tf":0.02072538860103627},"curd.html":{"ref":"curd.html","tf":0.0005370569280343716}}}},"o":{"docs":{},"n":{"docs":{"changelog.html":{"ref":"changelog.html","tf":0.004784688995215311}}}}},"b":{"docs":{},"i":{"docs":{},"n":{"docs":{"curd.html":{"ref":"curd.html","tf":0.0005370569280343716},"models.html":{"ref":"models.html","tf":0.00202020202020202}}}}}},"n":{"docs":{},"n":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.008},"advanced.html":{"ref":"advanced.html","tf":0.00911854103343465},"curd.html":{"ref":"curd.html","tf":0.0005370569280343716},"database.html":{"ref":"database.html","tf":0.010238907849829351}}}}}},"t":{"docs":{},"r":{"docs":{},"i":{"docs":{},"b":{"docs":{},"u":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{"./":{"ref":"./","tf":0.008}}}}}}}}},"a":{"docs":{},"i":{"docs":{},"n":{"docs":{"associations.html":{"ref":"associations.html","tf":0.004357298474945534}}}}}},"d":{"docs":{},"i":{"docs":{},"t":{"docs":{"associations.html":{"ref":"associations.html","tf":0.002178649237472767},"curd.html":{"ref":"curd.html","tf":0.00644468313641246}}}}},"v":{"docs":{},"e":{"docs":{},"r":{"docs":{},"t":{"docs":{"changelog.html":{"ref":"changelog.html","tf":0.009569377990430622}}}},"n":{"docs":{},"t":{"docs":{"models.html":{"ref":"models.html","tf":0.00404040404040404}}}}}},"f":{"docs":{},"l":{"docs":{},"i":{"docs":{},"c":{"docs":{},"t":{"docs":{"curd.html":{"ref":"curd.html","tf":0.0005370569280343716}},"&":{"docs":{},"q":{"docs":{},"u":{"docs":{},"o":{"docs":{},"t":{"docs":{},";":{"docs":{},")":{"docs":{},".":{"docs":{},"c":{"docs":{},"r":{"docs":{},"e":{"docs":{},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},"(":{"docs":{},"&":{"docs":{},"a":{"docs":{},"m":{"docs":{},"p":{"docs":{},";":{"docs":{},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"d":{"docs":{},"u":{"docs":{},"c":{"docs":{},"t":{"docs":{"curd.html":{"ref":"curd.html","tf":0.0005370569280343716}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"u":{"docs":{},"n":{"docs":{},"t":{"docs":{"associations.html":{"ref":"associations.html","tf":0.004357298474945534},"curd.html":{"ref":"curd.html","tf":0.004296455424274973}}}}},"l":{"docs":{},"u":{"docs":{},"m":{"docs":{},"n":{"docs":{"changelog.html":{"ref":"changelog.html","tf":0.009569377990430622},"curd.html":{"ref":"curd.html","tf":0.001611170784103115},"database.html":{"ref":"database.html","tf":0.023890784982935155},"models.html":{"ref":"models.html","tf":0.024242424242424242}},"&":{"docs":{},"a":{"docs":{},"p":{"docs":{},"o":{"docs":{},"s":{"docs":{},";":{"docs":{"database.html":{"ref":"database.html","tf":0.006825938566552901}}}}}}}}}}}},"r":{"docs":{},"r":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},"l":{"docs":{},"i":{"docs":{"changelog.html":{"ref":"changelog.html","tf":0.004784688995215311}}}}}}}}},"a":{"docs":{},"l":{"docs":{},"e":{"docs":{},"s":{"docs":{},"c":{"docs":{},"e":{"docs":{},"(":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},",":{"docs":{},"&":{"docs":{},"a":{"docs":{},"p":{"docs":{},"o":{"docs":{},"s":{"docs":{},";":{"4":{"2":{"docs":{},"&":{"docs":{},"a":{"docs":{},"p":{"docs":{},"o":{"docs":{"curd.html":{"ref":"curd.html","tf":0.0005370569280343716}}}}}}},"docs":{}},"docs":{}}}}}}}}}}}}}}}}}}},"r":{"docs":{},"e":{"docs":{},"a":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.008},"callbacks.html":{"ref":"callbacks.html","tf":0.02072538860103627},"curd.html":{"ref":"curd.html","tf":0.005907626208378088},"database.html":{"ref":"database.html","tf":0.020477815699658702},"development.html":{"ref":"development.html","tf":0.04326923076923077},"models.html":{"ref":"models.html","tf":0.014141414141414142}},"e":{"docs":{},"/":{"docs":{},"s":{"docs":{},"a":{"docs":{},"v":{"docs":{},"e":{"docs":{},"/":{"docs":{},"u":{"docs":{},"p":{"docs":{},"d":{"docs":{},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},"/":{"docs":{},"d":{"docs":{},"e":{"docs":{},"l":{"docs":{},"e":{"docs":{},"t":{"docs":{},"e":{"docs":{},"/":{"docs":{},"f":{"docs":{},"i":{"docs":{},"n":{"docs":{},"d":{"docs":{"./":{"ref":"./","tf":0.008}}}}}}}}}}}}}}}}}}}}}}}}}},"a":{"docs":{},"n":{"docs":{},"i":{"docs":{},"m":{"docs":{},"a":{"docs":{},"l":{"docs":{},"s":{"docs":{},"(":{"docs":{},"d":{"docs":{},"b":{"docs":{"advanced.html":{"ref":"advanced.html","tf":0.00303951367781155}}}}}}}}}}}},"d":{"docs":{},"a":{"docs":{},"t":{"docs":{"callbacks.html":{"ref":"callbacks.html","tf":0.0051813471502590676},"models.html":{"ref":"models.html","tf":0.020202020202020204}}}},"_":{"docs":{},"a":{"docs":{},"t":{"docs":{"models.html":{"ref":"models.html","tf":0.00202020202020202}}}}}}}}},"d":{"docs":{},"i":{"docs":{},"t":{"docs":{"advanced.html":{"ref":"advanced.html","tf":0.00303951367781155},"curd.html":{"ref":"curd.html","tf":0.0005370569280343716}},"_":{"docs":{},"c":{"docs":{},"a":{"docs":{},"r":{"docs":{},"d":{"docs":{"associations.html":{"ref":"associations.html","tf":0.002178649237472767},"curd.html":{"ref":"curd.html","tf":0.0005370569280343716}},"s":{"docs":{},".":{"docs":{},"u":{"docs":{},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},"_":{"docs":{},"i":{"docs":{},"d":{"docs":{"curd.html":{"ref":"curd.html","tf":0.0005370569280343716}}}}}}}}}}}}}}}},"c":{"docs":{},"a":{"docs":{},"r":{"docs":{},"d":{"docs":{"associations.html":{"ref":"associations.html","tf":0.015250544662309368},"models.html":{"ref":"models.html","tf":0.006060606060606061}},"&":{"docs":{},"a":{"docs":{},"p":{"docs":{},"o":{"docs":{},"s":{"docs":{},";":{"docs":{"models.html":{"ref":"models.html","tf":0.00202020202020202}}}}}}}}}}}}}}}},"u":{"docs":{},"d":{"docs":{"curd.html":{"ref":"curd.html","tf":0.0005370569280343716},"development.html":{"ref":"development.html","tf":0.004807692307692308}}}}},"u":{"docs":{},"s":{"docs":{},"t":{"docs":{},"o":{"docs":{},"m":{"docs":{"advanced.html":{"ref":"advanced.html","tf":0.00911854103343465},"development.html":{"ref":"development.html","tf":0.004807692307692308}},"i":{"docs":{},"z":{"docs":{},"e":{"docs":{},"a":{"docs":{},"c":{"docs":{},"c":{"docs":{},"o":{"docs":{},"u":{"docs":{},"n":{"docs":{},"t":{"docs":{"associations.html":{"ref":"associations.html","tf":0.004357298474945534}}}}}}}}},"p":{"docs":{},"e":{"docs":{},"r":{"docs":{},"s":{"docs":{},"o":{"docs":{},"n":{"docs":{"associations.html":{"ref":"associations.html","tf":0.002178649237472767}}}}}}}}}}}}}}},"r":{"docs":{},"r":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{"associations.html":{"ref":"associations.html","tf":0.008714596949891068},"callbacks.html":{"ref":"callbacks.html","tf":0.0051813471502590676},"curd.html":{"ref":"curd.html","tf":0.0010741138560687433},"development.html":{"ref":"development.html","tf":0.009615384615384616},"models.html":{"ref":"models.html","tf":0.012121212121212121}}}}}}}},"l":{"docs":{},"e":{"docs":{},"a":{"docs":{},"r":{"docs":{"associations.html":{"ref":"associations.html","tf":0.002178649237472767}}}}}}},"d":{"docs":{},"a":{"docs":{},"t":{"docs":{},"a":{"docs":{"callbacks.html":{"ref":"callbacks.html","tf":0.0051813471502590676},"curd.html":{"ref":"curd.html","tf":0.0005370569280343716},"database.html":{"ref":"database.html","tf":0.006825938566552901}},"b":{"docs":{},"a":{"docs":{"curd.html":{"ref":"curd.html","tf":0.0005370569280343716},"database.html":{"ref":"database.html","tf":0.0034129692832764505}},"s":{"docs":{"advanced.html":{"ref":"advanced.html","tf":0.0182370820668693},"callbacks.html":{"ref":"callbacks.html","tf":0.0051813471502590676},"curd.html":{"ref":"curd.html","tf":0.00322234156820623},"database.html":{"ref":"database.html","tf":0.023890784982935155},"models.html":{"ref":"models.html","tf":0.00202020202020202}},"e":{"docs":{},"&":{"docs":{},"q":{"docs":{},"u":{"docs":{},"o":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.008}}}}}},"a":{"docs":{},"p":{"docs":{},"o":{"docs":{},"s":{"docs":{},";":{"docs":{"changelog.html":{"ref":"changelog.html","tf":0.004784688995215311},"database.html":{"ref":"database.html","tf":0.0034129692832764505}}}}}}}}}}}}},"e":{"docs":{"curd.html":{"ref":"curd.html","tf":0.0021482277121374865},"database.html":{"ref":"database.html","tf":0.0034129692832764505}}}},"y":{"docs":{},"_":{"docs":{},"o":{"docs":{},"f":{"docs":{},"_":{"docs":{},"t":{"docs":{},"h":{"docs":{},"e":{"docs":{},"_":{"docs":{},"b":{"docs":{},"e":{"docs":{},"a":{"docs":{},"s":{"docs":{},"t":{"docs":{"models.html":{"ref":"models.html","tf":0.00202020202020202}}}}}}}}}}}}}}}}},"b":{"docs":{"./":{"ref":"./","tf":0.008},"changelog.html":{"ref":"changelog.html","tf":0.014354066985645933},"curd.html":{"ref":"curd.html","tf":0.001611170784103115},"database.html":{"ref":"database.html","tf":0.010238907849829351},"development.html":{"ref":"development.html","tf":0.014423076923076924}},".":{"docs":{},"c":{"docs":{},"r":{"docs":{},"e":{"docs":{},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},"(":{"docs":{},"&":{"docs":{},"a":{"docs":{},"m":{"docs":{},"p":{"docs":{},";":{"docs":{},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"d":{"docs":{},"u":{"docs":{},"c":{"docs":{},"t":{"docs":{},"{":{"docs":{},"c":{"docs":{},"o":{"docs":{},"d":{"docs":{"./":{"ref":"./","tf":0.008}}}}}}}}}}}}},"a":{"docs":{},"n":{"docs":{},"i":{"docs":{},"m":{"docs":{"curd.html":{"ref":"curd.html","tf":0.0005370569280343716}}}}}},"u":{"docs":{},"s":{"docs":{"curd.html":{"ref":"curd.html","tf":0.0010741138560687433},"models.html":{"ref":"models.html","tf":0.00202020202020202}}}}}}}}}},"t":{"docs":{},"a":{"docs":{},"b":{"docs":{},"l":{"docs":{},"e":{"docs":{},"(":{"docs":{},"&":{"docs":{},"a":{"docs":{},"m":{"docs":{},"p":{"docs":{},";":{"docs":{},"u":{"docs":{},"s":{"docs":{"database.html":{"ref":"database.html","tf":0.0034129692832764505}}}}}}}}}}}}}}}}}}}},"a":{"docs":{},"l":{"docs":{},"l":{"docs":{},"b":{"docs":{},"a":{"docs":{},"c":{"docs":{},"k":{"docs":{},"(":{"docs":{},")":{"docs":{},".":{"docs":{},"c":{"docs":{},"r":{"docs":{},"e":{"docs":{},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},"(":{"docs":{},")":{"docs":{},".":{"docs":{},"a":{"docs":{},"f":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"(":{"docs":{},"&":{"docs":{},"q":{"docs":{},"u":{"docs":{},"o":{"docs":{},"t":{"docs":{},";":{"docs":{},"g":{"docs":{},"o":{"docs":{},"r":{"docs":{},"m":{"docs":{},":":{"docs":{},"c":{"docs":{},"r":{"docs":{},"e":{"docs":{},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},"&":{"docs":{},"q":{"docs":{},"u":{"docs":{},"o":{"docs":{},"t":{"docs":{},";":{"docs":{},")":{"docs":{},".":{"docs":{},"r":{"docs":{},"e":{"docs":{},"g":{"docs":{},"i":{"docs":{},"s":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"(":{"docs":{},"&":{"docs":{},"q":{"docs":{},"u":{"docs":{},"o":{"docs":{},"t":{"docs":{},";":{"docs":{},"u":{"docs":{},"p":{"docs":{},"d":{"docs":{},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},"_":{"docs":{},"c":{"docs":{},"r":{"docs":{},"e":{"docs":{},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},"d":{"docs":{},"_":{"docs":{},"a":{"docs":{},"t":{"docs":{},"&":{"docs":{},"q":{"docs":{},"u":{"docs":{},"o":{"docs":{},"t":{"docs":{"development.html":{"ref":"development.html","tf":0.004807692307692308}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"b":{"docs":{},"e":{"docs":{},"f":{"docs":{},"o":{"docs":{},"r":{"docs":{},"e":{"docs":{},"(":{"docs":{},"&":{"docs":{},"q":{"docs":{},"u":{"docs":{},"o":{"docs":{},"t":{"docs":{},";":{"docs":{},"g":{"docs":{},"o":{"docs":{},"r":{"docs":{},"m":{"docs":{},":":{"docs":{},"c":{"docs":{},"r":{"docs":{},"e":{"docs":{},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},"&":{"docs":{},"q":{"docs":{},"u":{"docs":{},"o":{"docs":{},"t":{"docs":{},";":{"docs":{},")":{"docs":{},".":{"docs":{},"a":{"docs":{},"f":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"(":{"docs":{},"&":{"docs":{},"q":{"docs":{},"u":{"docs":{},"o":{"docs":{},"t":{"docs":{},";":{"docs":{},"g":{"docs":{},"o":{"docs":{},"r":{"docs":{},"m":{"docs":{},":":{"docs":{},"b":{"docs":{},"e":{"docs":{},"f":{"docs":{},"o":{"docs":{},"r":{"docs":{},"e":{"docs":{},"_":{"docs":{},"c":{"docs":{},"r":{"docs":{},"e":{"docs":{},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},"&":{"docs":{},"q":{"docs":{},"u":{"docs":{},"o":{"docs":{},"t":{"docs":{},";":{"docs":{},")":{"docs":{},".":{"docs":{},"r":{"docs":{},"e":{"docs":{},"g":{"docs":{},"i":{"docs":{},"s":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"(":{"docs":{},"&":{"docs":{},"q":{"docs":{},"u":{"docs":{},"o":{"docs":{},"t":{"docs":{},";":{"docs":{},"m":{"docs":{},"y":{"docs":{},"_":{"docs":{},"p":{"docs":{},"l":{"docs":{},"u":{"docs":{},"g":{"docs":{},"i":{"docs":{},"n":{"docs":{},":":{"docs":{},"b":{"docs":{},"e":{"docs":{},"f":{"docs":{},"o":{"docs":{},"r":{"docs":{},"e":{"docs":{},"_":{"docs":{},"c":{"docs":{},"r":{"docs":{},"e":{"docs":{},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},"&":{"docs":{},"q":{"docs":{},"u":{"docs":{},"o":{"docs":{},"t":{"docs":{"development.html":{"ref":"development.html","tf":0.004807692307692308}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"r":{"docs":{},"e":{"docs":{},"g":{"docs":{},"i":{"docs":{},"s":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"(":{"docs":{},"&":{"docs":{},"q":{"docs":{},"u":{"docs":{},"o":{"docs":{},"t":{"docs":{},";":{"docs":{},"u":{"docs":{},"p":{"docs":{},"d":{"docs":{},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},"_":{"docs":{},"c":{"docs":{},"r":{"docs":{},"e":{"docs":{},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},"d":{"docs":{},"_":{"docs":{},"a":{"docs":{},"t":{"docs":{},"&":{"docs":{},"q":{"docs":{},"u":{"docs":{},"o":{"docs":{},"t":{"docs":{"development.html":{"ref":"development.html","tf":0.004807692307692308}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"r":{"docs":{},"e":{"docs":{},"g":{"docs":{},"i":{"docs":{},"s":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"(":{"docs":{},"&":{"docs":{},"q":{"docs":{},"u":{"docs":{},"o":{"docs":{},"t":{"docs":{},";":{"docs":{},"u":{"docs":{},"p":{"docs":{},"d":{"docs":{},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},"_":{"docs":{},"c":{"docs":{},"r":{"docs":{},"e":{"docs":{},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},"d":{"docs":{},"_":{"docs":{},"a":{"docs":{},"t":{"docs":{},"&":{"docs":{},"q":{"docs":{},"u":{"docs":{},"o":{"docs":{},"t":{"docs":{"development.html":{"ref":"development.html","tf":0.004807692307692308}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"m":{"docs":{},"o":{"docs":{},"v":{"docs":{},"e":{"docs":{},"(":{"docs":{},"&":{"docs":{},"q":{"docs":{},"u":{"docs":{},"o":{"docs":{},"t":{"docs":{},";":{"docs":{},"g":{"docs":{},"o":{"docs":{},"r":{"docs":{},"m":{"docs":{},":":{"docs":{},"c":{"docs":{},"r":{"docs":{},"e":{"docs":{},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},"&":{"docs":{},"q":{"docs":{},"u":{"docs":{},"o":{"docs":{},"t":{"docs":{"development.html":{"ref":"development.html","tf":0.004807692307692308}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"p":{"docs":{},"l":{"docs":{},"a":{"docs":{},"c":{"docs":{},"e":{"docs":{},"(":{"docs":{},"&":{"docs":{},"q":{"docs":{},"u":{"docs":{},"o":{"docs":{},"t":{"docs":{},";":{"docs":{},"g":{"docs":{},"o":{"docs":{},"r":{"docs":{},"m":{"docs":{},":":{"docs":{},"c":{"docs":{},"r":{"docs":{},"e":{"docs":{},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},"&":{"docs":{},"q":{"docs":{},"u":{"docs":{},"o":{"docs":{},"t":{"docs":{"development.html":{"ref":"development.html","tf":0.004807692307692308}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"d":{"docs":{},"e":{"docs":{},"l":{"docs":{},"e":{"docs":{},"t":{"docs":{},"e":{"docs":{},"(":{"docs":{},")":{"docs":{},".":{"docs":{},"a":{"docs":{},"f":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"(":{"docs":{},"&":{"docs":{},"q":{"docs":{},"u":{"docs":{},"o":{"docs":{},"t":{"docs":{},";":{"docs":{},"g":{"docs":{},"o":{"docs":{},"r":{"docs":{},"m":{"docs":{},":":{"docs":{},"d":{"docs":{},"e":{"docs":{},"l":{"docs":{},"e":{"docs":{},"t":{"docs":{},"e":{"docs":{},"&":{"docs":{},"q":{"docs":{},"u":{"docs":{},"o":{"docs":{},"t":{"docs":{},";":{"docs":{},")":{"docs":{},".":{"docs":{},"r":{"docs":{},"e":{"docs":{},"g":{"docs":{},"i":{"docs":{},"s":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"(":{"docs":{},"&":{"docs":{},"q":{"docs":{},"u":{"docs":{},"o":{"docs":{},"t":{"docs":{},";":{"docs":{},"m":{"docs":{},"y":{"docs":{},"_":{"docs":{},"p":{"docs":{},"l":{"docs":{},"u":{"docs":{},"g":{"docs":{},"i":{"docs":{},"n":{"docs":{},":":{"docs":{},"a":{"docs":{},"f":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"_":{"docs":{},"d":{"docs":{},"e":{"docs":{},"l":{"docs":{},"e":{"docs":{},"t":{"docs":{},"e":{"docs":{},"&":{"docs":{},"q":{"docs":{},"u":{"docs":{},"o":{"docs":{},"t":{"docs":{"development.html":{"ref":"development.html","tf":0.004807692307692308}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"q":{"docs":{},"u":{"docs":{},"e":{"docs":{},"r":{"docs":{},"y":{"docs":{},"(":{"docs":{},")":{"docs":{},".":{"docs":{},"a":{"docs":{},"f":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"(":{"docs":{},"&":{"docs":{},"q":{"docs":{},"u":{"docs":{},"o":{"docs":{},"t":{"docs":{},";":{"docs":{},"g":{"docs":{},"o":{"docs":{},"r":{"docs":{},"m":{"docs":{},":":{"docs":{},"q":{"docs":{},"u":{"docs":{},"e":{"docs":{},"r":{"docs":{},"y":{"docs":{},"&":{"docs":{},"q":{"docs":{},"u":{"docs":{},"o":{"docs":{},"t":{"docs":{},";":{"docs":{},")":{"docs":{},".":{"docs":{},"r":{"docs":{},"e":{"docs":{},"g":{"docs":{},"i":{"docs":{},"s":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"(":{"docs":{},"&":{"docs":{},"q":{"docs":{},"u":{"docs":{},"o":{"docs":{},"t":{"docs":{},";":{"docs":{},"m":{"docs":{},"y":{"docs":{},"_":{"docs":{},"p":{"docs":{},"l":{"docs":{},"u":{"docs":{},"g":{"docs":{},"i":{"docs":{},"n":{"docs":{},":":{"docs":{},"a":{"docs":{},"f":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"_":{"docs":{},"q":{"docs":{},"u":{"docs":{},"e":{"docs":{},"r":{"docs":{},"y":{"docs":{},"&":{"docs":{},"q":{"docs":{},"u":{"docs":{},"o":{"docs":{},"t":{"docs":{"development.html":{"ref":"development.html","tf":0.004807692307692308}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"r":{"docs":{},"o":{"docs":{},"w":{"docs":{},"q":{"docs":{},"u":{"docs":{},"e":{"docs":{},"r":{"docs":{},"y":{"docs":{},"(":{"docs":{},")":{"docs":{},".":{"docs":{},"r":{"docs":{},"e":{"docs":{},"g":{"docs":{},"i":{"docs":{},"s":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"(":{"docs":{},"&":{"docs":{},"q":{"docs":{},"u":{"docs":{},"o":{"docs":{},"t":{"docs":{},";":{"docs":{},"p":{"docs":{},"u":{"docs":{},"b":{"docs":{},"l":{"docs":{},"i":{"docs":{},"s":{"docs":{},"h":{"docs":{},":":{"docs":{},"u":{"docs":{},"p":{"docs":{},"d":{"docs":{},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},"_":{"docs":{},"t":{"docs":{},"a":{"docs":{},"b":{"docs":{},"l":{"docs":{},"e":{"docs":{},"_":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},"&":{"docs":{},"q":{"docs":{},"u":{"docs":{},"o":{"docs":{},"t":{"docs":{"development.html":{"ref":"development.html","tf":0.004807692307692308}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"u":{"docs":{},"p":{"docs":{},"d":{"docs":{},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},"(":{"docs":{},")":{"docs":{},".":{"docs":{},"b":{"docs":{},"e":{"docs":{},"f":{"docs":{},"o":{"docs":{},"r":{"docs":{},"e":{"docs":{},"(":{"docs":{},"&":{"docs":{},"q":{"docs":{},"u":{"docs":{},"o":{"docs":{},"t":{"docs":{},";":{"docs":{},"g":{"docs":{},"o":{"docs":{},"r":{"docs":{},"m":{"docs":{},":":{"docs":{},"u":{"docs":{},"p":{"docs":{},"d":{"docs":{},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},"&":{"docs":{},"q":{"docs":{},"u":{"docs":{},"o":{"docs":{},"t":{"docs":{},";":{"docs":{},")":{"docs":{},".":{"docs":{},"r":{"docs":{},"e":{"docs":{},"g":{"docs":{},"i":{"docs":{},"s":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"(":{"docs":{},"&":{"docs":{},"q":{"docs":{},"u":{"docs":{},"o":{"docs":{},"t":{"docs":{},";":{"docs":{},"m":{"docs":{},"y":{"docs":{},"_":{"docs":{},"p":{"docs":{},"l":{"docs":{},"u":{"docs":{},"g":{"docs":{},"i":{"docs":{},"n":{"docs":{},":":{"docs":{},"b":{"docs":{},"e":{"docs":{},"f":{"docs":{},"o":{"docs":{},"r":{"docs":{},"e":{"docs":{},"_":{"docs":{},"u":{"docs":{},"p":{"docs":{},"d":{"docs":{},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},"&":{"docs":{},"q":{"docs":{},"u":{"docs":{},"o":{"docs":{},"t":{"docs":{"development.html":{"ref":"development.html","tf":0.004807692307692308}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"d":{"docs":{},"e":{"docs":{},"l":{"docs":{},"e":{"docs":{},"t":{"docs":{},"e":{"docs":{},"(":{"docs":{},"&":{"docs":{},"a":{"docs":{},"m":{"docs":{},"p":{"docs":{},";":{"docs":{},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"d":{"docs":{},"u":{"docs":{},"c":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.008}}}}}}}}},"e":{"docs":{},"m":{"docs":{},"a":{"docs":{},"i":{"docs":{},"l":{"docs":{"curd.html":{"ref":"curd.html","tf":0.0005370569280343716}}}}}}},"u":{"docs":{},"s":{"docs":{"curd.html":{"ref":"curd.html","tf":0.0005370569280343716}}}}}}}}},"e":{"docs":{},"m":{"docs":{},"a":{"docs":{},"i":{"docs":{},"l":{"docs":{"curd.html":{"ref":"curd.html","tf":0.0005370569280343716}}}}}}}}}}}},"b":{"docs":{},"u":{"docs":{},"g":{"docs":{},"(":{"docs":{},")":{"docs":{},".":{"docs":{},"w":{"docs":{},"h":{"docs":{},"e":{"docs":{},"r":{"docs":{},"e":{"docs":{},"(":{"docs":{},"&":{"docs":{},"q":{"docs":{},"u":{"docs":{},"o":{"docs":{},"t":{"docs":{},";":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{"advanced.html":{"ref":"advanced.html","tf":0.00303951367781155}}}}}}}}}}}}}}}}}}}}}}}},"b":{"docs":{"advanced.html":{"ref":"advanced.html","tf":0.00303951367781155}},"(":{"docs":{},")":{"docs":{},".":{"docs":{},"p":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{"advanced.html":{"ref":"advanced.html","tf":0.00303951367781155}}}}}},"s":{"docs":{},"e":{"docs":{},"t":{"docs":{},"m":{"docs":{},"a":{"docs":{},"x":{"docs":{},"i":{"docs":{},"d":{"docs":{},"l":{"docs":{},"e":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"n":{"docs":{},"s":{"docs":{},"(":{"1":{"0":{"docs":{"advanced.html":{"ref":"advanced.html","tf":0.00303951367781155}}},"docs":{}},"docs":{}}}}}}}}}}},"o":{"docs":{},"p":{"docs":{},"e":{"docs":{},"n":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"n":{"docs":{},"s":{"docs":{},"(":{"1":{"0":{"0":{"docs":{"advanced.html":{"ref":"advanced.html","tf":0.00303951367781155}}},"docs":{}},"docs":{}},"docs":{}}}}}}}}}}}}}}}}}}}}},"r":{"docs":{},"o":{"docs":{},"p":{"docs":{},"t":{"docs":{},"a":{"docs":{},"b":{"docs":{},"l":{"docs":{},"e":{"docs":{},"(":{"docs":{},"&":{"docs":{},"a":{"docs":{},"m":{"docs":{},"p":{"docs":{},";":{"docs":{},"u":{"docs":{},"s":{"docs":{"database.html":{"ref":"database.html","tf":0.0034129692832764505}}}}}}}},"q":{"docs":{},"u":{"docs":{},"o":{"docs":{},"t":{"docs":{},";":{"docs":{},"u":{"docs":{},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},"s":{"docs":{},"&":{"docs":{},"q":{"docs":{},"u":{"docs":{},"o":{"docs":{},"t":{"docs":{"database.html":{"ref":"database.html","tf":0.0034129692832764505}}}}}}}}}}}}}}}}}}},"i":{"docs":{},"f":{"docs":{},"e":{"docs":{},"x":{"docs":{},"i":{"docs":{},"s":{"docs":{},"t":{"docs":{},"s":{"docs":{},"(":{"docs":{},"&":{"docs":{},"a":{"docs":{},"m":{"docs":{},"p":{"docs":{},";":{"docs":{},"u":{"docs":{},"s":{"docs":{"database.html":{"ref":"database.html","tf":0.0034129692832764505}}}}}}}}}}}}}}}}}}}}}}}}}}},"f":{"docs":{},"i":{"docs":{},"r":{"docs":{},"s":{"docs":{},"t":{"docs":{},"(":{"docs":{},"&":{"docs":{},"a":{"docs":{},"m":{"docs":{},"p":{"docs":{},";":{"docs":{},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"d":{"docs":{},"u":{"docs":{},"c":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.016}}}}}}}}},"u":{"docs":{},"s":{"docs":{"curd.html":{"ref":"curd.html","tf":0.0021482277121374865},"development.html":{"ref":"development.html","tf":0.004807692307692308}},"e":{"docs":{},"r":{"docs":{},")":{"docs":{},".":{"docs":{},"l":{"docs":{},"i":{"docs":{},"m":{"docs":{},"i":{"docs":{},"t":{"docs":{},"(":{"1":{"0":{"docs":{},")":{"docs":{},".":{"docs":{},"f":{"docs":{},"i":{"docs":{},"n":{"docs":{},"d":{"docs":{},"(":{"docs":{},"&":{"docs":{},"a":{"docs":{},"m":{"docs":{},"p":{"docs":{},";":{"docs":{},"u":{"docs":{},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},"s":{"docs":{},")":{"docs":{},".":{"docs":{},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"r":{"docs":{},"o":{"docs":{},"r":{"docs":{"advanced.html":{"ref":"advanced.html","tf":0.00303951367781155}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"docs":{}},"docs":{}}}}}}}}}}}}}}}}}}},"o":{"docs":{},"r":{"docs":{},"c":{"docs":{},"r":{"docs":{},"e":{"docs":{},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},"(":{"docs":{},"&":{"docs":{},"a":{"docs":{},"m":{"docs":{},"p":{"docs":{},";":{"docs":{},"u":{"docs":{},"s":{"docs":{"curd.html":{"ref":"curd.html","tf":0.0005370569280343716}}}}}}}}}}}}}}}},"i":{"docs":{},"n":{"docs":{},"i":{"docs":{},"t":{"docs":{},"(":{"docs":{},"&":{"docs":{},"a":{"docs":{},"m":{"docs":{},"p":{"docs":{},";":{"docs":{},"u":{"docs":{},"s":{"docs":{"curd.html":{"ref":"curd.html","tf":0.0010741138560687433}}}}}}}}}}}}}}}}}}},"n":{"docs":{},"d":{"docs":{},"(":{"docs":{},"&":{"docs":{},"a":{"docs":{},"m":{"docs":{},"p":{"docs":{},";":{"docs":{},"u":{"docs":{},"s":{"docs":{"curd.html":{"ref":"curd.html","tf":0.0026852846401718583}},"e":{"docs":{},"r":{"docs":{},"s":{"docs":{},")":{"docs":{},".":{"docs":{},"p":{"docs":{},"l":{"docs":{},"u":{"docs":{},"c":{"docs":{},"k":{"docs":{},"(":{"docs":{},"&":{"docs":{},"q":{"docs":{},"u":{"docs":{},"o":{"docs":{},"t":{"docs":{},";":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"&":{"docs":{},"q":{"docs":{},"u":{"docs":{},"o":{"docs":{},"t":{"docs":{"curd.html":{"ref":"curd.html","tf":0.0005370569280343716}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"m":{"docs":{},"o":{"docs":{},"d":{"docs":{},"e":{"docs":{},"l":{"docs":{},"(":{"docs":{},"&":{"docs":{},"a":{"docs":{},"m":{"docs":{},"p":{"docs":{},";":{"docs":{},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"d":{"docs":{},"u":{"docs":{},"c":{"docs":{},"t":{"docs":{},")":{"docs":{},".":{"docs":{},"u":{"docs":{},"p":{"docs":{},"d":{"docs":{},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},"(":{"docs":{},"&":{"docs":{},"q":{"docs":{},"u":{"docs":{},"o":{"docs":{},"t":{"docs":{},";":{"docs":{},"p":{"docs":{},"r":{"docs":{},"i":{"docs":{},"c":{"docs":{},"e":{"docs":{},"&":{"docs":{},"q":{"docs":{},"u":{"docs":{},"o":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.008},"curd.html":{"ref":"curd.html","tf":0.0005370569280343716}}}}}}}}}}}}}}}}}}},"c":{"docs":{},"o":{"docs":{},"l":{"docs":{},"u":{"docs":{},"m":{"docs":{},"n":{"docs":{},"(":{"docs":{},"&":{"docs":{},"q":{"docs":{},"u":{"docs":{},"o":{"docs":{},"t":{"docs":{},";":{"docs":{},"q":{"docs":{},"u":{"docs":{},"a":{"docs":{},"n":{"docs":{},"t":{"docs":{},"i":{"docs":{},"t":{"docs":{},"y":{"docs":{},"&":{"docs":{},"q":{"docs":{},"u":{"docs":{},"o":{"docs":{},"t":{"docs":{"curd.html":{"ref":"curd.html","tf":0.0005370569280343716}}}}}}}}}}}}}}}}}}}}}}}}}}}},"s":{"docs":{},"(":{"docs":{},"m":{"docs":{},"a":{"docs":{},"p":{"docs":{},"[":{"docs":{},"s":{"docs":{},"t":{"docs":{},"r":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},"]":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"f":{"docs":{},"a":{"docs":{},"c":{"docs":{},"e":{"docs":{},"{":{"docs":{},"}":{"docs":{},"{":{"docs":{},"&":{"docs":{},"q":{"docs":{},"u":{"docs":{},"o":{"docs":{},"t":{"docs":{},";":{"docs":{},"p":{"docs":{},"r":{"docs":{},"i":{"docs":{},"c":{"docs":{},"e":{"docs":{},"&":{"docs":{},"q":{"docs":{},"u":{"docs":{},"o":{"docs":{},"t":{"docs":{"curd.html":{"ref":"curd.html","tf":0.0005370569280343716}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"w":{"docs":{},"h":{"docs":{},"e":{"docs":{},"r":{"docs":{},"e":{"docs":{},"(":{"docs":{},"&":{"docs":{},"q":{"docs":{},"u":{"docs":{},"o":{"docs":{},"t":{"docs":{},";":{"docs":{},"q":{"docs":{},"u":{"docs":{},"a":{"docs":{},"n":{"docs":{},"t":{"docs":{"curd.html":{"ref":"curd.html","tf":0.0005370569280343716}}}}}}}}}}}}}}}}}}}}}}}}}}}},"u":{"docs":{},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},")":{"docs":{},".":{"docs":{},"r":{"docs":{},"e":{"docs":{},"l":{"docs":{},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},"d":{"docs":{},"(":{"docs":{},"&":{"docs":{},"a":{"docs":{},"m":{"docs":{},"p":{"docs":{},";":{"docs":{},"c":{"docs":{},"r":{"docs":{},"e":{"docs":{},"d":{"docs":{},"i":{"docs":{},"t":{"docs":{},"_":{"docs":{},"c":{"docs":{},"a":{"docs":{},"r":{"docs":{},"d":{"docs":{},")":{"docs":{},".":{"docs":{},"r":{"docs":{},"e":{"docs":{},"c":{"docs":{},"o":{"docs":{},"r":{"docs":{},"d":{"docs":{},"n":{"docs":{},"o":{"docs":{},"t":{"docs":{},"f":{"docs":{},"o":{"docs":{},"u":{"docs":{},"n":{"docs":{},"d":{"docs":{"advanced.html":{"ref":"advanced.html","tf":0.00303951367781155}}}}}}}}}}}}}}}}}}}}}}}}}}}},"a":{"docs":{},"r":{"docs":{},"d":{"docs":{"associations.html":{"ref":"associations.html","tf":0.004357298474945534}}}}}},"e":{"docs":{},"m":{"docs":{},"a":{"docs":{},"i":{"docs":{},"l":{"docs":{"associations.html":{"ref":"associations.html","tf":0.002178649237472767}}}}}}},"l":{"docs":{},"a":{"docs":{},"n":{"docs":{},"g":{"docs":{},"u":{"docs":{},"a":{"docs":{},"g":{"docs":{"associations.html":{"ref":"associations.html","tf":0.002178649237472767}}}}}}}}},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"f":{"docs":{},"i":{"docs":{},"l":{"docs":{"associations.html":{"ref":"associations.html","tf":0.002178649237472767}}}}}}}}}}}}}}}}}}}}},"a":{"docs":{},"s":{"docs":{},"s":{"docs":{},"o":{"docs":{},"c":{"docs":{},"i":{"docs":{},"a":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"(":{"docs":{},"&":{"docs":{},"q":{"docs":{},"u":{"docs":{},"o":{"docs":{},"t":{"docs":{},";":{"docs":{},"l":{"docs":{},"a":{"docs":{},"n":{"docs":{},"g":{"docs":{},"u":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"s":{"docs":{},"&":{"docs":{},"q":{"docs":{},"u":{"docs":{},"o":{"docs":{},"t":{"docs":{"associations.html":{"ref":"associations.html","tf":0.002178649237472767}},";":{"docs":{},")":{"docs":{},".":{"docs":{},"a":{"docs":{},"p":{"docs":{},"p":{"docs":{},"e":{"docs":{},"n":{"docs":{},"d":{"docs":{},"(":{"docs":{},"[":{"docs":{},"]":{"docs":{},"l":{"docs":{},"a":{"docs":{},"n":{"docs":{},"g":{"docs":{},"u":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"{":{"docs":{},"l":{"docs":{},"a":{"docs":{},"n":{"docs":{},"g":{"docs":{},"u":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"z":{"docs":{},"h":{"docs":{"associations.html":{"ref":"associations.html","tf":0.002178649237472767}}}}}}}}}}}}}}}}}}}}}}},"l":{"docs":{},"a":{"docs":{},"n":{"docs":{},"g":{"docs":{},"u":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"{":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{"associations.html":{"ref":"associations.html","tf":0.002178649237472767}}}}}}}}}}}}}}}}}}}}},"c":{"docs":{},"l":{"docs":{},"e":{"docs":{},"a":{"docs":{},"r":{"docs":{"associations.html":{"ref":"associations.html","tf":0.002178649237472767}}}}}},"o":{"docs":{},"u":{"docs":{},"n":{"docs":{},"t":{"docs":{"associations.html":{"ref":"associations.html","tf":0.002178649237472767}}}}}}},"d":{"docs":{},"e":{"docs":{},"l":{"docs":{},"e":{"docs":{},"t":{"docs":{},"e":{"docs":{},"(":{"docs":{},"[":{"docs":{},"]":{"docs":{},"l":{"docs":{},"a":{"docs":{},"n":{"docs":{},"g":{"docs":{},"u":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"{":{"docs":{},"l":{"docs":{},"a":{"docs":{},"n":{"docs":{},"g":{"docs":{},"u":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"z":{"docs":{},"h":{"docs":{"associations.html":{"ref":"associations.html","tf":0.002178649237472767}}}}}}}}}}}}}}}}}}}}}}},"l":{"docs":{},"a":{"docs":{},"n":{"docs":{},"g":{"docs":{},"u":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"z":{"docs":{},"h":{"docs":{"associations.html":{"ref":"associations.html","tf":0.002178649237472767}}}}}}}}}}}}}}}}}}},"e":{"docs":{},"r":{"docs":{},"r":{"docs":{},"o":{"docs":{},"r":{"docs":{"associations.html":{"ref":"associations.html","tf":0.002178649237472767}}}}}}},"f":{"docs":{},"i":{"docs":{},"n":{"docs":{},"d":{"docs":{},"(":{"docs":{},"&":{"docs":{},"a":{"docs":{},"m":{"docs":{},"p":{"docs":{},";":{"docs":{},"l":{"docs":{},"a":{"docs":{},"n":{"docs":{},"g":{"docs":{},"u":{"docs":{},"a":{"docs":{},"g":{"docs":{"associations.html":{"ref":"associations.html","tf":0.002178649237472767}}}}}}}}}}}}}}}}}}},"r":{"docs":{},"e":{"docs":{},"p":{"docs":{},"l":{"docs":{},"a":{"docs":{},"c":{"docs":{},"e":{"docs":{},"(":{"docs":{},"[":{"docs":{},"]":{"docs":{},"l":{"docs":{},"a":{"docs":{},"n":{"docs":{},"g":{"docs":{},"u":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"{":{"docs":{},"l":{"docs":{},"a":{"docs":{},"n":{"docs":{},"g":{"docs":{},"u":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"z":{"docs":{},"h":{"docs":{"associations.html":{"ref":"associations.html","tf":0.002178649237472767}}}}}}}}}}}}}}}}}}}}}}},"l":{"docs":{},"a":{"docs":{},"n":{"docs":{},"g":{"docs":{},"u":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"{":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{"associations.html":{"ref":"associations.html","tf":0.002178649237472767}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"o":{"docs":{},"m":{"docs":{},"i":{"docs":{},"t":{"docs":{},"(":{"docs":{},"&":{"docs":{},"q":{"docs":{},"u":{"docs":{},"o":{"docs":{},"t":{"docs":{},";":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},"&":{"docs":{},"q":{"docs":{},"u":{"docs":{},"o":{"docs":{},"t":{"docs":{},";":{"docs":{},")":{"docs":{},".":{"docs":{},"u":{"docs":{},"p":{"docs":{},"d":{"docs":{},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},"s":{"docs":{},"(":{"docs":{},"m":{"docs":{},"a":{"docs":{},"p":{"docs":{},"[":{"docs":{},"s":{"docs":{},"t":{"docs":{},"r":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},"]":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"f":{"docs":{},"a":{"docs":{},"c":{"docs":{},"e":{"docs":{},"{":{"docs":{},"}":{"docs":{},"{":{"docs":{},"&":{"docs":{},"q":{"docs":{},"u":{"docs":{},"o":{"docs":{},"t":{"docs":{},";":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},"&":{"docs":{},"q":{"docs":{},"u":{"docs":{},"o":{"docs":{},"t":{"docs":{"curd.html":{"ref":"curd.html","tf":0.0005370569280343716}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"s":{"docs":{},"e":{"docs":{},"l":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},"(":{"docs":{},"&":{"docs":{},"q":{"docs":{},"u":{"docs":{},"o":{"docs":{},"t":{"docs":{},";":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},"&":{"docs":{},"q":{"docs":{},"u":{"docs":{},"o":{"docs":{},"t":{"docs":{},";":{"docs":{},")":{"docs":{},".":{"docs":{},"u":{"docs":{},"p":{"docs":{},"d":{"docs":{},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},"s":{"docs":{},"(":{"docs":{},"m":{"docs":{},"a":{"docs":{},"p":{"docs":{},"[":{"docs":{},"s":{"docs":{},"t":{"docs":{},"r":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},"]":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"f":{"docs":{},"a":{"docs":{},"c":{"docs":{},"e":{"docs":{},"{":{"docs":{},"}":{"docs":{},"{":{"docs":{},"&":{"docs":{},"q":{"docs":{},"u":{"docs":{},"o":{"docs":{},"t":{"docs":{},";":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},"&":{"docs":{},"q":{"docs":{},"u":{"docs":{},"o":{"docs":{},"t":{"docs":{"curd.html":{"ref":"curd.html","tf":0.0005370569280343716}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"t":{"docs":{},"(":{"docs":{},"&":{"docs":{},"q":{"docs":{},"u":{"docs":{},"o":{"docs":{},"t":{"docs":{},";":{"docs":{},"g":{"docs":{},"o":{"docs":{},"r":{"docs":{},"m":{"docs":{},":":{"docs":{},"u":{"docs":{},"p":{"docs":{},"d":{"docs":{},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},"_":{"docs":{},"o":{"docs":{},"p":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"&":{"docs":{},"q":{"docs":{},"u":{"docs":{},"o":{"docs":{},"t":{"docs":{"curd.html":{"ref":"curd.html","tf":0.0005370569280343716}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"u":{"docs":{},"p":{"docs":{},"d":{"docs":{},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},"(":{"docs":{},"&":{"docs":{},"q":{"docs":{},"u":{"docs":{},"o":{"docs":{},"t":{"docs":{},";":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},"&":{"docs":{},"q":{"docs":{},"u":{"docs":{},"o":{"docs":{},"t":{"docs":{"curd.html":{"ref":"curd.html","tf":0.0005370569280343716},"models.html":{"ref":"models.html","tf":0.00202020202020202}}}}}}}}}}},"c":{"docs":{},"r":{"docs":{},"e":{"docs":{},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},"d":{"docs":{},"a":{"docs":{},"t":{"docs":{},"&":{"docs":{},"q":{"docs":{},"u":{"docs":{},"o":{"docs":{},"t":{"docs":{"models.html":{"ref":"models.html","tf":0.00202020202020202}}}}}}}}}}}}}}}}}}}}}}},"c":{"docs":{},"o":{"docs":{},"l":{"docs":{},"u":{"docs":{},"m":{"docs":{},"n":{"docs":{},"(":{"docs":{},"&":{"docs":{},"q":{"docs":{},"u":{"docs":{},"o":{"docs":{},"t":{"docs":{},";":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},"&":{"docs":{},"q":{"docs":{},"u":{"docs":{},"o":{"docs":{},"t":{"docs":{"curd.html":{"ref":"curd.html","tf":0.0005370569280343716}}}}}}}}}}}}}}}}}},"s":{"docs":{},"(":{"docs":{},"u":{"docs":{},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},"{":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{"curd.html":{"ref":"curd.html","tf":0.0005370569280343716}}}}}}}}}}}}}}}}}},"s":{"docs":{},"(":{"docs":{},"m":{"docs":{},"a":{"docs":{},"p":{"docs":{},"[":{"docs":{},"s":{"docs":{},"t":{"docs":{},"r":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},"]":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"f":{"docs":{},"a":{"docs":{},"c":{"docs":{},"e":{"docs":{},"{":{"docs":{},"}":{"docs":{},"{":{"docs":{},"&":{"docs":{},"q":{"docs":{},"u":{"docs":{},"o":{"docs":{},"t":{"docs":{},";":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},"&":{"docs":{},"q":{"docs":{},"u":{"docs":{},"o":{"docs":{},"t":{"docs":{"curd.html":{"ref":"curd.html","tf":0.0005370569280343716}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"u":{"docs":{},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},"{":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{"curd.html":{"ref":"curd.html","tf":0.0010741138560687433}}}}}}}}}}}}}}}}}},"w":{"docs":{},"h":{"docs":{},"e":{"docs":{},"r":{"docs":{},"e":{"docs":{},"(":{"docs":{},"&":{"docs":{},"q":{"docs":{},"u":{"docs":{},"o":{"docs":{},"t":{"docs":{},";":{"docs":{},"a":{"docs":{},"c":{"docs":{},"t":{"docs":{"curd.html":{"ref":"curd.html","tf":0.0005370569280343716}}}}}}}}}}}}}}}}}}},"{":{"docs":{},"}":{"docs":{},")":{"docs":{},".":{"docs":{},"w":{"docs":{},"h":{"docs":{},"e":{"docs":{},"r":{"docs":{},"e":{"docs":{},"(":{"docs":{},"&":{"docs":{},"q":{"docs":{},"u":{"docs":{},"o":{"docs":{},"t":{"docs":{},";":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{"advanced.html":{"ref":"advanced.html","tf":0.0060790273556231},"curd.html":{"ref":"curd.html","tf":0.0005370569280343716}}}}}}}}}}}}}}}}},"p":{"docs":{},"l":{"docs":{},"u":{"docs":{},"c":{"docs":{},"k":{"docs":{},"(":{"docs":{},"&":{"docs":{},"q":{"docs":{},"u":{"docs":{},"o":{"docs":{},"t":{"docs":{},";":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},"&":{"docs":{},"q":{"docs":{},"u":{"docs":{},"o":{"docs":{},"t":{"docs":{"curd.html":{"ref":"curd.html","tf":0.0005370569280343716}}}}}}}}}}}}}}}}}}}}}}},"a":{"docs":{},"d":{"docs":{},"d":{"docs":{},"f":{"docs":{},"o":{"docs":{},"r":{"docs":{},"e":{"docs":{},"i":{"docs":{},"g":{"docs":{},"n":{"docs":{},"k":{"docs":{},"e":{"docs":{},"y":{"docs":{},"(":{"docs":{},"&":{"docs":{},"q":{"docs":{},"u":{"docs":{},"o":{"docs":{},"t":{"docs":{},";":{"docs":{},"c":{"docs":{},"i":{"docs":{},"t":{"docs":{},"y":{"docs":{},"_":{"docs":{},"i":{"docs":{},"d":{"docs":{},"&":{"docs":{},"q":{"docs":{},"u":{"docs":{},"o":{"docs":{},"t":{"docs":{"database.html":{"ref":"database.html","tf":0.0034129692832764505}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"i":{"docs":{},"n":{"docs":{},"d":{"docs":{},"e":{"docs":{},"x":{"docs":{},"(":{"docs":{},"&":{"docs":{},"q":{"docs":{},"u":{"docs":{},"o":{"docs":{},"t":{"docs":{},";":{"docs":{},"i":{"docs":{},"d":{"docs":{},"x":{"docs":{},"_":{"docs":{},"u":{"docs":{},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},"_":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},"&":{"docs":{},"q":{"docs":{},"u":{"docs":{},"o":{"docs":{},"t":{"docs":{"database.html":{"ref":"database.html","tf":0.0034129692832764505}}}}}}},"_":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"&":{"docs":{},"q":{"docs":{},"u":{"docs":{},"o":{"docs":{},"t":{"docs":{"database.html":{"ref":"database.html","tf":0.0034129692832764505}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"u":{"docs":{},"n":{"docs":{},"i":{"docs":{},"q":{"docs":{},"u":{"docs":{},"e":{"docs":{},"i":{"docs":{},"n":{"docs":{},"d":{"docs":{},"e":{"docs":{},"x":{"docs":{},"(":{"docs":{},"&":{"docs":{},"q":{"docs":{},"u":{"docs":{},"o":{"docs":{},"t":{"docs":{},";":{"docs":{},"i":{"docs":{},"d":{"docs":{},"x":{"docs":{},"_":{"docs":{},"u":{"docs":{},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},"_":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},"&":{"docs":{},"q":{"docs":{},"u":{"docs":{},"o":{"docs":{},"t":{"docs":{"database.html":{"ref":"database.html","tf":0.0034129692832764505}}}}}}},"_":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"&":{"docs":{},"q":{"docs":{},"u":{"docs":{},"o":{"docs":{},"t":{"docs":{"database.html":{"ref":"database.html","tf":0.0034129692832764505}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"d":{"docs":{},"r":{"docs":{},"o":{"docs":{},"p":{"docs":{},"c":{"docs":{},"o":{"docs":{},"l":{"docs":{},"u":{"docs":{},"m":{"docs":{},"n":{"docs":{},"(":{"docs":{},"&":{"docs":{},"q":{"docs":{},"u":{"docs":{},"o":{"docs":{},"t":{"docs":{},";":{"docs":{},"d":{"docs":{},"e":{"docs":{},"s":{"docs":{},"c":{"docs":{},"r":{"docs":{},"i":{"docs":{},"p":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"&":{"docs":{},"q":{"docs":{},"u":{"docs":{},"o":{"docs":{},"t":{"docs":{"database.html":{"ref":"database.html","tf":0.0034129692832764505}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"m":{"docs":{},"o":{"docs":{},"d":{"docs":{},"i":{"docs":{},"f":{"docs":{},"y":{"docs":{},"c":{"docs":{},"o":{"docs":{},"l":{"docs":{},"u":{"docs":{},"m":{"docs":{},"n":{"docs":{},"(":{"docs":{},"&":{"docs":{},"q":{"docs":{},"u":{"docs":{},"o":{"docs":{},"t":{"docs":{},";":{"docs":{},"d":{"docs":{},"e":{"docs":{},"s":{"docs":{},"c":{"docs":{},"r":{"docs":{},"i":{"docs":{},"p":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"&":{"docs":{},"q":{"docs":{},"u":{"docs":{},"o":{"docs":{},"t":{"docs":{"database.html":{"ref":"database.html","tf":0.0034129692832764505}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"r":{"docs":{},"e":{"docs":{},"m":{"docs":{},"o":{"docs":{},"v":{"docs":{},"e":{"docs":{},"i":{"docs":{},"n":{"docs":{},"d":{"docs":{},"e":{"docs":{},"x":{"docs":{},"(":{"docs":{},"&":{"docs":{},"q":{"docs":{},"u":{"docs":{},"o":{"docs":{},"t":{"docs":{},";":{"docs":{},"i":{"docs":{},"d":{"docs":{},"x":{"docs":{},"_":{"docs":{},"u":{"docs":{},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},"_":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},"&":{"docs":{},"q":{"docs":{},"u":{"docs":{},"o":{"docs":{},"t":{"docs":{"database.html":{"ref":"database.html","tf":0.0034129692832764505}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"u":{"docs":{},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},"{":{"docs":{},"}":{"docs":{},")":{"docs":{},".":{"docs":{},"u":{"docs":{},"p":{"docs":{},"d":{"docs":{},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},"s":{"docs":{},"(":{"docs":{},"u":{"docs":{},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},"{":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{"curd.html":{"ref":"curd.html","tf":0.0010741138560687433}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"b":{"docs":{},"e":{"docs":{},"g":{"docs":{},"i":{"docs":{},"n":{"docs":{"advanced.html":{"ref":"advanced.html","tf":0.0060790273556231}}}}}}},"e":{"docs":{},"x":{"docs":{},"e":{"docs":{},"c":{"docs":{},"(":{"docs":{},"&":{"docs":{},"q":{"docs":{},"u":{"docs":{},"o":{"docs":{},"t":{"docs":{},";":{"docs":{},"d":{"docs":{},"r":{"docs":{},"o":{"docs":{},"p":{"docs":{"advanced.html":{"ref":"advanced.html","tf":0.00303951367781155}}}}}},"u":{"docs":{},"p":{"docs":{},"d":{"docs":{"advanced.html":{"ref":"advanced.html","tf":0.00303951367781155}}}}}}}}}}}}}}}},"l":{"docs":{},"o":{"docs":{},"g":{"docs":{},"m":{"docs":{},"o":{"docs":{},"d":{"docs":{},"e":{"docs":{},"(":{"docs":{},"f":{"docs":{},"a":{"docs":{},"l":{"docs":{},"s":{"docs":{"advanced.html":{"ref":"advanced.html","tf":0.00303951367781155}}}}}},"t":{"docs":{},"r":{"docs":{},"u":{"docs":{"advanced.html":{"ref":"advanced.html","tf":0.00303951367781155}}}}}}}}}}}},"a":{"docs":{},"s":{"docs":{},"t":{"docs":{},"(":{"docs":{},"&":{"docs":{},"a":{"docs":{},"m":{"docs":{},"p":{"docs":{},";":{"docs":{},"u":{"docs":{},"s":{"docs":{"curd.html":{"ref":"curd.html","tf":0.0005370569280343716}}}}}}}}}}}}},"i":{"docs":{},"m":{"docs":{},"i":{"docs":{},"t":{"docs":{},"(":{"1":{"0":{"docs":{},")":{"docs":{},".":{"docs":{},"f":{"docs":{},"i":{"docs":{},"n":{"docs":{},"d":{"docs":{},"(":{"docs":{},"&":{"docs":{},"a":{"docs":{},"m":{"docs":{},"p":{"docs":{},";":{"docs":{},"u":{"docs":{},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},"s":{"1":{"docs":{},")":{"docs":{},".":{"docs":{},"l":{"docs":{},"i":{"docs":{},"m":{"docs":{},"i":{"docs":{},"t":{"docs":{"curd.html":{"ref":"curd.html","tf":0.0005370569280343716}}}}}}}}}},"docs":{}}}}}}}}}}}}}}}}}}},"docs":{}},"3":{"docs":{},")":{"docs":{},".":{"docs":{},"f":{"docs":{},"i":{"docs":{},"n":{"docs":{},"d":{"docs":{},"(":{"docs":{},"&":{"docs":{},"a":{"docs":{},"m":{"docs":{},"p":{"docs":{},";":{"docs":{},"u":{"docs":{},"s":{"docs":{"curd.html":{"ref":"curd.html","tf":0.0005370569280343716}}}}}}}}}}}}}}}}},"docs":{}}}}}}},"r":{"docs":{},"a":{"docs":{},"w":{"docs":{},"(":{"docs":{},"&":{"docs":{},"q":{"docs":{},"u":{"docs":{},"o":{"docs":{},"t":{"docs":{},";":{"docs":{},"s":{"docs":{},"e":{"docs":{},"l":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{"advanced.html":{"ref":"advanced.html","tf":0.0060790273556231},"curd.html":{"ref":"curd.html","tf":0.0005370569280343716}}}}}}}}}}}}}}}}}},"s":{"docs":{},"c":{"docs":{},"a":{"docs":{},"n":{"docs":{},"r":{"docs":{},"o":{"docs":{},"w":{"docs":{},"s":{"docs":{},"(":{"docs":{},"r":{"docs":{},"o":{"docs":{},"w":{"docs":{"advanced.html":{"ref":"advanced.html","tf":0.00303951367781155}}}}}}}}}}}},"o":{"docs":{},"p":{"docs":{},"e":{"docs":{},"s":{"docs":{},"(":{"docs":{},"a":{"docs":{},"m":{"docs":{},"o":{"docs":{},"u":{"docs":{},"n":{"docs":{},"t":{"docs":{},"g":{"docs":{},"r":{"docs":{},"e":{"docs":{},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"t":{"docs":{},"h":{"docs":{},"a":{"docs":{},"n":{"1":{"0":{"0":{"0":{"docs":{"curd.html":{"ref":"curd.html","tf":0.0010741138560687433}},")":{"docs":{},".":{"docs":{},"w":{"docs":{},"h":{"docs":{},"e":{"docs":{},"r":{"docs":{},"e":{"docs":{},"(":{"docs":{},"&":{"docs":{},"q":{"docs":{},"u":{"docs":{},"o":{"docs":{},"t":{"docs":{},";":{"docs":{},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"t":{"docs":{},"u":{"docs":{"curd.html":{"ref":"curd.html","tf":0.0005370569280343716}}}}}}}}}}}}}}}}}}}}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}}}}}}}}}}}}}}}}}},"o":{"docs":{},"r":{"docs":{},"d":{"docs":{},"e":{"docs":{},"r":{"docs":{},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"t":{"docs":{},"u":{"docs":{},"s":{"docs":{},"(":{"docs":{},"[":{"docs":{},"]":{"docs":{},"s":{"docs":{},"t":{"docs":{},"r":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},"{":{"docs":{},"&":{"docs":{},"q":{"docs":{},"u":{"docs":{},"o":{"docs":{},"t":{"docs":{},";":{"docs":{},"p":{"docs":{},"a":{"docs":{},"i":{"docs":{},"d":{"docs":{},"&":{"docs":{},"q":{"docs":{},"u":{"docs":{},"o":{"docs":{},"t":{"docs":{"curd.html":{"ref":"curd.html","tf":0.0005370569280343716}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"e":{"docs":{},"t":{"docs":{},"l":{"docs":{},"o":{"docs":{},"g":{"docs":{},"g":{"docs":{},"e":{"docs":{},"r":{"docs":{},"(":{"docs":{},"g":{"docs":{},"o":{"docs":{},"r":{"docs":{},"m":{"docs":{},".":{"docs":{},"l":{"docs":{},"o":{"docs":{},"g":{"docs":{},"g":{"docs":{},"e":{"docs":{},"r":{"docs":{},"{":{"docs":{},"r":{"docs":{},"e":{"docs":{},"v":{"docs":{},"e":{"docs":{},"l":{"docs":{},".":{"docs":{},"t":{"docs":{},"r":{"docs":{},"a":{"docs":{},"c":{"docs":{"advanced.html":{"ref":"advanced.html","tf":0.00303951367781155}}}}}}}}}}}}}}}}}}}}}}}},"l":{"docs":{},"o":{"docs":{},"g":{"docs":{},".":{"docs":{},"n":{"docs":{},"e":{"docs":{},"w":{"docs":{},"(":{"docs":{},"o":{"docs":{},"s":{"docs":{},".":{"docs":{},"s":{"docs":{},"t":{"docs":{},"d":{"docs":{},"o":{"docs":{},"u":{"docs":{},"t":{"docs":{"advanced.html":{"ref":"advanced.html","tf":0.00303951367781155}}}}}}}}}}}}}}}}}}}}}}}}}},"(":{"docs":{},"&":{"docs":{},"q":{"docs":{},"u":{"docs":{},"o":{"docs":{},"t":{"docs":{},";":{"docs":{},"g":{"docs":{},"o":{"docs":{},"r":{"docs":{},"m":{"docs":{},":":{"docs":{},"d":{"docs":{},"e":{"docs":{},"l":{"docs":{},"e":{"docs":{},"t":{"docs":{},"e":{"docs":{},"_":{"docs":{},"o":{"docs":{},"p":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"&":{"docs":{},"q":{"docs":{},"u":{"docs":{},"o":{"docs":{},"t":{"docs":{"curd.html":{"ref":"curd.html","tf":0.0005370569280343716}}}}}}}}}}}}}}}}}}}},"i":{"docs":{},"n":{"docs":{},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},"t":{"docs":{},"_":{"docs":{},"o":{"docs":{},"p":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"&":{"docs":{},"q":{"docs":{},"u":{"docs":{},"o":{"docs":{},"t":{"docs":{"curd.html":{"ref":"curd.html","tf":0.0005370569280343716}}}}}}}}}}}}}}}}}}}},"q":{"docs":{},"u":{"docs":{},"e":{"docs":{},"r":{"docs":{},"y":{"docs":{},"_":{"docs":{},"o":{"docs":{},"p":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"&":{"docs":{},"q":{"docs":{},"u":{"docs":{},"o":{"docs":{},"t":{"docs":{"curd.html":{"ref":"curd.html","tf":0.0005370569280343716}}}}}}}}}}}}}}}}}}},"t":{"docs":{},"a":{"docs":{},"b":{"docs":{},"l":{"docs":{},"e":{"docs":{},"_":{"docs":{},"o":{"docs":{},"p":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{},"&":{"docs":{},"q":{"docs":{},"u":{"docs":{},"o":{"docs":{},"t":{"docs":{"database.html":{"ref":"database.html","tf":0.006825938566552901}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"l":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},"(":{"docs":{},"&":{"docs":{},"q":{"docs":{},"u":{"docs":{},"o":{"docs":{},"t":{"docs":{},";":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{"curd.html":{"ref":"curd.html","tf":0.0010741138560687433}}}}}}}}}}},"[":{"docs":{},"]":{"docs":{},"s":{"docs":{},"t":{"docs":{},"r":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},"{":{"docs":{},"&":{"docs":{},"q":{"docs":{},"u":{"docs":{},"o":{"docs":{},"t":{"docs":{},";":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},"&":{"docs":{},"q":{"docs":{},"u":{"docs":{},"o":{"docs":{},"t":{"docs":{"curd.html":{"ref":"curd.html","tf":0.0005370569280343716}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"a":{"docs":{},"v":{"docs":{},"e":{"docs":{},"(":{"docs":{},"&":{"docs":{},"a":{"docs":{},"m":{"docs":{},"p":{"docs":{},";":{"docs":{},"u":{"docs":{},"s":{"docs":{"curd.html":{"ref":"curd.html","tf":0.0005370569280343716},"models.html":{"ref":"models.html","tf":0.00202020202020202}}}}}}}}}}}}},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},"u":{"docs":{},"l":{"docs":{},"a":{"docs":{},"r":{"docs":{},"t":{"docs":{},"a":{"docs":{},"b":{"docs":{},"l":{"docs":{},"e":{"docs":{},"(":{"docs":{},"t":{"docs":{},"r":{"docs":{},"u":{"docs":{"models.html":{"ref":"models.html","tf":0.00202020202020202}}}}}}}}}}}}}}}}}}},"t":{"docs":{},"a":{"docs":{},"b":{"docs":{},"l":{"docs":{},"e":{"docs":{},"(":{"docs":{},"&":{"docs":{},"q":{"docs":{},"u":{"docs":{},"o":{"docs":{},"t":{"docs":{},";":{"docs":{},"u":{"docs":{},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},"s":{"docs":{},"&":{"docs":{},"q":{"docs":{},"u":{"docs":{},"o":{"docs":{},"t":{"docs":{},";":{"docs":{},")":{"docs":{},".":{"docs":{},"w":{"docs":{},"h":{"docs":{},"e":{"docs":{},"r":{"docs":{},"e":{"docs":{},"(":{"docs":{},"&":{"docs":{},"q":{"docs":{},"u":{"docs":{},"o":{"docs":{},"t":{"docs":{},";":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{"advanced.html":{"ref":"advanced.html","tf":0.00303951367781155}}}}},"i":{"docs":{},"d":{"docs":{"curd.html":{"ref":"curd.html","tf":0.0005370569280343716}}}}}}}}}}}}}}}},"s":{"docs":{},"e":{"docs":{},"l":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},"(":{"docs":{},"&":{"docs":{},"q":{"docs":{},"u":{"docs":{},"o":{"docs":{},"t":{"docs":{},";":{"docs":{},"c":{"docs":{},"o":{"docs":{},"a":{"docs":{},"l":{"docs":{},"e":{"docs":{},"s":{"docs":{},"c":{"docs":{},"e":{"docs":{},"(":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},",":{"docs":{},"?":{"docs":{},")":{"docs":{},"&":{"docs":{},"q":{"docs":{},"u":{"docs":{},"o":{"docs":{},"t":{"docs":{"curd.html":{"ref":"curd.html","tf":0.0005370569280343716}}}}}}}}}}}}}}}}}}}}}},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{"curd.html":{"ref":"curd.html","tf":0.0005370569280343716}}}}},"u":{"docs":{},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},"s":{"docs":{},".":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{"curd.html":{"ref":"curd.html","tf":0.0010741138560687433}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"d":{"docs":{},"e":{"docs":{},"l":{"docs":{},"e":{"docs":{},"t":{"docs":{},"e":{"docs":{},"d":{"docs":{},"_":{"docs":{},"u":{"docs":{},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},"s":{"docs":{},"&":{"docs":{},"q":{"docs":{},"u":{"docs":{},"o":{"docs":{},"t":{"docs":{},";":{"docs":{},")":{"docs":{},".":{"docs":{},"c":{"docs":{},"o":{"docs":{},"u":{"docs":{},"n":{"docs":{},"t":{"docs":{},"(":{"docs":{},"&":{"docs":{},"a":{"docs":{},"m":{"docs":{},"p":{"docs":{},";":{"docs":{},"c":{"docs":{},"o":{"docs":{},"u":{"docs":{},"n":{"docs":{},"t":{"docs":{"curd.html":{"ref":"curd.html","tf":0.0005370569280343716}}}}}}}}}}}}}}}}},"r":{"docs":{},"e":{"docs":{},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},"t":{"docs":{},"a":{"docs":{},"b":{"docs":{},"l":{"docs":{},"e":{"docs":{},"(":{"docs":{},"&":{"docs":{},"a":{"docs":{},"m":{"docs":{},"p":{"docs":{},";":{"docs":{},"u":{"docs":{},"s":{"docs":{"curd.html":{"ref":"curd.html","tf":0.0005370569280343716}}}}}}}}}}}}}}}}}}}}},"f":{"docs":{},"i":{"docs":{},"n":{"docs":{},"d":{"docs":{},"(":{"docs":{},"&":{"docs":{},"a":{"docs":{},"m":{"docs":{},"p":{"docs":{},";":{"docs":{},"d":{"docs":{},"e":{"docs":{},"l":{"docs":{},"e":{"docs":{},"t":{"docs":{},"e":{"docs":{},"d":{"docs":{},"_":{"docs":{},"u":{"docs":{},"s":{"docs":{"curd.html":{"ref":"curd.html","tf":0.0005370569280343716}}}}}}}}}}}}}}}}}}}}}},"p":{"docs":{},"l":{"docs":{},"u":{"docs":{},"c":{"docs":{},"k":{"docs":{},"(":{"docs":{},"&":{"docs":{},"q":{"docs":{},"u":{"docs":{},"o":{"docs":{},"t":{"docs":{},";":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},"&":{"docs":{},"q":{"docs":{},"u":{"docs":{},"o":{"docs":{},"t":{"docs":{"curd.html":{"ref":"curd.html","tf":0.0005370569280343716}}}}}}}}}}}}}}}}}}}}}}},"w":{"docs":{},"h":{"docs":{},"e":{"docs":{},"r":{"docs":{},"e":{"docs":{},"(":{"docs":{},"&":{"docs":{},"q":{"docs":{},"u":{"docs":{},"o":{"docs":{},"t":{"docs":{},";":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{"curd.html":{"ref":"curd.html","tf":0.0005370569280343716}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"o":{"docs":{},"r":{"docs":{},"d":{"docs":{},"e":{"docs":{},"r":{"docs":{},"s":{"docs":{},"&":{"docs":{},"q":{"docs":{},"u":{"docs":{},"o":{"docs":{},"t":{"docs":{},";":{"docs":{},")":{"docs":{},".":{"docs":{},"s":{"docs":{},"e":{"docs":{},"l":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},"(":{"docs":{},"&":{"docs":{},"q":{"docs":{},"u":{"docs":{},"o":{"docs":{},"t":{"docs":{},";":{"docs":{},"d":{"docs":{},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},"(":{"docs":{},"c":{"docs":{},"r":{"docs":{},"e":{"docs":{},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},"d":{"docs":{},"_":{"docs":{},"a":{"docs":{},"t":{"docs":{"curd.html":{"ref":"curd.html","tf":0.001611170784103115}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"w":{"docs":{},"h":{"docs":{},"e":{"docs":{},"r":{"docs":{},"e":{"docs":{},"(":{"docs":{},"&":{"docs":{},"q":{"docs":{},"u":{"docs":{},"o":{"docs":{},"t":{"docs":{},";":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{"advanced.html":{"ref":"advanced.html","tf":0.0060790273556231},"curd.html":{"ref":"curd.html","tf":0.0053705692803437165},"development.html":{"ref":"development.html","tf":0.004807692307692308}}}}},"a":{"docs":{},"g":{"docs":{"curd.html":{"ref":"curd.html","tf":0.0010741138560687433},"development.html":{"ref":"development.html","tf":0.004807692307692308}}},"m":{"docs":{},"o":{"docs":{},"u":{"docs":{},"n":{"docs":{},"t":{"docs":{"curd.html":{"ref":"curd.html","tf":0.0005370569280343716}}}}}}}},"c":{"docs":{},"r":{"docs":{},"e":{"docs":{},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},"d":{"docs":{},"_":{"docs":{},"a":{"docs":{},"t":{"docs":{"curd.html":{"ref":"curd.html","tf":0.0005370569280343716}}}}}}}}}}}},"e":{"docs":{},"m":{"docs":{},"a":{"docs":{},"i":{"docs":{},"l":{"docs":{"curd.html":{"ref":"curd.html","tf":0.0005370569280343716}}}}}}},"p":{"docs":{},"a":{"docs":{},"y":{"docs":{},"_":{"docs":{},"m":{"docs":{},"o":{"docs":{},"d":{"docs":{},"e":{"docs":{},"_":{"docs":{},"s":{"docs":{},"i":{"docs":{},"g":{"docs":{},"n":{"docs":{"curd.html":{"ref":"curd.html","tf":0.0010741138560687433}}}}}}}}}}}}}}},"r":{"docs":{},"o":{"docs":{},"l":{"docs":{"curd.html":{"ref":"curd.html","tf":0.0010741138560687433}}}}},"u":{"docs":{},"p":{"docs":{},"d":{"docs":{},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},"d":{"docs":{},"_":{"docs":{},"a":{"docs":{},"t":{"docs":{"curd.html":{"ref":"curd.html","tf":0.0005370569280343716}}}}}}}}}}}}}}}}},"a":{"docs":{},"m":{"docs":{},"p":{"docs":{},";":{"docs":{},"u":{"docs":{},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},"{":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{"curd.html":{"ref":"curd.html","tf":0.0005370569280343716}}}}}}}}}}}}}}},"[":{"docs":{},"]":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"6":{"4":{"docs":{},"{":{"2":{"0":{"docs":{"curd.html":{"ref":"curd.html","tf":0.0005370569280343716}}},"docs":{}},"docs":{}}},"docs":{}},"docs":{}}}}}},"m":{"docs":{},"a":{"docs":{},"p":{"docs":{},"[":{"docs":{},"s":{"docs":{},"t":{"docs":{},"r":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},"]":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"f":{"docs":{},"a":{"docs":{},"c":{"docs":{},"e":{"docs":{},"{":{"docs":{},"}":{"docs":{},"{":{"docs":{},"&":{"docs":{},"q":{"docs":{},"u":{"docs":{},"o":{"docs":{},"t":{"docs":{},";":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},"&":{"docs":{},"q":{"docs":{},"u":{"docs":{},"o":{"docs":{},"t":{"docs":{"curd.html":{"ref":"curd.html","tf":0.0005370569280343716}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"u":{"docs":{},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},"{":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{"curd.html":{"ref":"curd.html","tf":0.005907626208378088}}}}}}}}}}}}}}}},"u":{"docs":{},"n":{"docs":{},"s":{"docs":{},"c":{"docs":{},"o":{"docs":{},"p":{"docs":{},"e":{"docs":{},"d":{"docs":{},"(":{"docs":{},")":{"docs":{},".":{"docs":{},"m":{"docs":{},"o":{"docs":{},"d":{"docs":{},"e":{"docs":{},"l":{"docs":{},"(":{"docs":{},"m":{"docs":{},"o":{"docs":{},"d":{"docs":{},"e":{"docs":{},"l":{"docs":{},")":{"docs":{},".":{"docs":{},"w":{"docs":{},"h":{"docs":{},"e":{"docs":{},"r":{"docs":{},"e":{"docs":{},"(":{"docs":{},"&":{"docs":{},"q":{"docs":{},"u":{"docs":{},"o":{"docs":{},"t":{"docs":{},";":{"docs":{},"d":{"docs":{},"e":{"docs":{},"l":{"docs":{},"e":{"docs":{},"t":{"docs":{},"e":{"docs":{},"d":{"docs":{},"_":{"docs":{},"a":{"docs":{},"t":{"docs":{"changelog.html":{"ref":"changelog.html","tf":0.004784688995215311}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"d":{"docs":{},"e":{"docs":{},"l":{"docs":{},"e":{"docs":{},"t":{"docs":{},"e":{"docs":{},"(":{"docs":{},"&":{"docs":{},"a":{"docs":{},"m":{"docs":{},"p":{"docs":{},";":{"docs":{},"o":{"docs":{},"r":{"docs":{},"d":{"docs":{"curd.html":{"ref":"curd.html","tf":0.0005370569280343716}}}}}}}}}}}}}}}}},"w":{"docs":{},"h":{"docs":{},"e":{"docs":{},"r":{"docs":{},"e":{"docs":{},"(":{"docs":{},"&":{"docs":{},"q":{"docs":{},"u":{"docs":{},"o":{"docs":{},"t":{"docs":{},";":{"docs":{},"a":{"docs":{},"g":{"docs":{"curd.html":{"ref":"curd.html","tf":0.0005370569280343716}}}}}}}}}}}}}}}}}}}}}}}}}}},"j":{"docs":{},"o":{"docs":{},"i":{"docs":{},"n":{"docs":{},"s":{"docs":{},"(":{"docs":{},"&":{"docs":{},"q":{"docs":{},"u":{"docs":{},"o":{"docs":{},"t":{"docs":{},";":{"docs":{},"j":{"docs":{},"o":{"docs":{},"i":{"docs":{},"n":{"docs":{"curd.html":{"ref":"curd.html","tf":0.0005370569280343716}}}}}}}}}}}}}}}}}},"n":{"docs":{},"e":{"docs":{},"w":{"docs":{},"r":{"docs":{},"e":{"docs":{},"c":{"docs":{},"o":{"docs":{},"r":{"docs":{},"d":{"docs":{},"(":{"docs":{},"u":{"docs":{},"s":{"docs":{"curd.html":{"ref":"curd.html","tf":0.0010741138560687433}}}}}}}}}}}}},"o":{"docs":{},"t":{"docs":{},"(":{"docs":{},"&":{"docs":{},"q":{"docs":{},"u":{"docs":{},"o":{"docs":{},"t":{"docs":{},";":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{"curd.html":{"ref":"curd.html","tf":0.0005370569280343716}},"e":{"docs":{},"&":{"docs":{},"q":{"docs":{},"u":{"docs":{},"o":{"docs":{},"t":{"docs":{"curd.html":{"ref":"curd.html","tf":0.0010741138560687433}}}}}}}}}}}}}}}}},"[":{"docs":{},"]":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"6":{"4":{"docs":{},"{":{"1":{"docs":{},",":{"2":{"docs":{},",":{"3":{"docs":{},"}":{"docs":{},")":{"docs":{},".":{"docs":{},"f":{"docs":{},"i":{"docs":{},"r":{"docs":{},"s":{"docs":{},"t":{"docs":{},"(":{"docs":{},"&":{"docs":{},"a":{"docs":{},"m":{"docs":{},"p":{"docs":{},";":{"docs":{},"u":{"docs":{},"s":{"docs":{"curd.html":{"ref":"curd.html","tf":0.0005370569280343716}}}}}}}}}}}}}}}}}}},"docs":{}}},"docs":{}}},"docs":{},"}":{"docs":{},")":{"docs":{},".":{"docs":{},"f":{"docs":{},"i":{"docs":{},"r":{"docs":{},"s":{"docs":{},"t":{"docs":{},"(":{"docs":{},"&":{"docs":{},"a":{"docs":{},"m":{"docs":{},"p":{"docs":{},";":{"docs":{},"u":{"docs":{},"s":{"docs":{"curd.html":{"ref":"curd.html","tf":0.0005370569280343716}}}}}}}}}}}}}}}}}}}},"docs":{}},"docs":{}}}}}},"u":{"docs":{},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},"{":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{"curd.html":{"ref":"curd.html","tf":0.0005370569280343716}}}}}}}}}}}}}},"o":{"docs":{},"f":{"docs":{},"f":{"docs":{},"s":{"docs":{},"e":{"docs":{},"t":{"docs":{},"(":{"1":{"0":{"docs":{},")":{"docs":{},".":{"docs":{},"f":{"docs":{},"i":{"docs":{},"n":{"docs":{},"d":{"docs":{},"(":{"docs":{},"&":{"docs":{},"a":{"docs":{},"m":{"docs":{},"p":{"docs":{},";":{"docs":{},"u":{"docs":{},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},"s":{"1":{"docs":{},")":{"docs":{},".":{"docs":{},"o":{"docs":{},"f":{"docs":{},"f":{"docs":{},"s":{"docs":{},"e":{"docs":{},"t":{"docs":{"curd.html":{"ref":"curd.html","tf":0.0005370569280343716}}}}}}}}}}},"docs":{}}}}}}}}}}}}}}}}}}},"docs":{}},"3":{"docs":{},")":{"docs":{},".":{"docs":{},"f":{"docs":{},"i":{"docs":{},"n":{"docs":{},"d":{"docs":{},"(":{"docs":{},"&":{"docs":{},"a":{"docs":{},"m":{"docs":{},"p":{"docs":{},";":{"docs":{},"u":{"docs":{},"s":{"docs":{"curd.html":{"ref":"curd.html","tf":0.0005370569280343716}}}}}}}}}}}}}}}}},"docs":{}}}}}}},"r":{"docs":{},"d":{"docs":{},"e":{"docs":{},"r":{"docs":{},"(":{"docs":{},"&":{"docs":{},"q":{"docs":{},"u":{"docs":{},"o":{"docs":{},"t":{"docs":{},";":{"docs":{},"a":{"docs":{},"g":{"docs":{"curd.html":{"ref":"curd.html","tf":0.001611170784103115}}}}}}}}}}}}}}}},"a":{"docs":{},"u":{"docs":{},"t":{"docs":{},"o":{"docs":{},"m":{"docs":{},"i":{"docs":{},"g":{"docs":{},"r":{"docs":{},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},"(":{"docs":{},"&":{"docs":{},"a":{"docs":{},"m":{"docs":{},"p":{"docs":{},";":{"docs":{},"u":{"docs":{},"s":{"docs":{"database.html":{"ref":"database.html","tf":0.006825938566552901}}}}}}}}}}}}}}}}}}}}},"h":{"docs":{},"a":{"docs":{},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"b":{"docs":{},"l":{"docs":{},"e":{"docs":{},"(":{"docs":{},"&":{"docs":{},"a":{"docs":{},"m":{"docs":{},"p":{"docs":{},";":{"docs":{},"u":{"docs":{},"s":{"docs":{"database.html":{"ref":"database.html","tf":0.0034129692832764505}}}}}}}},"q":{"docs":{},"u":{"docs":{},"o":{"docs":{},"t":{"docs":{},";":{"docs":{},"u":{"docs":{},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},"s":{"docs":{},"&":{"docs":{},"q":{"docs":{},"u":{"docs":{},"o":{"docs":{},"t":{"docs":{"database.html":{"ref":"database.html","tf":0.0034129692832764505}}}}}}}}}}}}}}}}}}}}}}}}}}}},"&":{"docs":{},"a":{"docs":{},"p":{"docs":{},"o":{"docs":{},"s":{"docs":{},";":{"docs":{"advanced.html":{"ref":"advanced.html","tf":0.00303951367781155}}}}}}}},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},"=":{"docs":{},"g":{"docs":{},"o":{"docs":{},"r":{"docs":{},"m":{"docs":{"database.html":{"ref":"database.html","tf":0.0034129692832764505},"development.html":{"ref":"development.html","tf":0.004807692307692308}}}}}}}}}}}},"e":{"docs":{},"l":{"docs":{},"e":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.016},"associations.html":{"ref":"associations.html","tf":0.006535947712418301},"callbacks.html":{"ref":"callbacks.html","tf":0.025906735751295335},"curd.html":{"ref":"curd.html","tf":0.01342642320085929},"database.html":{"ref":"database.html","tf":0.0034129692832764505},"development.html":{"ref":"development.html","tf":0.02403846153846154},"models.html":{"ref":"models.html","tf":0.010101010101010102}},"e":{"docs":{},"&":{"docs":{},"a":{"docs":{},"p":{"docs":{},"o":{"docs":{},"s":{"docs":{},";":{"docs":{"changelog.html":{"ref":"changelog.html","tf":0.004784688995215311}}}}}}}},"d":{"docs":{},"_":{"docs":{},"a":{"docs":{},"t":{"docs":{"changelog.html":{"ref":"changelog.html","tf":0.028708133971291867},"curd.html":{"ref":"curd.html","tf":0.0005370569280343716}},"=":{"docs":{},"&":{"docs":{},"q":{"docs":{},"u":{"docs":{},"o":{"docs":{},"t":{"docs":{},";":{"2":{"0":{"1":{"3":{"docs":{"curd.html":{"ref":"curd.html","tf":0.0010741138560687433}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}}}}}}}}}},"u":{"docs":{},"s":{"docs":{"curd.html":{"ref":"curd.html","tf":0.0026852846401718583}}}}},"a":{"docs":{},"t":{"docs":{"changelog.html":{"ref":"changelog.html","tf":0.004784688995215311},"curd.html":{"ref":"curd.html","tf":0.0005370569280343716},"models.html":{"ref":"models.html","tf":0.012121212121212121}},"&":{"docs":{},"a":{"docs":{},"p":{"docs":{},"o":{"docs":{},"s":{"docs":{},";":{"docs":{"curd.html":{"ref":"curd.html","tf":0.0005370569280343716},"models.html":{"ref":"models.html","tf":0.00202020202020202}}}}}}}}}}}}}}},"v":{"docs":{},"e":{"docs":{},"l":{"docs":{},"o":{"docs":{},"p":{"docs":{"./":{"ref":"./","tf":0.016},"development.html":{"ref":"development.html","tf":0.004807692307692308}}}}}}},"b":{"docs":{},"u":{"docs":{},"g":{"docs":{"advanced.html":{"ref":"advanced.html","tf":0.00303951367781155}}}}},"f":{"docs":{},"a":{"docs":{},"u":{"docs":{},"l":{"docs":{},"t":{"docs":{"advanced.html":{"ref":"advanced.html","tf":0.0060790273556231},"callbacks.html":{"ref":"callbacks.html","tf":0.0051813471502590676},"changelog.html":{"ref":"changelog.html","tf":0.014354066985645933},"curd.html":{"ref":"curd.html","tf":0.0026852846401718583},"development.html":{"ref":"development.html","tf":0.004807692307692308},"models.html":{"ref":"models.html","tf":0.00808080808080808}}}}}},"e":{"docs":{},"r":{"docs":{"advanced.html":{"ref":"advanced.html","tf":0.00911854103343465}}}},"i":{"docs":{},"n":{"docs":{"callbacks.html":{"ref":"callbacks.html","tf":0.0051813471502590676},"curd.html":{"ref":"curd.html","tf":0.0010741138560687433},"development.html":{"ref":"development.html","tf":0.009615384615384616},"models.html":{"ref":"models.html","tf":0.006060606060606061}},"i":{"docs":{},"t":{"docs":{"curd.html":{"ref":"curd.html","tf":0.0005370569280343716},"models.html":{"ref":"models.html","tf":0.00404040404040404}}}}},"e":{"docs":{},"n":{"docs":{},"d":{"docs":{"development.html":{"ref":"development.html","tf":0.004807692307692308}}}}}}},"t":{"docs":{},"a":{"docs":{},"i":{"docs":{},"l":{"docs":{"advanced.html":{"ref":"advanced.html","tf":0.0060790273556231},"curd.html":{"ref":"curd.html","tf":0.0005370569280343716}}}}}},"s":{"docs":{},"c":{"docs":{"curd.html":{"ref":"curd.html","tf":0.0026852846401718583}},"&":{"docs":{},"q":{"docs":{},"u":{"docs":{},"o":{"docs":{},"t":{"docs":{},";":{"docs":{},")":{"docs":{},".":{"docs":{},"f":{"docs":{},"i":{"docs":{},"n":{"docs":{},"d":{"docs":{},"(":{"docs":{},"&":{"docs":{},"a":{"docs":{},"m":{"docs":{},"p":{"docs":{},";":{"docs":{},"u":{"docs":{},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},"s":{"1":{"docs":{},")":{"docs":{},".":{"docs":{},"o":{"docs":{},"r":{"docs":{},"d":{"docs":{},"e":{"docs":{},"r":{"docs":{},"(":{"docs":{},"&":{"docs":{},"q":{"docs":{},"u":{"docs":{},"o":{"docs":{},"t":{"docs":{},";":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"&":{"docs":{},"q":{"docs":{},"u":{"docs":{},"o":{"docs":{},"t":{"docs":{"curd.html":{"ref":"curd.html","tf":0.0005370569280343716}}}}}}}}}}}}}}}}}}}}}}}}},"docs":{}}}}}}}}}}}}}}}},"o":{"docs":{},"r":{"docs":{},"d":{"docs":{},"e":{"docs":{},"r":{"docs":{},"(":{"docs":{},"&":{"docs":{},"q":{"docs":{},"u":{"docs":{},"o":{"docs":{},"t":{"docs":{},";":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},"&":{"docs":{},"q":{"docs":{},"u":{"docs":{},"o":{"docs":{},"t":{"docs":{},";":{"docs":{},")":{"docs":{},".":{"docs":{},"f":{"docs":{},"i":{"docs":{},"n":{"docs":{},"d":{"docs":{},"(":{"docs":{},"&":{"docs":{},"a":{"docs":{},"m":{"docs":{},"p":{"docs":{},";":{"docs":{},"u":{"docs":{},"s":{"docs":{"curd.html":{"ref":"curd.html","tf":0.0005370569280343716}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"r":{"docs":{},"i":{"docs":{},"p":{"docs":{},"t":{"docs":{"database.html":{"ref":"database.html","tf":0.0034129692832764505}},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"&":{"docs":{},"a":{"docs":{},"p":{"docs":{},"o":{"docs":{},"s":{"docs":{},";":{"docs":{"database.html":{"ref":"database.html","tf":0.0034129692832764505}}}}}}}}}}}}}}}},"t":{"docs":{},"i":{"docs":{},"n":{"docs":{"database.html":{"ref":"database.html","tf":0.0034129692832764505}}}}}}},"i":{"docs":{},"a":{"docs":{},"b":{"docs":{},"l":{"docs":{"advanced.html":{"ref":"advanced.html","tf":0.00303951367781155}}}},"l":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{"database.html":{"ref":"database.html","tf":0.010238907849829351}}}}}}},"s":{"docs":{},"a":{"docs":{},"b":{"docs":{},"l":{"docs":{"models.html":{"ref":"models.html","tf":0.00202020202020202}}}}}}},"o":{"docs":{},"n":{"docs":{},"&":{"docs":{},"a":{"docs":{},"p":{"docs":{},"o":{"docs":{},"s":{"docs":{},";":{"docs":{},"t":{"docs":{"advanced.html":{"ref":"advanced.html","tf":0.00303951367781155},"curd.html":{"ref":"curd.html","tf":0.0005370569280343716}}}}}}}}}},"g":{"docs":{"associations.html":{"ref":"associations.html","tf":0.002178649237472767}}},"e":{"docs":{},"s":{"docs":{},"n":{"docs":{},"&":{"docs":{},"a":{"docs":{},"p":{"docs":{},"o":{"docs":{},"s":{"docs":{},";":{"docs":{},"t":{"docs":{"changelog.html":{"ref":"changelog.html","tf":0.009569377990430622}}}}}}}}}}}}},"r":{"docs":{},"i":{"docs":{},"v":{"docs":{},"e":{"docs":{},"r":{"docs":{"changelog.html":{"ref":"changelog.html","tf":0.009569377990430622},"database.html":{"ref":"database.html","tf":0.010238907849829351}},"/":{"docs":{},"m":{"docs":{},"y":{"docs":{},"s":{"docs":{},"q":{"docs":{},"l":{"docs":{},"&":{"docs":{},"q":{"docs":{},"u":{"docs":{},"o":{"docs":{},"t":{"docs":{"database.html":{"ref":"database.html","tf":0.0034129692832764505}}}}}}}}}}}}}}}}},"o":{"docs":{},"p":{"docs":{"database.html":{"ref":"database.html","tf":0.020477815699658702}},"c":{"docs":{},"o":{"docs":{},"l":{"docs":{},"u":{"docs":{},"m":{"docs":{},"n":{"docs":{"database.html":{"ref":"database.html","tf":0.006825938566552901}}}}}}}}}}},"y":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{"curd.html":{"ref":"curd.html","tf":0.0005370569280343716}}}}}}},"e":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"r":{"docs":{"./":{"ref":"./","tf":0.008}}}}},"s":{"docs":{},"i":{"docs":{},"l":{"docs":{},"i":{"docs":{"associations.html":{"ref":"associations.html","tf":0.002178649237472767}}}},"e":{"docs":{},"r":{"docs":{"database.html":{"ref":"database.html","tf":0.0034129692832764505}}}}}},"c":{"docs":{},"h":{"docs":{"development.html":{"ref":"development.html","tf":0.004807692307692308}}}}},"r":{"docs":{},"r":{"docs":{"./":{"ref":"./","tf":0.016},"advanced.html":{"ref":"advanced.html","tf":0.0364741641337386},"callbacks.html":{"ref":"callbacks.html","tf":0.031088082901554404},"changelog.html":{"ref":"changelog.html","tf":0.009569377990430622},"curd.html":{"ref":"curd.html","tf":0.00322234156820623},"database.html":{"ref":"database.html","tf":0.010238907849829351},"development.html":{"ref":"development.html","tf":0.004807692307692308}},"o":{"docs":{},"r":{"docs":{"advanced.html":{"ref":"advanced.html","tf":0.03951367781155015},"associations.html":{"ref":"associations.html","tf":0.004357298474945534},"callbacks.html":{"ref":"callbacks.html","tf":0.025906735751295335},"changelog.html":{"ref":"changelog.html","tf":0.004784688995215311},"curd.html":{"ref":"curd.html","tf":0.0010741138560687433}},"s":{"docs":{},".":{"docs":{},"n":{"docs":{},"e":{"docs":{},"w":{"docs":{},"(":{"docs":{},"&":{"docs":{},"q":{"docs":{},"u":{"docs":{},"o":{"docs":{},"t":{"docs":{},";":{"docs":{},"r":{"docs":{},"e":{"docs":{},"a":{"docs":{},"d":{"docs":{"callbacks.html":{"ref":"callbacks.html","tf":0.0051813471502590676}}}}}},"u":{"docs":{},"s":{"docs":{"callbacks.html":{"ref":"callbacks.html","tf":0.0051813471502590676}}}}}}}}}}}}}}}}}},"r":{"docs":{},"e":{"docs":{},"c":{"docs":{},"o":{"docs":{},"r":{"docs":{},"d":{"docs":{},"n":{"docs":{},"o":{"docs":{},"t":{"docs":{},"f":{"docs":{},"o":{"docs":{},"u":{"docs":{},"n":{"docs":{},"d":{"docs":{"changelog.html":{"ref":"changelog.html","tf":0.004784688995215311}}}}}}}}}}}}}}}}}},"x":{"docs":{},"t":{"docs":{},"e":{"docs":{},"n":{"docs":{},"d":{"docs":{"./":{"ref":"./","tf":0.008}}}}},"r":{"docs":{},"a":{"docs":{"curd.html":{"ref":"curd.html","tf":0.0053705692803437165}}}}},"a":{"docs":{},"m":{"docs":{},"p":{"docs":{},"l":{"docs":{"advanced.html":{"ref":"advanced.html","tf":0.0060790273556231},"associations.html":{"ref":"associations.html","tf":0.002178649237472767},"callbacks.html":{"ref":"callbacks.html","tf":0.010362694300518135},"changelog.html":{"ref":"changelog.html","tf":0.004784688995215311},"curd.html":{"ref":"curd.html","tf":0.0010741138560687433},"database.html":{"ref":"database.html","tf":0.0034129692832764505},"development.html":{"ref":"development.html","tf":0.004807692307692308}}}}}},"p":{"docs":{},"l":{"docs":{},"i":{"docs":{},"c":{"docs":{},"i":{"docs":{},"t":{"docs":{},"l":{"docs":{},"i":{"docs":{"associations.html":{"ref":"associations.html","tf":0.002178649237472767}}}}}}}}},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{"curd.html":{"ref":"curd.html","tf":0.0010741138560687433}}}}}}},"c":{"docs":{},"l":{"docs":{},"u":{"docs":{},"d":{"docs":{"changelog.html":{"ref":"changelog.html","tf":0.004784688995215311}}}}}},"i":{"docs":{},"s":{"docs":{},"t":{"docs":{"changelog.html":{"ref":"changelog.html","tf":0.004784688995215311},"curd.html":{"ref":"curd.html","tf":0.0005370569280343716},"database.html":{"ref":"database.html","tf":0.010238907849829351},"development.html":{"ref":"development.html","tf":0.019230769230769232},"models.html":{"ref":"models.html","tf":0.00404040404040404}}}}}},"m":{"docs":{},"a":{"docs":{},"i":{"docs":{},"l":{"docs":{"advanced.html":{"ref":"advanced.html","tf":0.00303951367781155},"associations.html":{"ref":"associations.html","tf":0.013071895424836602},"curd.html":{"ref":"curd.html","tf":0.005907626208378088},"models.html":{"ref":"models.html","tf":0.00808080808080808}},"&":{"docs":{},"q":{"docs":{},"u":{"docs":{},"o":{"docs":{},"t":{"docs":{},";":{"docs":{},")":{"docs":{},".":{"docs":{},"r":{"docs":{},"o":{"docs":{},"w":{"docs":{"advanced.html":{"ref":"advanced.html","tf":0.0060790273556231}}}}}}}}}}}},"a":{"docs":{},"p":{"docs":{},"o":{"docs":{},"s":{"docs":{},";":{"docs":{"models.html":{"ref":"models.html","tf":0.00202020202020202}}}}}}}},"s":{"docs":{},".":{"docs":{},"e":{"docs":{},"m":{"docs":{},"a":{"docs":{},"i":{"docs":{},"l":{"docs":{"curd.html":{"ref":"curd.html","tf":0.0005370569280343716}},"&":{"docs":{},"q":{"docs":{},"u":{"docs":{},"o":{"docs":{},"t":{"docs":{},";":{"docs":{},")":{"docs":{},".":{"docs":{},"j":{"docs":{},"o":{"docs":{},"i":{"docs":{},"n":{"docs":{},"s":{"docs":{},"(":{"docs":{},"&":{"docs":{},"q":{"docs":{},"u":{"docs":{},"o":{"docs":{},"t":{"docs":{},";":{"docs":{},"l":{"docs":{},"e":{"docs":{},"f":{"docs":{},"t":{"docs":{"curd.html":{"ref":"curd.html","tf":0.0010741138560687433}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"u":{"docs":{},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},"_":{"docs":{},"i":{"docs":{},"d":{"docs":{"curd.html":{"ref":"curd.html","tf":0.001611170784103115}}}}}}}}}}},"{":{"docs":{},"{":{"docs":{},"e":{"docs":{},"m":{"docs":{},"a":{"docs":{},"i":{"docs":{},"l":{"docs":{"curd.html":{"ref":"curd.html","tf":0.0005370569280343716}}}}}}}}}}}},"b":{"docs":{"models.html":{"ref":"models.html","tf":0.00202020202020202}}}},"n":{"docs":{},"a":{"docs":{},"b":{"docs":{},"l":{"docs":{"advanced.html":{"ref":"advanced.html","tf":0.0060790273556231}}}}},"c":{"docs":{},"r":{"docs":{},"y":{"docs":{},"p":{"docs":{},"t":{"docs":{},"e":{"docs":{},"d":{"docs":{},"p":{"docs":{},"a":{"docs":{},"s":{"docs":{},"s":{"docs":{},"w":{"docs":{},"o":{"docs":{},"r":{"docs":{},"d":{"docs":{"changelog.html":{"ref":"changelog.html","tf":0.004784688995215311}}}}}}}}}}}}}}}}},"o":{"docs":{},"u":{"docs":{},"g":{"docs":{},"h":{"docs":{"changelog.html":{"ref":"changelog.html","tf":0.004784688995215311}}}}}},"s":{"docs":{},"u":{"docs":{},"r":{"docs":{"curd.html":{"ref":"curd.html","tf":0.0005370569280343716}}}}}},"d":{"docs":{},"g":{"docs":{},"e":{"docs":{},"r":{"docs":{"callbacks.html":{"ref":"callbacks.html","tf":0.0051813471502590676}}}}}},"v":{"docs":{},"e":{"docs":{},"n":{"docs":{"curd.html":{"ref":"curd.html","tf":0.0005370569280343716}}}}}},"f":{"docs":{},"a":{"docs":{},"n":{"docs":{},"t":{"docs":{},"a":{"docs":{},"s":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.008}}}}}}},"l":{"docs":{},"s":{"docs":{"curd.html":{"ref":"curd.html","tf":0.00322234156820623}}}}},"e":{"docs":{},"a":{"docs":{},"t":{"docs":{},"u":{"docs":{},"r":{"docs":{"./":{"ref":"./","tf":0.016}}}}}}},"i":{"docs":{},"n":{"docs":{},"d":{"docs":{"./":{"ref":"./","tf":0.016},"associations.html":{"ref":"associations.html","tf":0.002178649237472767},"curd.html":{"ref":"curd.html","tf":0.0021482277121374865},"models.html":{"ref":"models.html","tf":0.00202020202020202}},"a":{"docs":{},"b":{"docs":{},"l":{"docs":{"models.html":{"ref":"models.html","tf":0.00202020202020202}}}}}}},"e":{"docs":{},"l":{"docs":{},"d":{"docs":{"advanced.html":{"ref":"advanced.html","tf":0.0060790273556231},"associations.html":{"ref":"associations.html","tf":0.006535947712418301},"callbacks.html":{"ref":"callbacks.html","tf":0.0051813471502590676},"changelog.html":{"ref":"changelog.html","tf":0.014354066985645933},"curd.html":{"ref":"curd.html","tf":0.011278195488721804},"database.html":{"ref":"database.html","tf":0.0034129692832764505},"models.html":{"ref":"models.html","tf":0.04242424242424243}},"&":{"docs":{},"a":{"docs":{},"p":{"docs":{},"o":{"docs":{},"s":{"docs":{},";":{"docs":{"changelog.html":{"ref":"changelog.html","tf":0.004784688995215311},"curd.html":{"ref":"curd.html","tf":0.0010741138560687433},"models.html":{"ref":"models.html","tf":0.00404040404040404}}}}}}}},"s":{"docs":{},"&":{"docs":{},"a":{"docs":{},"p":{"docs":{},"o":{"docs":{},"s":{"docs":{},";":{"docs":{"curd.html":{"ref":"curd.html","tf":0.0005370569280343716}}}}}}}}}}}},"l":{"docs":{},"l":{"docs":{"associations.html":{"ref":"associations.html","tf":0.002178649237472767}}}},"x":{"docs":{"changelog.html":{"ref":"changelog.html","tf":0.004784688995215311}}},"r":{"docs":{},"s":{"docs":{},"t":{"docs":{"curd.html":{"ref":"curd.html","tf":0.0021482277121374865},"database.html":{"ref":"database.html","tf":0.0034129692832764505}},"o":{"docs":{},"r":{"docs":{},"c":{"docs":{},"r":{"docs":{"curd.html":{"ref":"curd.html","tf":0.0010741138560687433}}}},"i":{"docs":{},"n":{"docs":{},"i":{"docs":{},"t":{"docs":{"curd.html":{"ref":"curd.html","tf":0.0010741138560687433}}}}}}}}}}}},"r":{"docs":{},"i":{"docs":{},"e":{"docs":{},"n":{"docs":{},"d":{"docs":{},"l":{"docs":{},"i":{"docs":{"./":{"ref":"./","tf":0.016}}}}}}}}},"u":{"docs":{},"l":{"docs":{},"l":{"docs":{"./":{"ref":"./","tf":0.008}},"i":{"docs":{"development.html":{"ref":"development.html","tf":0.004807692307692308}}}}},"n":{"docs":{},"c":{"docs":{"./":{"ref":"./","tf":0.008},"advanced.html":{"ref":"advanced.html","tf":0.00303951367781155},"callbacks.html":{"ref":"callbacks.html","tf":0.02072538860103627},"changelog.html":{"ref":"changelog.html","tf":0.009569377990430622},"curd.html":{"ref":"curd.html","tf":0.004296455424274973},"database.html":{"ref":"database.html","tf":0.010238907849829351},"development.html":{"ref":"development.html","tf":0.009615384615384616},"models.html":{"ref":"models.html","tf":0.00202020202020202}},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{"advanced.html":{"ref":"advanced.html","tf":0.00303951367781155},"development.html":{"ref":"development.html","tf":0.004807692307692308}}}}}},"(":{"docs":{},"*":{"docs":{},"d":{"docs":{},"b":{"docs":{"curd.html":{"ref":"curd.html","tf":0.0005370569280343716}}}}}}}},"t":{"docs":{},"u":{"docs":{},"r":{"docs":{"callbacks.html":{"ref":"callbacks.html","tf":0.0051813471502590676}}}}}},"l":{"docs":{},"o":{"docs":{},"w":{"docs":{"advanced.html":{"ref":"advanced.html","tf":0.00303951367781155}}}}},"o":{"docs":{},"u":{"docs":{},"n":{"docs":{},"d":{"docs":{"advanced.html":{"ref":"advanced.html","tf":0.00303951367781155},"curd.html":{"ref":"curd.html","tf":0.0053705692803437165}}}}},"r":{"docs":{},"e":{"docs":{},"i":{"docs":{},"g":{"docs":{},"n":{"docs":{"associations.html":{"ref":"associations.html","tf":0.026143790849673203},"database.html":{"ref":"database.html","tf":0.010238907849829351},"models.html":{"ref":"models.html","tf":0.010101010101010102}},"k":{"docs":{},"e":{"docs":{},"y":{"docs":{"database.html":{"ref":"database.html","tf":0.0034129692832764505}}}}}}}}}}}},"g":{"docs":{},"i":{"docs":{},"t":{"docs":{},"h":{"docs":{},"u":{"docs":{},"b":{"docs":{},".":{"docs":{},"c":{"docs":{},"o":{"docs":{},"m":{"docs":{},"/":{"docs":{},"j":{"docs":{},"i":{"docs":{},"n":{"docs":{},"z":{"docs":{},"h":{"docs":{},"u":{"docs":{},"/":{"docs":{},"g":{"docs":{},"o":{"docs":{},"r":{"docs":{},"m":{"docs":{"./":{"ref":"./","tf":0.008}},"/":{"docs":{},"d":{"docs":{},"i":{"docs":{},"a":{"docs":{},"l":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},"s":{"docs":{},"/":{"docs":{},"p":{"docs":{},"o":{"docs":{},"s":{"docs":{},"t":{"docs":{},"g":{"docs":{},"r":{"docs":{"changelog.html":{"ref":"changelog.html","tf":0.004784688995215311}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"v":{"docs":{},"e":{"docs":{},"n":{"docs":{"curd.html":{"ref":"curd.html","tf":0.0010741138560687433},"database.html":{"ref":"database.html","tf":0.010238907849829351}}}}}},"o":{"docs":{"./":{"ref":"./","tf":0.008}},"l":{"docs":{},"a":{"docs":{},"n":{"docs":{},"g":{"docs":{"./":{"ref":"./","tf":0.008}}}}},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{"changelog.html":{"ref":"changelog.html","tf":0.014354066985645933}}}}}},"r":{"docs":{},"m":{"docs":{"./":{"ref":"./","tf":0.016},"advanced.html":{"ref":"advanced.html","tf":0.0060790273556231},"callbacks.html":{"ref":"callbacks.html","tf":0.010362694300518135},"changelog.html":{"ref":"changelog.html","tf":0.004784688995215311},"curd.html":{"ref":"curd.html","tf":0.0037593984962406013},"database.html":{"ref":"database.html","tf":0.006825938566552901},"development.html":{"ref":"development.html","tf":0.019230769230769232}},".":{"docs":{},"m":{"docs":{},"o":{"docs":{},"d":{"docs":{},"e":{"docs":{},"l":{"docs":{"./":{"ref":"./","tf":0.008},"associations.html":{"ref":"associations.html","tf":0.04357298474945534},"changelog.html":{"ref":"changelog.html","tf":0.009569377990430622},"models.html":{"ref":"models.html","tf":0.012121212121212121}}}}}}},"o":{"docs":{},"p":{"docs":{},"e":{"docs":{},"n":{"docs":{"changelog.html":{"ref":"changelog.html","tf":0.004784688995215311}},"(":{"docs":{},"&":{"docs":{},"q":{"docs":{},"u":{"docs":{},"o":{"docs":{},"t":{"docs":{},";":{"docs":{},"s":{"docs":{},"q":{"docs":{},"l":{"docs":{},"i":{"docs":{},"t":{"docs":{},"e":{"3":{"docs":{},"&":{"docs":{},"q":{"docs":{},"u":{"docs":{},"o":{"docs":{},"t":{"docs":{"database.html":{"ref":"database.html","tf":0.0034129692832764505}}}}}}}},"docs":{},"&":{"docs":{},"q":{"docs":{},"u":{"docs":{},"o":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.008}}}}}}}}}}}}},"m":{"docs":{},"y":{"docs":{},"s":{"docs":{},"q":{"docs":{},"l":{"docs":{},"&":{"docs":{},"q":{"docs":{},"u":{"docs":{},"o":{"docs":{},"t":{"docs":{"database.html":{"ref":"database.html","tf":0.0034129692832764505}}}}}}}}}}}},"p":{"docs":{},"o":{"docs":{},"s":{"docs":{},"t":{"docs":{},"g":{"docs":{},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"&":{"docs":{},"q":{"docs":{},"u":{"docs":{},"o":{"docs":{},"t":{"docs":{"database.html":{"ref":"database.html","tf":0.0034129692832764505},"development.html":{"ref":"development.html","tf":0.004807692307692308}}}}}}}}}}}}}}}}}}}}}}}}}},"d":{"docs":{},"b":{"docs":{"advanced.html":{"ref":"advanced.html","tf":0.0060790273556231},"callbacks.html":{"ref":"callbacks.html","tf":0.0051813471502590676},"changelog.html":{"ref":"changelog.html","tf":0.009569377990430622},"curd.html":{"ref":"curd.html","tf":0.0053705692803437165},"development.html":{"ref":"development.html","tf":0.009615384615384616}}}},"s":{"docs":{},"c":{"docs":{},"o":{"docs":{},"p":{"docs":{"callbacks.html":{"ref":"callbacks.html","tf":0.0051813471502590676},"changelog.html":{"ref":"changelog.html","tf":0.004784688995215311},"curd.html":{"ref":"curd.html","tf":0.0010741138560687433},"development.html":{"ref":"development.html","tf":0.009615384615384616}}}}}},"e":{"docs":{},"x":{"docs":{},"p":{"docs":{},"r":{"docs":{},"(":{"docs":{},"&":{"docs":{},"q":{"docs":{},"u":{"docs":{},"o":{"docs":{},"t":{"docs":{},";":{"docs":{},"n":{"docs":{},"u":{"docs":{},"l":{"docs":{},"l":{"docs":{},"&":{"docs":{},"q":{"docs":{},"u":{"docs":{},"o":{"docs":{},"t":{"docs":{"changelog.html":{"ref":"changelog.html","tf":0.004784688995215311}}}}}}}}}}},"p":{"docs":{},"r":{"docs":{},"i":{"docs":{},"c":{"docs":{"curd.html":{"ref":"curd.html","tf":0.0010741138560687433}}}}}},"q":{"docs":{},"u":{"docs":{},"a":{"docs":{},"n":{"docs":{},"t":{"docs":{"curd.html":{"ref":"curd.html","tf":0.0010741138560687433}}}}}}}}}}}}}}}}}}},"&":{"docs":{},"a":{"docs":{},"p":{"docs":{},"o":{"docs":{},"s":{"docs":{},";":{"docs":{"advanced.html":{"ref":"advanced.html","tf":0.00303951367781155}}}}}}}},":":{"docs":{},"&":{"docs":{},"q":{"docs":{},"u":{"docs":{},"o":{"docs":{},"t":{"docs":{"models.html":{"ref":"models.html","tf":0.00202020202020202}},";":{"docs":{},"p":{"docs":{},"r":{"docs":{},"i":{"docs":{},"m":{"docs":{},"a":{"docs":{},"r":{"docs":{},"y":{"docs":{},"_":{"docs":{},"k":{"docs":{},"e":{"docs":{},"y":{"docs":{},"&":{"docs":{},"q":{"docs":{},"u":{"docs":{},"o":{"docs":{},"t":{"docs":{"advanced.html":{"ref":"advanced.html","tf":0.0060790273556231},"models.html":{"ref":"models.html","tf":0.00404040404040404}}}}}}},":":{"docs":{},"t":{"docs":{},"r":{"docs":{},"u":{"docs":{},"e":{"docs":{},"&":{"docs":{},"q":{"docs":{},"u":{"docs":{},"o":{"docs":{},"t":{"docs":{"associations.html":{"ref":"associations.html","tf":0.004357298474945534}}}}}}}}}}}}}}}}}}}}}},"o":{"docs":{},"l":{"docs":{},"y":{"docs":{},"m":{"docs":{},"o":{"docs":{},"r":{"docs":{},"p":{"docs":{},"h":{"docs":{},"i":{"docs":{},"c":{"docs":{},":":{"docs":{},"o":{"docs":{},"w":{"docs":{},"n":{"docs":{},"e":{"docs":{},"r":{"docs":{},";":{"docs":{},"&":{"docs":{},"q":{"docs":{},"u":{"docs":{},"o":{"docs":{},"t":{"docs":{"associations.html":{"ref":"associations.html","tf":0.004357298474945534}}}}}}}}}}}}}}}}}}}}}}}}},"f":{"docs":{},"o":{"docs":{},"r":{"docs":{},"e":{"docs":{},"i":{"docs":{},"g":{"docs":{},"n":{"docs":{},"k":{"docs":{},"e":{"docs":{},"y":{"docs":{},":":{"docs":{},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"f":{"docs":{},"i":{"docs":{},"l":{"docs":{},"e":{"docs":{},"i":{"docs":{},"d":{"docs":{},";":{"docs":{},"a":{"docs":{},"s":{"docs":{},"s":{"docs":{},"o":{"docs":{},"c":{"docs":{},"i":{"docs":{},"a":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"f":{"docs":{},"o":{"docs":{},"r":{"docs":{},"e":{"docs":{},"i":{"docs":{},"g":{"docs":{},"n":{"docs":{},"k":{"docs":{},"e":{"docs":{},"y":{"docs":{},":":{"docs":{},"r":{"docs":{},"e":{"docs":{},"f":{"docs":{},"e":{"docs":{},"r":{"docs":{},"&":{"docs":{},"q":{"docs":{},"u":{"docs":{},"o":{"docs":{},"t":{"docs":{"associations.html":{"ref":"associations.html","tf":0.002178649237472767}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"r":{"docs":{},"e":{"docs":{},"f":{"docs":{},"e":{"docs":{},"r":{"docs":{},"&":{"docs":{},"q":{"docs":{},"u":{"docs":{},"o":{"docs":{},"t":{"docs":{"associations.html":{"ref":"associations.html","tf":0.002178649237472767}}}}}}}}}}}}}}}}}}},"u":{"docs":{},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},"i":{"docs":{},"d":{"docs":{},";":{"docs":{},"a":{"docs":{},"s":{"docs":{},"s":{"docs":{},"o":{"docs":{},"c":{"docs":{},"i":{"docs":{},"a":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"f":{"docs":{},"o":{"docs":{},"r":{"docs":{},"e":{"docs":{},"i":{"docs":{},"g":{"docs":{},"n":{"docs":{},"k":{"docs":{},"e":{"docs":{},"y":{"docs":{},":":{"docs":{},"r":{"docs":{},"e":{"docs":{},"f":{"docs":{},"e":{"docs":{},"r":{"docs":{},"&":{"docs":{},"q":{"docs":{},"u":{"docs":{},"o":{"docs":{},"t":{"docs":{"associations.html":{"ref":"associations.html","tf":0.004357298474945534}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"r":{"docs":{},"e":{"docs":{},"f":{"docs":{},"e":{"docs":{},"r":{"docs":{},"&":{"docs":{},"q":{"docs":{},"u":{"docs":{},"o":{"docs":{},"t":{"docs":{"associations.html":{"ref":"associations.html","tf":0.004357298474945534}}}}}}}}}}}}}}}}}}}}}}}}}}},"m":{"docs":{},"a":{"docs":{},"n":{"docs":{},"y":{"2":{"docs":{},"m":{"docs":{},"a":{"docs":{},"n":{"docs":{},"y":{"docs":{},":":{"docs":{},"p":{"docs":{},"e":{"docs":{},"r":{"docs":{},"s":{"docs":{},"o":{"docs":{},"n":{"docs":{},"a":{"docs":{},"c":{"docs":{},"c":{"docs":{},"o":{"docs":{},"u":{"docs":{},"n":{"docs":{},"t":{"docs":{},";":{"docs":{},"a":{"docs":{},"s":{"docs":{},"s":{"docs":{},"o":{"docs":{},"c":{"docs":{},"i":{"docs":{},"a":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"f":{"docs":{},"o":{"docs":{},"r":{"docs":{},"e":{"docs":{},"i":{"docs":{},"g":{"docs":{},"n":{"docs":{},"k":{"docs":{},"e":{"docs":{},"y":{"docs":{},":":{"docs":{},"i":{"docs":{},"d":{"docs":{},"a":{"docs":{},"c":{"docs":{},"c":{"docs":{},"o":{"docs":{},"u":{"docs":{},"n":{"docs":{},"t":{"docs":{},";":{"docs":{},"f":{"docs":{},"o":{"docs":{},"r":{"docs":{},"e":{"docs":{},"i":{"docs":{},"g":{"docs":{},"n":{"docs":{},"k":{"docs":{},"e":{"docs":{},"y":{"docs":{},":":{"docs":{},"i":{"docs":{},"d":{"docs":{},"p":{"docs":{},"e":{"docs":{},"r":{"docs":{},"s":{"docs":{},"o":{"docs":{},"n":{"docs":{},"&":{"docs":{},"q":{"docs":{},"u":{"docs":{},"o":{"docs":{},"t":{"docs":{"associations.html":{"ref":"associations.html","tf":0.002178649237472767}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"u":{"docs":{},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},"_":{"docs":{},"l":{"docs":{},"a":{"docs":{},"n":{"docs":{},"g":{"docs":{},"u":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"s":{"docs":{},";":{"docs":{},"&":{"docs":{},"q":{"docs":{},"u":{"docs":{},"o":{"docs":{},"t":{"docs":{"associations.html":{"ref":"associations.html","tf":0.002178649237472767},"models.html":{"ref":"models.html","tf":0.00202020202020202}}}}}}}}}}}}}}}}}}}}}}}}}}}},"docs":{}}}}},"c":{"docs":{},"o":{"docs":{},"l":{"docs":{},"u":{"docs":{},"m":{"docs":{},"n":{"docs":{},":":{"docs":{},"s":{"docs":{},"_":{"docs":{},"k":{"docs":{},"_":{"docs":{},"u":{"docs":{},"&":{"docs":{},"q":{"docs":{},"u":{"docs":{},"o":{"docs":{},"t":{"docs":{"changelog.html":{"ref":"changelog.html","tf":0.004784688995215311}}}}}}}}}}}},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"_":{"docs":{},"o":{"docs":{},"f":{"docs":{},"_":{"docs":{},"t":{"docs":{},"h":{"docs":{},"e":{"docs":{},"_":{"docs":{},"b":{"docs":{},"e":{"docs":{},"a":{"docs":{},"s":{"docs":{},"t":{"docs":{},"&":{"docs":{},"q":{"docs":{},"u":{"docs":{},"o":{"docs":{},"t":{"docs":{"models.html":{"ref":"models.html","tf":0.00202020202020202}}}}}}}}}}}}}}}}}}}}}}},"b":{"docs":{},"e":{"docs":{},"a":{"docs":{},"s":{"docs":{},"t":{"docs":{},"_":{"docs":{},"i":{"docs":{},"d":{"docs":{},"&":{"docs":{},"q":{"docs":{},"u":{"docs":{},"o":{"docs":{},"t":{"docs":{"models.html":{"ref":"models.html","tf":0.00202020202020202}}}}}}}}}}}}}}},"d":{"docs":{},"a":{"docs":{},"y":{"docs":{},"_":{"docs":{},"o":{"docs":{},"f":{"docs":{},"_":{"docs":{},"t":{"docs":{},"h":{"docs":{},"e":{"docs":{},"_":{"docs":{},"b":{"docs":{},"e":{"docs":{},"a":{"docs":{},"s":{"docs":{},"t":{"docs":{},"&":{"docs":{},"q":{"docs":{},"u":{"docs":{},"o":{"docs":{},"t":{"docs":{"models.html":{"ref":"models.html","tf":0.00202020202020202}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"d":{"docs":{},"e":{"docs":{},"f":{"docs":{},"a":{"docs":{},"u":{"docs":{},"l":{"docs":{},"t":{"docs":{},":":{"docs":{},"&":{"docs":{},"a":{"docs":{},"p":{"docs":{},"o":{"docs":{},"s":{"docs":{},";":{"docs":{},"g":{"docs":{},"a":{"docs":{},"l":{"docs":{},"e":{"docs":{},"o":{"docs":{},"n":{"docs":{},"e":{"docs":{},"&":{"docs":{},"a":{"docs":{},"p":{"docs":{},"o":{"docs":{},"s":{"docs":{},";":{"docs":{},"&":{"docs":{},"q":{"docs":{},"u":{"docs":{},"o":{"docs":{},"t":{"docs":{"curd.html":{"ref":"curd.html","tf":0.0005370569280343716}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"a":{"docs":{},"u":{"docs":{},"t":{"docs":{},"o":{"docs":{},"_":{"docs":{},"i":{"docs":{},"n":{"docs":{},"c":{"docs":{},"r":{"docs":{},"e":{"docs":{},"m":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"&":{"docs":{},"q":{"docs":{},"u":{"docs":{},"o":{"docs":{},"t":{"docs":{"models.html":{"ref":"models.html","tf":0.00202020202020202}}}}}}}}}}}}}}}}}}}}},"i":{"docs":{},"n":{"docs":{},"d":{"docs":{},"e":{"docs":{},"x":{"docs":{},"&":{"docs":{},"q":{"docs":{},"u":{"docs":{},"o":{"docs":{},"t":{"docs":{"models.html":{"ref":"models.html","tf":0.00202020202020202}}}}}}},":":{"docs":{},"i":{"docs":{},"d":{"docs":{},"x":{"docs":{},"_":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},"_":{"docs":{},"c":{"docs":{},"o":{"docs":{},"d":{"docs":{},"e":{"docs":{},"&":{"docs":{},"q":{"docs":{},"u":{"docs":{},"o":{"docs":{},"t":{"docs":{"models.html":{"ref":"models.html","tf":0.00404040404040404}}}}}}}}}}}}}}}}}}}}}}}}}},"n":{"docs":{},"o":{"docs":{},"t":{"docs":{"models.html":{"ref":"models.html","tf":0.00404040404040404}}}}},"s":{"docs":{},"i":{"docs":{},"z":{"docs":{},"e":{"docs":{},":":{"2":{"5":{"5":{"docs":{},"&":{"docs":{},"q":{"docs":{},"u":{"docs":{},"o":{"docs":{},"t":{"docs":{"models.html":{"ref":"models.html","tf":0.00202020202020202}}}}}}}},"docs":{}},"docs":{}},"docs":{}}}}}},"t":{"docs":{},"y":{"docs":{},"p":{"docs":{},"e":{"docs":{},":":{"docs":{},"v":{"docs":{},"a":{"docs":{},"r":{"docs":{},"c":{"docs":{},"h":{"docs":{},"a":{"docs":{},"r":{"docs":{},"(":{"1":{"0":{"0":{"docs":{},")":{"docs":{},";":{"docs":{},"u":{"docs":{},"n":{"docs":{},"i":{"docs":{},"q":{"docs":{},"u":{"docs":{},"e":{"docs":{},"&":{"docs":{},"q":{"docs":{},"u":{"docs":{},"o":{"docs":{},"t":{"docs":{"models.html":{"ref":"models.html","tf":0.00202020202020202}}}}}}},"_":{"docs":{},"i":{"docs":{},"n":{"docs":{},"d":{"docs":{},"e":{"docs":{},"x":{"docs":{},"&":{"docs":{},"q":{"docs":{},"u":{"docs":{},"o":{"docs":{},"t":{"docs":{"models.html":{"ref":"models.html","tf":0.00202020202020202}}}}}}}}}}}}}}}}}}}}}},"docs":{}},"docs":{}},"docs":{}}}}}}}}}}}}}}}}}}}},"c":{"docs":{},"r":{"docs":{},"e":{"docs":{},"a":{"docs":{},"t":{"docs":{"development.html":{"ref":"development.html","tf":0.009615384615384616}}}}}}}}}},"o":{"docs":{},"d":{"docs":{"changelog.html":{"ref":"changelog.html","tf":0.004784688995215311}}}}},"e":{"docs":{},"n":{"docs":{},"e":{"docs":{},"r":{"docs":{"advanced.html":{"ref":"advanced.html","tf":0.015197568389057751}}}}},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"r":{"docs":{},"o":{"docs":{},"r":{"docs":{"advanced.html":{"ref":"advanced.html","tf":0.00303951367781155}}}}}}}}},"r":{"docs":{},"e":{"docs":{},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{"callbacks.html":{"ref":"callbacks.html","tf":0.010362694300518135},"curd.html":{"ref":"curd.html","tf":0.0010741138560687433}}}}}}},"o":{"docs":{},"u":{"docs":{},"p":{"docs":{"curd.html":{"ref":"curd.html","tf":0.0010741138560687433}}}},"m":{"docs":{"development.html":{"ref":"development.html","tf":0.004807692307692308}}}}},"t":{"docs":{"callbacks.html":{"ref":"callbacks.html","tf":0.0051813471502590676},"curd.html":{"ref":"curd.html","tf":0.015037593984962405}}},"l":{"docs":{},"o":{"docs":{},"b":{"docs":{},"a":{"docs":{},"l":{"docs":{"models.html":{"ref":"models.html","tf":0.00202020202020202}}}}}}}},"h":{"docs":{},"t":{"docs":{},"t":{"docs":{},"p":{"docs":{"changelog.html":{"ref":"changelog.html","tf":0.009569377990430622}},":":{"docs":{},"/":{"docs":{},"/":{"docs":{},"g":{"docs":{},"i":{"docs":{},"t":{"docs":{},"h":{"docs":{},"u":{"docs":{},"b":{"docs":{},".":{"docs":{},"c":{"docs":{},"o":{"docs":{},"m":{"docs":{},"/":{"docs":{},"j":{"docs":{},"i":{"docs":{},"n":{"docs":{},"z":{"docs":{},"h":{"docs":{},"u":{"docs":{"./":{"ref":"./","tf":0.008}}}}}}}}}}}}}}}}}}},"t":{"docs":{},"w":{"docs":{},"i":{"docs":{},"t":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},".":{"docs":{},"c":{"docs":{},"o":{"docs":{},"m":{"docs":{},"/":{"docs":{},"z":{"docs":{},"h":{"docs":{},"a":{"docs":{},"n":{"docs":{},"g":{"docs":{},"j":{"docs":{},"i":{"docs":{},"n":{"docs":{},"z":{"docs":{},"h":{"docs":{},"u":{"docs":{"./":{"ref":"./","tf":0.008}}}}}}}}}}}}}}}}}}}}}}}}}}}},"s":{"docs":{},":":{"docs":{},"/":{"docs":{},"/":{"docs":{},"g":{"docs":{},"i":{"docs":{},"t":{"docs":{},"h":{"docs":{},"u":{"docs":{},"b":{"docs":{},".":{"docs":{},"c":{"docs":{},"o":{"docs":{},"m":{"docs":{},"/":{"docs":{},"j":{"docs":{},"i":{"docs":{},"n":{"docs":{},"z":{"docs":{},"h":{"docs":{},"u":{"docs":{},"/":{"docs":{},"g":{"docs":{},"o":{"docs":{},"r":{"docs":{},"m":{"docs":{},"/":{"docs":{},"g":{"docs":{},"r":{"docs":{},"a":{"docs":{},"p":{"docs":{},"h":{"docs":{},"s":{"docs":{},"/":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"r":{"docs":{},"i":{"docs":{},"b":{"docs":{},"u":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{"./":{"ref":"./","tf":0.008}}}}}}}}}}}}}}}}}}}},"b":{"docs":{},"l":{"docs":{},"o":{"docs":{},"b":{"docs":{},"/":{"docs":{},"m":{"docs":{},"a":{"docs":{},"s":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"/":{"docs":{},"l":{"docs":{},"o":{"docs":{},"g":{"docs":{},"g":{"docs":{},"e":{"docs":{},"r":{"docs":{},".":{"docs":{},"g":{"docs":{},"o":{"docs":{"advanced.html":{"ref":"advanced.html","tf":0.00303951367781155}}}}}}}}}}},"d":{"docs":{},"i":{"docs":{},"a":{"docs":{},"l":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},".":{"docs":{},"g":{"docs":{},"o":{"docs":{"database.html":{"ref":"database.html","tf":0.0034129692832764505}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"o":{"docs":{},"d":{"docs":{},"o":{"docs":{},"c":{"docs":{},".":{"docs":{},"o":{"docs":{},"r":{"docs":{},"g":{"docs":{},"/":{"docs":{},"g":{"docs":{},"i":{"docs":{},"t":{"docs":{},"h":{"docs":{},"u":{"docs":{},"b":{"docs":{},".":{"docs":{},"c":{"docs":{},"o":{"docs":{},"m":{"docs":{},"/":{"docs":{},"j":{"docs":{},"i":{"docs":{},"n":{"docs":{},"z":{"docs":{},"h":{"docs":{},"u":{"docs":{},"/":{"docs":{},"g":{"docs":{},"o":{"docs":{},"r":{"docs":{},"m":{"docs":{"development.html":{"ref":"development.html","tf":0.004807692307692308}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"&":{"docs":{},"a":{"docs":{},"p":{"docs":{},"o":{"docs":{},"s":{"docs":{},";":{"docs":{"changelog.html":{"ref":"changelog.html","tf":0.004784688995215311}}}}}}}}}}},"a":{"docs":{},"n":{"docs":{},"d":{"docs":{},"l":{"docs":{"advanced.html":{"ref":"advanced.html","tf":0.015197568389057751},"associations.html":{"ref":"associations.html","tf":0.002178649237472767},"changelog.html":{"ref":"changelog.html","tf":0.004784688995215311},"database.html":{"ref":"database.html","tf":0.0034129692832764505}}}}},"p":{"docs":{},"p":{"docs":{},"e":{"docs":{},"n":{"docs":{"advanced.html":{"ref":"advanced.html","tf":0.00911854103343465}}}}}},"s":{"docs":{},"_":{"docs":{},"m":{"docs":{},"a":{"docs":{},"n":{"docs":{},"i":{"docs":{"associations.html":{"ref":"associations.html","tf":0.002178649237472767}}}}}},"o":{"docs":{},"n":{"docs":{"associations.html":{"ref":"associations.html","tf":0.002178649237472767}}}}}},"v":{"docs":{},"e":{"docs":{"changelog.html":{"ref":"changelog.html","tf":0.004784688995215311},"curd.html":{"ref":"curd.html","tf":0.0010741138560687433},"models.html":{"ref":"models.html","tf":0.006060606060606061}},"n":{"docs":{},"&":{"docs":{},"a":{"docs":{},"p":{"docs":{},"o":{"docs":{},"s":{"docs":{},";":{"docs":{},"t":{"docs":{"curd.html":{"ref":"curd.html","tf":0.0010741138560687433}}}}}}}}}}}}},"e":{"docs":{},"l":{"docs":{},"p":{"docs":{},"e":{"docs":{},"r":{"docs":{"associations.html":{"ref":"associations.html","tf":0.002178649237472767}}}}}}},"_":{"docs":{},"t":{"docs":{},"_":{"docs":{},"t":{"docs":{},"_":{"docs":{},"p":{"docs":{"changelog.html":{"ref":"changelog.html","tf":0.004784688995215311}}}}}}}},"s":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{},"e":{"docs":{"changelog.html":{"ref":"changelog.html","tf":0.004784688995215311}}}}}}}},"i":{"docs":{},"d":{"docs":{"./":{"ref":"./","tf":0.008},"advanced.html":{"ref":"advanced.html","tf":0.0060790273556231},"associations.html":{"ref":"associations.html","tf":0.008714596949891068},"callbacks.html":{"ref":"callbacks.html","tf":0.010362694300518135},"curd.html":{"ref":"curd.html","tf":0.007518796992481203},"models.html":{"ref":"models.html","tf":0.028282828282828285}},"a":{"docs":{},"c":{"docs":{},"c":{"docs":{},"o":{"docs":{},"u":{"docs":{},"n":{"docs":{},"t":{"docs":{"associations.html":{"ref":"associations.html","tf":0.002178649237472767}}}}}}}}},"p":{"docs":{},"e":{"docs":{},"r":{"docs":{},"s":{"docs":{},"o":{"docs":{},"n":{"docs":{"associations.html":{"ref":"associations.html","tf":0.002178649237472767}}}}}}}},"=":{"1":{"0":{"docs":{"curd.html":{"ref":"curd.html","tf":0.001611170784103115}}},"1":{"1":{"docs":{"curd.html":{"ref":"curd.html","tf":0.004296455424274973}}},"docs":{}},"docs":{}},"docs":{}},"x":{"docs":{},"_":{"docs":{},"u":{"docs":{},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},"_":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{"database.html":{"ref":"database.html","tf":0.0034129692832764505}},"e":{"docs":{},"_":{"docs":{},"a":{"docs":{},"g":{"docs":{"database.html":{"ref":"database.html","tf":0.0034129692832764505}}}}}}}}}}}}}}}}},"m":{"docs":{},"p":{"docs":{},"o":{"docs":{},"r":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.008},"changelog.html":{"ref":"changelog.html","tf":0.014354066985645933},"database.html":{"ref":"database.html","tf":0.03754266211604096}}}}}}},"n":{"docs":{},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"l":{"docs":{"./":{"ref":"./","tf":0.008}}},"n":{"docs":{},"c":{"docs":{"development.html":{"ref":"development.html","tf":0.004807692307692308}}}}},"e":{"docs":{},"a":{"docs":{},"d":{"docs":{"changelog.html":{"ref":"changelog.html","tf":0.004784688995215311}}}}}},"e":{"docs":{},"r":{"docs":{},"t":{"docs":{"callbacks.html":{"ref":"callbacks.html","tf":0.0051813471502590676},"curd.html":{"ref":"curd.html","tf":0.00966702470461869}}}}}},"t":{"6":{"4":{"docs":{"curd.html":{"ref":"curd.html","tf":0.0021482277121374865},"models.html":{"ref":"models.html","tf":0.00808080808080808}},"{":{"1":{"1":{"docs":{},",":{"2":{"2":{"docs":{},",":{"3":{"3":{"docs":{"advanced.html":{"ref":"advanced.html","tf":0.00303951367781155}}},"docs":{}},"docs":{}}},"docs":{}},"docs":{}}},"docs":{}},"docs":{}}},"docs":{}},"docs":{"advanced.html":{"ref":"advanced.html","tf":0.00303951367781155},"associations.html":{"ref":"associations.html","tf":0.015250544662309368},"curd.html":{"ref":"curd.html","tf":0.0005370569280343716},"models.html":{"ref":"models.html","tf":0.01616161616161616}},"e":{"docs":{},"r":{"docs":{},"f":{"docs":{},"a":{"docs":{},"c":{"docs":{"advanced.html":{"ref":"advanced.html","tf":0.00911854103343465}},"e":{"docs":{},"{":{"docs":{},"}":{"docs":{},"{":{"docs":{},"&":{"docs":{},"a":{"docs":{},"m":{"docs":{},"p":{"docs":{},";":{"docs":{},"u":{"docs":{},"s":{"docs":{"changelog.html":{"ref":"changelog.html","tf":0.004784688995215311}}}}}}}}}}}}}}}}}},"{":{"1":{"0":{"docs":{"curd.html":{"ref":"curd.html","tf":0.0005370569280343716}}},"docs":{}},"docs":{}}},"n":{"docs":{},"e":{"docs":{},"r":{"docs":{"associations.html":{"ref":"associations.html","tf":0.002178649237472767}}}}},"c":{"docs":{},"l":{"docs":{},"u":{"docs":{},"d":{"docs":{"changelog.html":{"ref":"changelog.html","tf":0.004784688995215311},"curd.html":{"ref":"curd.html","tf":0.0005370569280343716},"database.html":{"ref":"database.html","tf":0.0034129692832764505},"models.html":{"ref":"models.html","tf":0.00202020202020202}}}}}},"i":{"docs":{},"t":{"docs":{"curd.html":{"ref":"curd.html","tf":0.0010741138560687433}},"i":{"docs":{"changelog.html":{"ref":"changelog.html","tf":0.019138755980861243}}}}},"j":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{"curd.html":{"ref":"curd.html","tf":0.0005370569280343716}}}}}},"l":{"docs":{},"i":{"docs":{},"n":{"docs":{"curd.html":{"ref":"curd.html","tf":0.0010741138560687433}}}}},"d":{"docs":{},"e":{"docs":{},"x":{"docs":{"database.html":{"ref":"database.html","tf":0.027303754266211604},"models.html":{"ref":"models.html","tf":0.010101010101010102}}}}}},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{"advanced.html":{"ref":"advanced.html","tf":0.0060790273556231}}}},"&":{"docs":{},"a":{"docs":{},"p":{"docs":{},"o":{"docs":{},"s":{"docs":{},";":{"docs":{"changelog.html":{"ref":"changelog.html","tf":0.004784688995215311},"curd.html":{"ref":"curd.html","tf":0.0005370569280343716}}}}}}}},"s":{"docs":{},"e":{"docs":{},"l":{"docs":{},"f":{"docs":{"development.html":{"ref":"development.html","tf":0.004807692307692308}}}}}}},"g":{"docs":{},"n":{"docs":{},"o":{"docs":{},"r":{"docs":{"curd.html":{"ref":"curd.html","tf":0.001611170784103115},"models.html":{"ref":"models.html","tf":0.00202020202020202}},"e":{"docs":{},"m":{"docs":{"models.html":{"ref":"models.html","tf":0.00202020202020202}}}}}}}}},"j":{"docs":{},"i":{"docs":{},"n":{"docs":{},"z":{"docs":{},"h":{"docs":{},"u":{"docs":{"./":{"ref":"./","tf":0.008}},"&":{"docs":{},"a":{"docs":{},"p":{"docs":{},"o":{"docs":{"curd.html":{"ref":"curd.html","tf":0.0010741138560687433}}}}}}}}}}},"o":{"docs":{},"i":{"docs":{},"n":{"docs":{"associations.html":{"ref":"associations.html","tf":0.004357298474945534},"curd.html":{"ref":"curd.html","tf":0.00322234156820623},"models.html":{"ref":"models.html","tf":0.00202020202020202}}}}}},"k":{"docs":{},"e":{"docs":{},"y":{"docs":{"./":{"ref":"./","tf":0.008},"advanced.html":{"ref":"advanced.html","tf":0.0121580547112462},"associations.html":{"ref":"associations.html","tf":0.04139433551198257},"curd.html":{"ref":"curd.html","tf":0.006981740064446832},"database.html":{"ref":"database.html","tf":0.010238907849829351},"models.html":{"ref":"models.html","tf":0.01616161616161616}}},"e":{"docs":{},"p":{"docs":{"database.html":{"ref":"database.html","tf":0.0034129692832764505}}}}}},"l":{"1":{"2":{"1":{"2":{"docs":{"./":{"ref":"./","tf":0.008}}},"docs":{}},"docs":{}},"docs":{}},"docs":{},"i":{"docs":{},"b":{"docs":{},"r":{"docs":{},"a":{"docs":{},"r":{"docs":{},"i":{"docs":{"./":{"ref":"./","tf":0.008}}}}}}},"c":{"docs":{},"e":{"docs":{},"n":{"docs":{},"s":{"docs":{"./":{"ref":"./","tf":0.016}}}}}},"m":{"docs":{},"i":{"docs":{},"t":{"docs":{"curd.html":{"ref":"curd.html","tf":0.005907626208378088}}}}}},"o":{"docs":{},"a":{"docs":{},"d":{"docs":{"./":{"ref":"./","tf":0.008},"callbacks.html":{"ref":"callbacks.html","tf":0.010362694300518135},"curd.html":{"ref":"curd.html","tf":0.0005370569280343716}}}},"g":{"docs":{"advanced.html":{"ref":"advanced.html","tf":0.00911854103343465},"changelog.html":{"ref":"changelog.html","tf":0.004784688995215311}},"g":{"docs":{},"e":{"docs":{},"r":{"docs":{"./":{"ref":"./","tf":0.008},"advanced.html":{"ref":"advanced.html","tf":0.0243161094224924}}}}},"i":{"docs":{},"c":{"docs":{"changelog.html":{"ref":"changelog.html","tf":0.009569377990430622}}}}},"o":{"docs":{},"k":{"docs":{"changelog.html":{"ref":"changelog.html","tf":0.004784688995215311}}}}},"a":{"docs":{},"n":{"docs":{},"g":{"docs":{},"u":{"docs":{},"a":{"docs":{},"g":{"docs":{"associations.html":{"ref":"associations.html","tf":0.010893246187363835},"curd.html":{"ref":"curd.html","tf":0.0005370569280343716},"models.html":{"ref":"models.html","tf":0.006060606060606061}},"e":{"docs":{},"c":{"docs":{},"o":{"docs":{},"d":{"docs":{"advanced.html":{"ref":"advanced.html","tf":0.00303951367781155}}}}},"e":{"docs":{},"n":{"docs":{"associations.html":{"ref":"associations.html","tf":0.010893246187363835}}}},"{":{"docs":{},"{":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{"curd.html":{"ref":"curd.html","tf":0.0005370569280343716}}}}}}}}}}}}},"s":{"docs":{},"t":{"docs":{"curd.html":{"ref":"curd.html","tf":0.0005370569280343716}},"w":{"docs":{},"e":{"docs":{},"e":{"docs":{},"k":{"docs":{"curd.html":{"ref":"curd.html","tf":0.0005370569280343716}},")":{"docs":{},".":{"docs":{},"f":{"docs":{},"i":{"docs":{},"n":{"docs":{},"d":{"docs":{},"(":{"docs":{},"&":{"docs":{},"a":{"docs":{},"m":{"docs":{},"p":{"docs":{},";":{"docs":{},"u":{"docs":{},"s":{"docs":{"curd.html":{"ref":"curd.html","tf":0.0005370569280343716}}}}}}}}}}}}}}}}}}}}}}},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{"changelog.html":{"ref":"changelog.html","tf":0.004784688995215311}}}}},"t":{"docs":{"changelog.html":{"ref":"changelog.html","tf":0.009569377990430622}},";":{"docs":{},"&":{"docs":{},"g":{"docs":{},"t":{"docs":{"curd.html":{"ref":"curd.html","tf":0.004833512352309345}}}}}}}},"m":{"docs":{},"a":{"docs":{},"i":{"docs":{},"n":{"docs":{"./":{"ref":"./","tf":0.016},"changelog.html":{"ref":"changelog.html","tf":0.004784688995215311},"database.html":{"ref":"database.html","tf":0.010238907849829351}}}},"n":{"docs":{},"i":{"docs":{"./":{"ref":"./","tf":0.024},"associations.html":{"ref":"associations.html","tf":0.023965141612200435},"curd.html":{"ref":"curd.html","tf":0.0005370569280343716},"models.html":{"ref":"models.html","tf":0.00808080808080808}}},"y":{"2":{"docs":{},"m":{"docs":{},"a":{"docs":{},"n":{"docs":{},"i":{"docs":{"associations.html":{"ref":"associations.html","tf":0.002178649237472767}}}}}}},"docs":{}}},"t":{"docs":{},"c":{"docs":{},"h":{"docs":{"associations.html":{"ref":"associations.html","tf":0.002178649237472767},"curd.html":{"ref":"curd.html","tf":0.0026852846401718583}}}}},"d":{"docs":{},"e":{"docs":{"callbacks.html":{"ref":"callbacks.html","tf":0.0051813471502590676}}}},"k":{"docs":{},"e":{"docs":{"changelog.html":{"ref":"changelog.html","tf":0.004784688995215311}}}},"p":{"docs":{"curd.html":{"ref":"curd.html","tf":0.004833512352309345}},"[":{"docs":{},"s":{"docs":{},"t":{"docs":{},"r":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},"]":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"f":{"docs":{},"a":{"docs":{},"c":{"docs":{"curd.html":{"ref":"curd.html","tf":0.0005370569280343716}},"e":{"docs":{},"{":{"docs":{},"}":{"docs":{},"{":{"docs":{},"&":{"docs":{},"q":{"docs":{},"u":{"docs":{},"o":{"docs":{},"t":{"docs":{},";":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"&":{"docs":{},"q":{"docs":{},"u":{"docs":{},"o":{"docs":{},"t":{"docs":{"curd.html":{"ref":"curd.html","tf":0.0005370569280343716}}}}}}}}}},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},"&":{"docs":{},"q":{"docs":{},"u":{"docs":{},"o":{"docs":{},"t":{"docs":{"curd.html":{"ref":"curd.html","tf":0.0005370569280343716}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"i":{"docs":{},"g":{"docs":{},"r":{"docs":{},"a":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.008},"changelog.html":{"ref":"changelog.html","tf":0.004784688995215311},"database.html":{"ref":"database.html","tf":0.017064846416382253}}}}}},"t":{"docs":{"./":{"ref":"./","tf":0.008}}},"s":{"docs":{},"s":{"docs":{"database.html":{"ref":"database.html","tf":0.006825938566552901}}}}},"o":{"docs":{},"r":{"docs":{},"e":{"docs":{"advanced.html":{"ref":"advanced.html","tf":0.00303951367781155},"curd.html":{"ref":"curd.html","tf":0.0010741138560687433},"database.html":{"ref":"database.html","tf":0.0034129692832764505}}}},"d":{"docs":{},"e":{"docs":{"associations.html":{"ref":"associations.html","tf":0.008714596949891068}},"l":{"docs":{"callbacks.html":{"ref":"callbacks.html","tf":0.0051813471502590676},"changelog.html":{"ref":"changelog.html","tf":0.014354066985645933},"curd.html":{"ref":"curd.html","tf":0.0021482277121374865},"database.html":{"ref":"database.html","tf":0.017064846416382253},"models.html":{"ref":"models.html","tf":0.012121212121212121}},"&":{"docs":{},"a":{"docs":{},"p":{"docs":{},"o":{"docs":{},"s":{"docs":{},";":{"docs":{"changelog.html":{"ref":"changelog.html","tf":0.004784688995215311},"database.html":{"ref":"database.html","tf":0.0034129692832764505},"models.html":{"ref":"models.html","tf":0.00202020202020202}}}}}}}}}},"i":{"docs":{},"f":{"docs":{},"i":{"docs":{"database.html":{"ref":"database.html","tf":0.0034129692832764505}}},"y":{"docs":{},"c":{"docs":{},"o":{"docs":{},"l":{"docs":{},"u":{"docs":{},"m":{"docs":{},"n":{"docs":{"database.html":{"ref":"database.html","tf":0.006825938566552901}}}}}}}}}}}},"v":{"docs":{},"e":{"docs":{"changelog.html":{"ref":"changelog.html","tf":0.009569377990430622}}}}},"u":{"docs":{},"l":{"docs":{},"t":{"docs":{},"i":{"docs":{},"p":{"docs":{},"l":{"docs":{"advanced.html":{"ref":"advanced.html","tf":0.00303951367781155},"curd.html":{"ref":"curd.html","tf":0.00322234156820623},"database.html":{"ref":"database.html","tf":0.0034129692832764505}}}}}}}},"e":{"docs":{},"a":{"docs":{},"n":{"docs":{"associations.html":{"ref":"associations.html","tf":0.002178649237472767}}}},"t":{"docs":{},"h":{"docs":{},"o":{"docs":{},"d":{"docs":{"associations.html":{"ref":"associations.html","tf":0.002178649237472767},"callbacks.html":{"ref":"callbacks.html","tf":0.0051813471502590676},"curd.html":{"ref":"curd.html","tf":0.0005370569280343716}}}}}}},"s":{"docs":{},"s":{"docs":{},"q":{"docs":{},"l":{"docs":{"changelog.html":{"ref":"changelog.html","tf":0.004784688995215311}}}}}},"d":{"docs":{},"o":{"docs":{},"e":{"docs":{},"l":{"docs":{},"&":{"docs":{},"a":{"docs":{},"p":{"docs":{},"o":{"docs":{},"s":{"docs":{},";":{"docs":{"curd.html":{"ref":"curd.html","tf":0.0005370569280343716}}}}}}}}}}}},"y":{"docs":{},"s":{"docs":{},"q":{"docs":{},"l":{"docs":{"database.html":{"ref":"database.html","tf":0.010238907849829351}}}}}}},"n":{"docs":{},"i":{"docs":{},"l":{"docs":{"./":{"ref":"./","tf":0.008},"advanced.html":{"ref":"advanced.html","tf":0.0121580547112462},"changelog.html":{"ref":"changelog.html","tf":0.004784688995215311},"curd.html":{"ref":"curd.html","tf":0.0010741138560687433}}}},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{"advanced.html":{"ref":"advanced.html","tf":0.015197568389057751},"associations.html":{"ref":"associations.html","tf":0.034858387799564274},"changelog.html":{"ref":"changelog.html","tf":0.028708133971291867},"curd.html":{"ref":"curd.html","tf":0.02953813104189044},"database.html":{"ref":"database.html","tf":0.013651877133105802},"development.html":{"ref":"development.html","tf":0.004807692307692308},"models.html":{"ref":"models.html","tf":0.06262626262626263}},"&":{"docs":{},"q":{"docs":{},"u":{"docs":{},"o":{"docs":{},"t":{"docs":{},";":{"docs":{},")":{"docs":{},".":{"docs":{},"f":{"docs":{},"i":{"docs":{},"n":{"docs":{},"d":{"docs":{},"(":{"docs":{},"&":{"docs":{},"a":{"docs":{},"m":{"docs":{},"p":{"docs":{},";":{"docs":{},"u":{"docs":{},"s":{"docs":{"curd.html":{"ref":"curd.html","tf":0.0005370569280343716}}}}}}}}}}}}}}}}}}}}},"a":{"docs":{},"p":{"docs":{},"o":{"docs":{},"s":{"docs":{},";":{"docs":{"models.html":{"ref":"models.html","tf":0.00202020202020202}}}}}}}},",":{"docs":{},"b":{"docs":{},"i":{"docs":{},"l":{"docs":{},"l":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},"_":{"docs":{},"a":{"docs":{},"d":{"docs":{},"d":{"docs":{},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"_":{"docs":{},"i":{"docs":{},"d":{"docs":{},",":{"docs":{},"s":{"docs":{},"h":{"docs":{},"i":{"docs":{},"p":{"docs":{},"p":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},"_":{"docs":{},"a":{"docs":{},"d":{"docs":{},"d":{"docs":{},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"_":{"docs":{},"i":{"docs":{},"d":{"docs":{"curd.html":{"ref":"curd.html","tf":0.0005370569280343716}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"=":{"docs":{},"&":{"docs":{},"a":{"docs":{},"p":{"docs":{},"o":{"docs":{},"s":{"docs":{},";":{"docs":{},"h":{"docs":{},"e":{"docs":{},"l":{"docs":{},"l":{"docs":{},"o":{"docs":{},"&":{"docs":{},"a":{"docs":{},"p":{"docs":{},"o":{"docs":{"curd.html":{"ref":"curd.html","tf":0.0053705692803437165}}}}}}}}}}},"j":{"docs":{},"i":{"docs":{},"n":{"docs":{},"z":{"docs":{},"h":{"docs":{},"u":{"docs":{"curd.html":{"ref":"curd.html","tf":0.0005370569280343716}}}}}}}}}}}}}}}}}},"o":{"docs":{},"t":{"docs":{},"e":{"docs":{"advanced.html":{"ref":"advanced.html","tf":0.00303951367781155},"associations.html":{"ref":"associations.html","tf":0.002178649237472767},"curd.html":{"ref":"curd.html","tf":0.0010741138560687433},"database.html":{"ref":"database.html","tf":0.0034129692832764505}}},"h":{"docs":{"changelog.html":{"ref":"changelog.html","tf":0.004784688995215311},"curd.html":{"ref":"curd.html","tf":0.0005370569280343716}}},"(":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{"curd.html":{"ref":"curd.html","tf":0.0005370569280343716}}}}}}},"w":{"docs":{},".":{"docs":{},"m":{"docs":{},"u":{"docs":{},"s":{"docs":{},"t":{"docs":{},"p":{"docs":{},"a":{"docs":{},"r":{"docs":{},"s":{"docs":{},"e":{"docs":{},"(":{"docs":{},"&":{"docs":{},"q":{"docs":{},"u":{"docs":{},"o":{"docs":{},"t":{"docs":{},";":{"0":{"0":{"0":{"1":{"docs":{"changelog.html":{"ref":"changelog.html","tf":0.004784688995215311}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}}}}}}}}}}}}}}}}}},"f":{"docs":{},"u":{"docs":{},"n":{"docs":{},"c":{"docs":{"development.html":{"ref":"development.html","tf":0.004807692307692308}}}}}}},"n":{"docs":{"curd.html":{"ref":"curd.html","tf":0.0010741138560687433}},"e":{"docs":{"curd.html":{"ref":"curd.html","tf":0.0005370569280343716}}}}},"e":{"docs":{},"e":{"docs":{},"d":{"docs":{"associations.html":{"ref":"associations.html","tf":0.002178649237472767},"callbacks.html":{"ref":"callbacks.html","tf":0.010362694300518135},"changelog.html":{"ref":"changelog.html","tf":0.009569377990430622},"curd.html":{"ref":"curd.html","tf":0.0005370569280343716},"database.html":{"ref":"database.html","tf":0.006825938566552901},"models.html":{"ref":"models.html","tf":0.00202020202020202}}}},"w":{"docs":{"associations.html":{"ref":"associations.html","tf":0.004357298474945534},"changelog.html":{"ref":"changelog.html","tf":0.009569377990430622},"curd.html":{"ref":"curd.html","tf":0.0010741138560687433},"development.html":{"ref":"development.html","tf":0.038461538461538464}},"c":{"docs":{},"r":{"docs":{},"e":{"docs":{},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},"f":{"docs":{},"u":{"docs":{},"n":{"docs":{},"c":{"docs":{},"t":{"docs":{"development.html":{"ref":"development.html","tf":0.009615384615384616}}}}}}}}}}}}}},"c":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"a":{"docs":{},"r":{"docs":{},"i":{"docs":{"changelog.html":{"ref":"changelog.html","tf":0.004784688995215311}}}}}}}}}},"u":{"docs":{},"m":{"docs":{"models.html":{"ref":"models.html","tf":0.00202020202020202}},"b":{"docs":{},"e":{"docs":{},"r":{"docs":{"associations.html":{"ref":"associations.html","tf":0.002178649237472767},"curd.html":{"ref":"curd.html","tf":0.0010741138560687433},"models.html":{"ref":"models.html","tf":0.00202020202020202}}}}}},"l":{"docs":{},"l":{"docs":{"changelog.html":{"ref":"changelog.html","tf":0.019138755980861243},"curd.html":{"ref":"curd.html","tf":0.0005370569280343716}},"&":{"docs":{},"q":{"docs":{},"u":{"docs":{},"o":{"docs":{},"t":{"docs":{"models.html":{"ref":"models.html","tf":0.00202020202020202}}}}}}},";":{"docs":{},"u":{"docs":{},"n":{"docs":{},"i":{"docs":{},"q":{"docs":{},"u":{"docs":{},"e":{"docs":{},"&":{"docs":{},"q":{"docs":{},"u":{"docs":{},"o":{"docs":{},"t":{"docs":{"models.html":{"ref":"models.html","tf":0.00202020202020202}}}}}}}}}}}}}},"a":{"docs":{},"b":{"docs":{},"l":{"docs":{"models.html":{"ref":"models.html","tf":0.00202020202020202}}}}}}}}},"o":{"docs":{},"n":{"docs":{"./":{"ref":"./","tf":0.008},"advanced.html":{"ref":"advanced.html","tf":0.00303951367781155},"associations.html":{"ref":"associations.html","tf":0.010893246187363835},"curd.html":{"ref":"curd.html","tf":0.001611170784103115},"development.html":{"ref":"development.html","tf":0.004807692307692308},"models.html":{"ref":"models.html","tf":0.01616161616161616}},"c":{"docs":{"advanced.html":{"ref":"advanced.html","tf":0.00303951367781155}}},"d":{"docs":{},"e":{"docs":{},"l":{"docs":{},"e":{"docs":{},"t":{"docs":{"database.html":{"ref":"database.html","tf":0.0034129692832764505}}}}}}},"u":{"docs":{},"p":{"docs":{},"d":{"docs":{"database.html":{"ref":"database.html","tf":0.0034129692832764505}}}}}},"r":{"docs":{},"m":{"docs":{"./":{"ref":"./","tf":0.016}}},"d":{"docs":{},"e":{"docs":{},"r":{"docs":{"advanced.html":{"ref":"advanced.html","tf":0.00303951367781155},"curd.html":{"ref":"curd.html","tf":0.008592910848549946},"database.html":{"ref":"database.html","tf":0.0034129692832764505},"development.html":{"ref":"development.html","tf":0.009615384615384616}},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"t":{"docs":{},"u":{"docs":{},"s":{"docs":{},"(":{"docs":{},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"t":{"docs":{},"u":{"docs":{"curd.html":{"ref":"curd.html","tf":0.0005370569280343716}}}}}}}}}}}}}}}}}},"v":{"docs":{},"e":{"docs":{},"r":{"docs":{},"v":{"docs":{},"i":{"docs":{},"e":{"docs":{},"w":{"docs":{"./":{"ref":"./","tf":0.008}}}}}},"w":{"docs":{},"r":{"docs":{},"i":{"docs":{},"t":{"docs":{"changelog.html":{"ref":"changelog.html","tf":0.004784688995215311},"curd.html":{"ref":"curd.html","tf":0.0005370569280343716}}}}}},"r":{"docs":{},"i":{"docs":{},"d":{"docs":{"models.html":{"ref":"models.html","tf":0.00202020202020202}}}}}}}},"b":{"docs":{},"j":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{"advanced.html":{"ref":"advanced.html","tf":0.00303951367781155},"callbacks.html":{"ref":"callbacks.html","tf":0.04145077720207254}}}}}}},"p":{"docs":{},"e":{"docs":{},"r":{"docs":{"advanced.html":{"ref":"advanced.html","tf":0.015197568389057751},"callbacks.html":{"ref":"callbacks.html","tf":0.010362694300518135},"curd.html":{"ref":"curd.html","tf":0.0005370569280343716},"development.html":{"ref":"development.html","tf":0.019230769230769232}},"a":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"&":{"docs":{},"a":{"docs":{},"p":{"docs":{},"o":{"docs":{},"s":{"docs":{},";":{"docs":{"development.html":{"ref":"development.html","tf":0.004807692307692308}}}}}}}}}}}}}}},"t":{"docs":{},"i":{"docs":{},"m":{"docs":{"curd.html":{"ref":"curd.html","tf":0.0021482277121374865}}},"o":{"docs":{},"n":{"docs":{"curd.html":{"ref":"curd.html","tf":0.00644468313641246}}}}}}},"m":{"docs":{},"i":{"docs":{},"t":{"docs":{"associations.html":{"ref":"associations.html","tf":0.002178649237472767},"curd.html":{"ref":"curd.html","tf":0.0005370569280343716}}}}},"u":{"docs":{},"t":{"docs":{"associations.html":{"ref":"associations.html","tf":0.002178649237472767},"changelog.html":{"ref":"changelog.html","tf":0.004784688995215311},"development.html":{"ref":"development.html","tf":0.004807692307692308}}}},"w":{"docs":{},"n":{"docs":{},"e":{"docs":{},"r":{"docs":{},"i":{"docs":{},"d":{"docs":{"associations.html":{"ref":"associations.html","tf":0.002178649237472767}}}},"t":{"docs":{},"y":{"docs":{},"p":{"docs":{"associations.html":{"ref":"associations.html","tf":0.002178649237472767}}}}}}}}},"f":{"docs":{},"f":{"docs":{},"s":{"docs":{},"e":{"docs":{},"t":{"docs":{"curd.html":{"ref":"curd.html","tf":0.0026852846401718583}}}}},"i":{"docs":{},"c":{"docs":{},"i":{"docs":{"database.html":{"ref":"database.html","tf":0.0034129692832764505}}}}}}}},"p":{"docs":{},"a":{"docs":{},"c":{"docs":{},"k":{"docs":{},"a":{"docs":{},"g":{"docs":{"./":{"ref":"./","tf":0.008},"changelog.html":{"ref":"changelog.html","tf":0.004784688995215311}}}}}},"n":{"docs":{},"i":{"docs":{},"c":{"docs":{},"(":{"docs":{},"&":{"docs":{},"q":{"docs":{},"u":{"docs":{},"o":{"docs":{},"t":{"docs":{},";":{"docs":{},"f":{"docs":{},"a":{"docs":{},"i":{"docs":{},"e":{"docs":{},"l":{"docs":{},"d":{"docs":{"./":{"ref":"./","tf":0.008}}}}}}}}}}}}}}}}}},"s":{"docs":{},"s":{"docs":{"associations.html":{"ref":"associations.html","tf":0.002178649237472767},"callbacks.html":{"ref":"callbacks.html","tf":0.0051813471502590676},"curd.html":{"ref":"curd.html","tf":0.0010741138560687433}}}},"i":{"docs":{},"d":{"docs":{"curd.html":{"ref":"curd.html","tf":0.0005370569280343716}},"w":{"docs":{},"i":{"docs":{},"t":{"docs":{},"h":{"docs":{},"c":{"docs":{},"o":{"docs":{},"d":{"docs":{},"(":{"docs":{},"d":{"docs":{},"b":{"docs":{"curd.html":{"ref":"curd.html","tf":0.0005370569280343716}}}}},")":{"docs":{},".":{"docs":{},"f":{"docs":{},"i":{"docs":{},"n":{"docs":{},"d":{"docs":{},"(":{"docs":{},"&":{"docs":{},"a":{"docs":{},"m":{"docs":{},"p":{"docs":{},";":{"docs":{},"o":{"docs":{},"r":{"docs":{},"d":{"docs":{"curd.html":{"ref":"curd.html","tf":0.0005370569280343716}}}}}}}}}}}}}}}}}}},"r":{"docs":{},"e":{"docs":{},"d":{"docs":{},"i":{"docs":{},"t":{"docs":{},"c":{"docs":{},"a":{"docs":{},"r":{"docs":{},"d":{"docs":{},"(":{"docs":{},"d":{"docs":{},"b":{"docs":{"curd.html":{"ref":"curd.html","tf":0.0005370569280343716}}}}},")":{"docs":{},".":{"docs":{},"f":{"docs":{},"i":{"docs":{},"n":{"docs":{},"d":{"docs":{},"(":{"docs":{},"&":{"docs":{},"a":{"docs":{},"m":{"docs":{},"p":{"docs":{},";":{"docs":{},"o":{"docs":{},"r":{"docs":{},"d":{"docs":{"curd.html":{"ref":"curd.html","tf":0.0005370569280343716}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"r":{"docs":{},"a":{"docs":{},"m":{"docs":{"database.html":{"ref":"database.html","tf":0.017064846416382253}},"e":{"docs":{},"t":{"docs":{"curd.html":{"ref":"curd.html","tf":0.0005370569280343716},"database.html":{"ref":"database.html","tf":0.0034129692832764505}}}}}},"s":{"docs":{},"e":{"docs":{},"t":{"docs":{},"i":{"docs":{},"m":{"docs":{"database.html":{"ref":"database.html","tf":0.0034129692832764505}}}}}}}},"t":{"docs":{},"h":{"docs":{"database.html":{"ref":"database.html","tf":0.0034129692832764505}}}}},"l":{"docs":{},"u":{"docs":{},"g":{"docs":{},"i":{"docs":{},"n":{"docs":{"./":{"ref":"./","tf":0.008},"development.html":{"ref":"development.html","tf":0.014423076923076924}}}}},"c":{"docs":{},"k":{"docs":{"curd.html":{"ref":"curd.html","tf":0.0010741138560687433}}}},"r":{"docs":{},"a":{"docs":{},"l":{"docs":{"models.html":{"ref":"models.html","tf":0.006060606060606061}}}}}},"a":{"docs":{},"i":{"docs":{},"n":{"docs":{"curd.html":{"ref":"curd.html","tf":0.0021482277121374865}}}}}},"o":{"docs":{},"l":{"docs":{},"y":{"docs":{},"m":{"docs":{},"o":{"docs":{},"r":{"docs":{},"p":{"docs":{},"h":{"docs":{"./":{"ref":"./","tf":0.008},"associations.html":{"ref":"associations.html","tf":0.008714596949891068}}}}}}}}},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{"advanced.html":{"ref":"advanced.html","tf":0.00303951367781155}},"e":{"docs":{},"r":{"docs":{"callbacks.html":{"ref":"callbacks.html","tf":0.0051813471502590676}}}}}}},"o":{"docs":{},"l":{"docs":{"advanced.html":{"ref":"advanced.html","tf":0.0060790273556231}}}},"s":{"docs":{},"t":{"docs":{"models.html":{"ref":"models.html","tf":0.00202020202020202}},"g":{"docs":{},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"q":{"docs":{},"l":{"docs":{"database.html":{"ref":"database.html","tf":0.006825938566552901}}}}}}}}}},"w":{"docs":{},"e":{"docs":{},"r":{"docs":{"development.html":{"ref":"development.html","tf":0.004807692307692308}}}}}},"r":{"docs":{},"e":{"docs":{"development.html":{"ref":"development.html","tf":0.009615384615384616}},"l":{"docs":{},"o":{"docs":{},"a":{"docs":{},"d":{"docs":{"./":{"ref":"./","tf":0.008},"callbacks.html":{"ref":"callbacks.html","tf":0.0051813471502590676}}}}}}},"i":{"docs":{},"c":{"docs":{},"e":{"docs":{"./":{"ref":"./","tf":0.024},"curd.html":{"ref":"curd.html","tf":0.0010741138560687433}}}},"m":{"docs":{},"a":{"docs":{},"r":{"docs":{},"i":{"docs":{"./":{"ref":"./","tf":0.008},"advanced.html":{"ref":"advanced.html","tf":0.00911854103343465},"associations.html":{"ref":"associations.html","tf":0.006535947712418301},"curd.html":{"ref":"curd.html","tf":0.008592910848549946},"models.html":{"ref":"models.html","tf":0.010101010101010102}}},"y":{"docs":{},"_":{"docs":{},"k":{"docs":{},"e":{"docs":{},"y":{"docs":{"models.html":{"ref":"models.html","tf":0.00202020202020202}}}}}}}}}},"a":{"docs":{},"m":{"docs":{},"r":{"docs":{},"i":{"docs":{"advanced.html":{"ref":"advanced.html","tf":0.00303951367781155}}}}}},"n":{"docs":{},"t":{"docs":{"advanced.html":{"ref":"advanced.html","tf":0.00303951367781155}}}}},"o":{"docs":{},"d":{"docs":{},"u":{"docs":{},"c":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.048},"advanced.html":{"ref":"advanced.html","tf":0.00303951367781155},"curd.html":{"ref":"curd.html","tf":0.0005370569280343716},"database.html":{"ref":"database.html","tf":0.0034129692832764505}},"&":{"docs":{},"a":{"docs":{},"p":{"docs":{},"o":{"docs":{},"s":{"docs":{},";":{"docs":{"./":{"ref":"./","tf":0.008}}}}}}}}}}}},"f":{"docs":{},"i":{"docs":{},"l":{"docs":{"associations.html":{"ref":"associations.html","tf":0.05010893246187364},"models.html":{"ref":"models.html","tf":0.00202020202020202}},"e":{"docs":{},"i":{"docs":{},"d":{"docs":{"associations.html":{"ref":"associations.html","tf":0.008714596949891068}}}},"r":{"docs":{},"e":{"docs":{},"f":{"docs":{"associations.html":{"ref":"associations.html","tf":0.004357298474945534}}}}}}}}},"t":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{"database.html":{"ref":"database.html","tf":0.0034129692832764505}}}}}},"c":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{"development.html":{"ref":"development.html","tf":0.009615384615384616}}}}}}}},"e":{"docs":{},"r":{"docs":{},"f":{"docs":{},"o":{"docs":{},"r":{"docs":{},"m":{"docs":{"advanced.html":{"ref":"advanced.html","tf":0.0060790273556231},"curd.html":{"ref":"curd.html","tf":0.0010741138560687433},"development.html":{"ref":"development.html","tf":0.014423076923076924}}}}}},"m":{"docs":{},"a":{"docs":{},"n":{"docs":{"curd.html":{"ref":"curd.html","tf":0.0010741138560687433}}}}}}},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{"advanced.html":{"ref":"advanced.html","tf":0.00303951367781155}}}}},"w":{"docs":{"changelog.html":{"ref":"changelog.html","tf":0.014354066985645933},"curd.html":{"ref":"curd.html","tf":0.0010741138560687433}}}},"q":{"docs":{},"u":{"docs":{},"i":{"docs":{},"c":{"docs":{},"k":{"docs":{"./":{"ref":"./","tf":0.008}}}}},"o":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.008},"advanced.html":{"ref":"advanced.html","tf":0.02735562310030395},"changelog.html":{"ref":"changelog.html","tf":0.004784688995215311},"curd.html":{"ref":"curd.html","tf":0.020945220193340493},"development.html":{"ref":"development.html","tf":0.009615384615384616},"models.html":{"ref":"models.html","tf":0.00202020202020202}},";":{"2":{"2":{"docs":{},"&":{"docs":{},"q":{"docs":{},"u":{"docs":{},"o":{"docs":{},"t":{"docs":{},";":{"docs":{},")":{"docs":{},".":{"docs":{},"f":{"docs":{},"i":{"docs":{},"n":{"docs":{},"d":{"docs":{},"(":{"docs":{},"&":{"docs":{},"a":{"docs":{},"m":{"docs":{},"p":{"docs":{},";":{"docs":{},"u":{"docs":{},"s":{"docs":{"curd.html":{"ref":"curd.html","tf":0.0005370569280343716}}}}}}}}}}}}}}}}}}}}}}},"docs":{}},"4":{"1":{"1":{"1":{"1":{"1":{"1":{"1":{"1":{"1":{"1":{"1":{"docs":{},"&":{"docs":{},"q":{"docs":{},"u":{"docs":{},"o":{"docs":{},"t":{"docs":{},";":{"docs":{},")":{"docs":{},".":{"docs":{},"f":{"docs":{},"i":{"docs":{},"n":{"docs":{},"d":{"docs":{},"(":{"docs":{},"&":{"docs":{},"a":{"docs":{},"m":{"docs":{},"p":{"docs":{},";":{"docs":{},"u":{"docs":{},"s":{"docs":{"curd.html":{"ref":"curd.html","tf":0.0005370569280343716}}}}}}}}}}}}}}}}}}}}}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"docs":{},"c":{"docs":{},"o":{"docs":{},"d":{"docs":{"./":{"ref":"./","tf":0.008}},"e":{"docs":{},"&":{"docs":{},"q":{"docs":{},"u":{"docs":{},"o":{"docs":{},"t":{"docs":{"curd.html":{"ref":"curd.html","tf":0.0005370569280343716}}}}}}}}}},"r":{"docs":{},"e":{"docs":{},"d":{"docs":{},"i":{"docs":{},"t":{"docs":{},"c":{"docs":{},"a":{"docs":{},"r":{"docs":{},"d":{"docs":{},"&":{"docs":{},"q":{"docs":{},"u":{"docs":{},"o":{"docs":{},"t":{"docs":{"associations.html":{"ref":"associations.html","tf":0.002178649237472767}}}}}}}}}}}}}}}},"&":{"docs":{},"q":{"docs":{},"u":{"docs":{},"o":{"docs":{},"t":{"docs":{"curd.html":{"ref":"curd.html","tf":0.0010741138560687433}}}}}}},"i":{"docs":{},"t":{"docs":{},"i":{"docs":{},"e":{"docs":{},"s":{"docs":{},"(":{"docs":{},"i":{"docs":{},"d":{"docs":{},")":{"docs":{},"&":{"docs":{},"q":{"docs":{},"u":{"docs":{},"o":{"docs":{},"t":{"docs":{"database.html":{"ref":"database.html","tf":0.0034129692832764505}}}}}}}}}}}}}}}}},"g":{"docs":{},"i":{"docs":{},"t":{"docs":{},"h":{"docs":{},"u":{"docs":{},"b":{"docs":{},".":{"docs":{},"c":{"docs":{},"o":{"docs":{},"m":{"docs":{},"/":{"docs":{},"j":{"docs":{},"i":{"docs":{},"n":{"docs":{},"z":{"docs":{},"h":{"docs":{},"u":{"docs":{},"/":{"docs":{},"g":{"docs":{},"o":{"docs":{},"r":{"docs":{},"m":{"docs":{},"&":{"docs":{},"q":{"docs":{},"u":{"docs":{},"o":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.008},"database.html":{"ref":"database.html","tf":0.010238907849829351}}}}}}},"/":{"docs":{},"d":{"docs":{},"i":{"docs":{},"a":{"docs":{},"l":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},"s":{"docs":{},"/":{"docs":{},"s":{"docs":{},"q":{"docs":{},"l":{"docs":{},"i":{"docs":{},"t":{"docs":{},"e":{"docs":{},"&":{"docs":{},"q":{"docs":{},"u":{"docs":{},"o":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.008},"database.html":{"ref":"database.html","tf":0.006825938566552901}}}}}}}}}}}}},"m":{"docs":{},"s":{"docs":{},"s":{"docs":{},"q":{"docs":{},"l":{"docs":{},"&":{"docs":{},"q":{"docs":{},"u":{"docs":{},"o":{"docs":{},"t":{"docs":{"changelog.html":{"ref":"changelog.html","tf":0.004784688995215311},"database.html":{"ref":"database.html","tf":0.0034129692832764505}}}}}}}}}}},"y":{"docs":{},"s":{"docs":{},"q":{"docs":{},"l":{"docs":{},"&":{"docs":{},"q":{"docs":{},"u":{"docs":{},"o":{"docs":{},"t":{"docs":{"database.html":{"ref":"database.html","tf":0.006825938566552901}}}}}}}}}}}},"p":{"docs":{},"o":{"docs":{},"s":{"docs":{},"t":{"docs":{},"g":{"docs":{},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"&":{"docs":{},"q":{"docs":{},"u":{"docs":{},"o":{"docs":{},"t":{"docs":{"database.html":{"ref":"database.html","tf":0.006825938566552901}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"n":{"docs":{},"o":{"docs":{},"w":{"docs":{},"&":{"docs":{},"q":{"docs":{},"u":{"docs":{},"o":{"docs":{},"t":{"docs":{"changelog.html":{"ref":"changelog.html","tf":0.004784688995215311}}}}}}}}}}}}}}}}},"g":{"docs":{},"o":{"docs":{"database.html":{"ref":"database.html","tf":0.0034129692832764505}}}}}}}}}}}}},"r":{"docs":{},"a":{"docs":{},"f":{"docs":{},"f":{"docs":{},"e":{"docs":{},"&":{"docs":{},"q":{"docs":{},"u":{"docs":{},"o":{"docs":{},"t":{"docs":{},";":{"docs":{},"}":{"docs":{},")":{"docs":{},".":{"docs":{},"e":{"docs":{},"r":{"docs":{},"r":{"docs":{},"o":{"docs":{},"r":{"docs":{"advanced.html":{"ref":"advanced.html","tf":0.00303951367781155}}}}}}}}}}}}}}}}}}}}}}},"l":{"1":{"2":{"1":{"2":{"docs":{},"&":{"docs":{},"q":{"docs":{},"u":{"docs":{},"o":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.016}}}}}}}},"docs":{}},"docs":{}},"docs":{}},"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"&":{"docs":{},"q":{"docs":{},"u":{"docs":{},"o":{"docs":{},"t":{"docs":{},";":{"docs":{},"}":{"docs":{},")":{"docs":{},".":{"docs":{},"e":{"docs":{},"r":{"docs":{},"r":{"docs":{},"o":{"docs":{},"r":{"docs":{"advanced.html":{"ref":"advanced.html","tf":0.00303951367781155}}}}}}}}}}}}}}}}}}},"a":{"docs":{},"n":{"docs":{},"g":{"docs":{},"u":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"s":{"docs":{},"&":{"docs":{},"q":{"docs":{},"u":{"docs":{},"o":{"docs":{},"t":{"docs":{"associations.html":{"ref":"associations.html","tf":0.002178649237472767},"curd.html":{"ref":"curd.html","tf":0.0010741138560687433}},";":{"docs":{},".":{"docs":{},"&":{"docs":{},"q":{"docs":{},"u":{"docs":{},"o":{"docs":{},"t":{"docs":{},";":{"docs":{},"i":{"docs":{},"d":{"docs":{},"&":{"docs":{},"q":{"docs":{},"u":{"docs":{},"o":{"docs":{},"t":{"docs":{"associations.html":{"ref":"associations.html","tf":0.002178649237472767}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"t":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{},".":{"docs":{},"d":{"docs":{},"b":{"docs":{},"&":{"docs":{},"q":{"docs":{},"u":{"docs":{},"o":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.008}}}}}}}}}}}},"x":{"docs":{},"t":{"docs":{},"&":{"docs":{},"q":{"docs":{},"u":{"docs":{},"o":{"docs":{},"t":{"docs":{"database.html":{"ref":"database.html","tf":0.0034129692832764505}}}}}}}}}}},"\\":{"docs":{},"r":{"docs":{},"\\":{"docs":{},"n":{"docs":{},"&":{"docs":{},"q":{"docs":{},"u":{"docs":{},"o":{"docs":{},"t":{"docs":{"advanced.html":{"ref":"advanced.html","tf":0.00303951367781155}}}}}}}}}}},"h":{"docs":{},"e":{"docs":{},"l":{"docs":{},"l":{"docs":{},"o":{"docs":{"advanced.html":{"ref":"advanced.html","tf":0.00303951367781155}},"&":{"docs":{},"q":{"docs":{},"u":{"docs":{},"o":{"docs":{},"t":{"docs":{"curd.html":{"ref":"curd.html","tf":0.00644468313641246}}}}}}}}}}}},"j":{"docs":{},"i":{"docs":{},"n":{"docs":{},"z":{"docs":{},"h":{"docs":{},"u":{"docs":{"curd.html":{"ref":"curd.html","tf":0.004833512352309345}},"&":{"docs":{},"q":{"docs":{},"u":{"docs":{},"o":{"docs":{},"t":{"docs":{"curd.html":{"ref":"curd.html","tf":0.01288936627282492},"development.html":{"ref":"development.html","tf":0.004807692307692308},"models.html":{"ref":"models.html","tf":0.00202020202020202}},";":{"docs":{},")":{"docs":{},".":{"docs":{},"f":{"docs":{},"i":{"docs":{},"r":{"docs":{},"s":{"docs":{},"t":{"docs":{},"(":{"docs":{},"&":{"docs":{},"a":{"docs":{},"m":{"docs":{},"p":{"docs":{},";":{"docs":{},"u":{"docs":{},"s":{"docs":{"advanced.html":{"ref":"advanced.html","tf":0.00303951367781155},"curd.html":{"ref":"curd.html","tf":0.001611170784103115}},"e":{"docs":{},"r":{"docs":{},")":{"docs":{},".":{"docs":{},"e":{"docs":{},"r":{"docs":{},"r":{"docs":{},"o":{"docs":{},"r":{"docs":{"advanced.html":{"ref":"advanced.html","tf":0.00303951367781155}}}}}}}}}}}}}}}}}}}}}},"n":{"docs":{},"d":{"docs":{},"(":{"docs":{},"&":{"docs":{},"a":{"docs":{},"m":{"docs":{},"p":{"docs":{},";":{"docs":{},"u":{"docs":{},"s":{"docs":{"curd.html":{"ref":"curd.html","tf":0.001611170784103115}}}}}}}}}}}}}},"r":{"docs":{},"o":{"docs":{},"w":{"docs":{"advanced.html":{"ref":"advanced.html","tf":0.00303951367781155}}}}},"s":{"docs":{},"e":{"docs":{},"l":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},"(":{"docs":{},"&":{"docs":{},"q":{"docs":{},"u":{"docs":{},"o":{"docs":{},"t":{"docs":{},";":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{"advanced.html":{"ref":"advanced.html","tf":0.00911854103343465}}}}}}}}}}}}}}}}}},"c":{"docs":{},"o":{"docs":{},"u":{"docs":{},"n":{"docs":{},"t":{"docs":{},"(":{"docs":{},"&":{"docs":{},"a":{"docs":{},"m":{"docs":{},"p":{"docs":{},";":{"docs":{},"c":{"docs":{},"o":{"docs":{},"u":{"docs":{},"n":{"docs":{},"t":{"docs":{"curd.html":{"ref":"curd.html","tf":0.0005370569280343716}}}}}}}}}}}}}}}}}},"d":{"docs":{},"e":{"docs":{},"l":{"docs":{},"e":{"docs":{},"t":{"docs":{"curd.html":{"ref":"curd.html","tf":0.0005370569280343716}}}}}}},"o":{"docs":{},"r":{"docs":{},"(":{"docs":{},"&":{"docs":{},"q":{"docs":{},"u":{"docs":{},"o":{"docs":{},"t":{"docs":{},";":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{"curd.html":{"ref":"curd.html","tf":0.0005370569280343716}}}}}}}}}}}}}}}},"}":{"docs":{},")":{"docs":{},".":{"docs":{},"a":{"docs":{},"s":{"docs":{},"s":{"docs":{},"i":{"docs":{},"g":{"docs":{},"n":{"docs":{},"(":{"docs":{},"u":{"docs":{},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},"{":{"docs":{},"a":{"docs":{},"g":{"docs":{"curd.html":{"ref":"curd.html","tf":0.0010741138560687433}}}}}}}}}}}}}}},"t":{"docs":{},"t":{"docs":{},"r":{"docs":{},"s":{"docs":{},"(":{"docs":{},"u":{"docs":{},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},"{":{"docs":{},"a":{"docs":{},"g":{"docs":{"curd.html":{"ref":"curd.html","tf":0.0010741138560687433}}}}}}}}}}}}}}},"f":{"docs":{},"i":{"docs":{},"r":{"docs":{},"s":{"docs":{},"t":{"docs":{},"(":{"docs":{},"&":{"docs":{},"a":{"docs":{},"m":{"docs":{},"p":{"docs":{},";":{"docs":{},"u":{"docs":{},"s":{"docs":{"curd.html":{"ref":"curd.html","tf":0.0005370569280343716}}}}}}}}}},"o":{"docs":{},"r":{"docs":{},"c":{"docs":{},"r":{"docs":{},"e":{"docs":{},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},"(":{"docs":{},"&":{"docs":{},"a":{"docs":{},"m":{"docs":{},"p":{"docs":{},";":{"docs":{},"u":{"docs":{},"s":{"docs":{"curd.html":{"ref":"curd.html","tf":0.0005370569280343716}}}}}}}}}}}}}}}},"i":{"docs":{},"n":{"docs":{},"i":{"docs":{},"t":{"docs":{},"(":{"docs":{},"&":{"docs":{},"a":{"docs":{},"m":{"docs":{},"p":{"docs":{},";":{"docs":{},"u":{"docs":{},"s":{"docs":{"curd.html":{"ref":"curd.html","tf":0.0005370569280343716}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"@":{"docs":{},"e":{"docs":{},"x":{"docs":{},"a":{"docs":{},"m":{"docs":{},"p":{"docs":{},"l":{"docs":{},"e":{"docs":{},".":{"docs":{},"c":{"docs":{},"o":{"docs":{},"m":{"docs":{},"&":{"docs":{},"q":{"docs":{},"u":{"docs":{},"o":{"docs":{},"t":{"docs":{"curd.html":{"ref":"curd.html","tf":0.0010741138560687433}}}}}}}}}},"o":{"docs":{},"r":{"docs":{},"g":{"docs":{},"&":{"docs":{},"q":{"docs":{},"u":{"docs":{},"o":{"docs":{},"t":{"docs":{},";":{"docs":{},")":{"docs":{},".":{"docs":{},"j":{"docs":{},"o":{"docs":{},"i":{"docs":{},"n":{"docs":{},"s":{"docs":{},"(":{"docs":{},"&":{"docs":{},"q":{"docs":{},"u":{"docs":{},"o":{"docs":{},"t":{"docs":{},";":{"docs":{},"j":{"docs":{},"o":{"docs":{},"i":{"docs":{},"n":{"docs":{"curd.html":{"ref":"curd.html","tf":0.0005370569280343716}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"d":{"docs":{},"e":{"docs":{},"&":{"docs":{},"q":{"docs":{},"u":{"docs":{},"o":{"docs":{},"t":{"docs":{"associations.html":{"ref":"associations.html","tf":0.004357298474945534}}}}}}}}},"u":{"docs":{},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},"_":{"docs":{},"l":{"docs":{},"a":{"docs":{},"n":{"docs":{},"g":{"docs":{},"u":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"s":{"docs":{},"&":{"docs":{},"q":{"docs":{},"u":{"docs":{},"o":{"docs":{},"t":{"docs":{"associations.html":{"ref":"associations.html","tf":0.002178649237472767}},";":{"docs":{},".":{"docs":{},"&":{"docs":{},"q":{"docs":{},"u":{"docs":{},"o":{"docs":{},"t":{"docs":{},";":{"docs":{},"l":{"docs":{},"a":{"docs":{},"n":{"docs":{},"g":{"docs":{},"u":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"_":{"docs":{},"i":{"docs":{},"d":{"docs":{},"&":{"docs":{},"q":{"docs":{},"u":{"docs":{},"o":{"docs":{},"t":{"docs":{"associations.html":{"ref":"associations.html","tf":0.002178649237472767}}}}}}}}}}}}}}}}}},"u":{"docs":{},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},"_":{"docs":{},"i":{"docs":{},"d":{"docs":{},"&":{"docs":{},"q":{"docs":{},"u":{"docs":{},"o":{"docs":{},"t":{"docs":{"associations.html":{"ref":"associations.html","tf":0.002178649237472767}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"i":{"docs":{},"d":{"docs":{},"&":{"docs":{},"q":{"docs":{},"u":{"docs":{},"o":{"docs":{},"t":{"docs":{},";":{"docs":{},",":{"docs":{},"&":{"docs":{},"q":{"docs":{},"u":{"docs":{},"o":{"docs":{},"t":{"docs":{},";":{"docs":{},"l":{"docs":{},"a":{"docs":{},"n":{"docs":{},"g":{"docs":{},"u":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"_":{"docs":{},"i":{"docs":{},"d":{"docs":{},"&":{"docs":{},"q":{"docs":{},"u":{"docs":{},"o":{"docs":{},"t":{"docs":{"curd.html":{"ref":"curd.html","tf":0.0010741138560687433}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"s":{"docs":{},"&":{"docs":{},"q":{"docs":{},"u":{"docs":{},"o":{"docs":{},"t":{"docs":{"curd.html":{"ref":"curd.html","tf":0.0021482277121374865},"models.html":{"ref":"models.html","tf":0.00202020202020202}}}}}}}},":":{"docs":{},"p":{"docs":{},"a":{"docs":{},"s":{"docs":{},"s":{"docs":{},"w":{"docs":{},"o":{"docs":{},"r":{"docs":{},"d":{"docs":{},"@":{"docs":{},"/":{"docs":{},"d":{"docs":{},"b":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},"?":{"docs":{},"c":{"docs":{},"h":{"docs":{},"a":{"docs":{},"r":{"docs":{},"s":{"docs":{},"e":{"docs":{},"t":{"docs":{},"=":{"docs":{},"u":{"docs":{},"t":{"docs":{},"f":{"8":{"docs":{},"&":{"docs":{},"a":{"docs":{},"m":{"docs":{},"p":{"docs":{},";":{"docs":{},"p":{"docs":{},"a":{"docs":{},"r":{"docs":{},"s":{"docs":{},"e":{"docs":{},"t":{"docs":{},"i":{"docs":{},"m":{"docs":{},"e":{"docs":{},"=":{"docs":{},"t":{"docs":{},"r":{"docs":{},"u":{"docs":{},"e":{"docs":{},"&":{"docs":{},"a":{"docs":{},"m":{"docs":{},"p":{"docs":{},";":{"docs":{},"l":{"docs":{},"o":{"docs":{},"c":{"docs":{},"=":{"docs":{},"l":{"docs":{},"o":{"docs":{},"c":{"docs":{},"a":{"docs":{},"l":{"docs":{},"&":{"docs":{},"q":{"docs":{},"u":{"docs":{},"o":{"docs":{},"t":{"docs":{"database.html":{"ref":"database.html","tf":0.0034129692832764505}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"docs":{}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"=":{"docs":{},"g":{"docs":{},"o":{"docs":{},"r":{"docs":{},"m":{"docs":{"database.html":{"ref":"database.html","tf":0.0034129692832764505},"development.html":{"ref":"development.html","tf":0.004807692307692308}}}}}}}}}},"p":{"docs":{},"d":{"docs":{},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},"d":{"docs":{},"_":{"docs":{},"a":{"docs":{},"t":{"docs":{},"&":{"docs":{},"q":{"docs":{},"u":{"docs":{},"o":{"docs":{},"t":{"docs":{"curd.html":{"ref":"curd.html","tf":0.0010741138560687433}}}}}}}}}}}}}}}}},"a":{"docs":{},"d":{"docs":{},"m":{"docs":{},"i":{"docs":{},"n":{"docs":{},"&":{"docs":{},"q":{"docs":{},"u":{"docs":{},"o":{"docs":{},"t":{"docs":{"callbacks.html":{"ref":"callbacks.html","tf":0.010362694300518135},"models.html":{"ref":"models.html","tf":0.00202020202020202}},";":{"docs":{},")":{"docs":{},".":{"docs":{},"o":{"docs":{},"r":{"docs":{},"(":{"docs":{},"&":{"docs":{},"q":{"docs":{},"u":{"docs":{},"o":{"docs":{},"t":{"docs":{},";":{"docs":{},"r":{"docs":{},"o":{"docs":{},"l":{"docs":{"curd.html":{"ref":"curd.html","tf":0.0010741138560687433}}}}}}}}}}}}}}}}}}}}}},"_":{"docs":{},"u":{"docs":{},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},"s":{"docs":{},"&":{"docs":{},"q":{"docs":{},"u":{"docs":{},"o":{"docs":{},"t":{"docs":{"models.html":{"ref":"models.html","tf":0.00202020202020202}}}}}}}}}}}}}}}},"d":{"docs":{},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"e":{"docs":{},"s":{"docs":{},"&":{"docs":{},"q":{"docs":{},"u":{"docs":{},"o":{"docs":{},"t":{"docs":{"curd.html":{"ref":"curd.html","tf":0.0010741138560687433}}}}}}}}}}}}}}},"c":{"docs":{},"t":{"docs":{},"i":{"docs":{},"v":{"docs":{},"e":{"docs":{},"d":{"docs":{},"&":{"docs":{},"q":{"docs":{},"u":{"docs":{},"o":{"docs":{},"t":{"docs":{"curd.html":{"ref":"curd.html","tf":0.001611170784103115}}}}}}}}}}}}},"g":{"docs":{},"e":{"docs":{},"&":{"docs":{},"q":{"docs":{},"u":{"docs":{},"o":{"docs":{},"t":{"docs":{"curd.html":{"ref":"curd.html","tf":0.0026852846401718583},"database.html":{"ref":"database.html","tf":0.006825938566552901}},";":{"docs":{},"}":{"docs":{},")":{"docs":{},".":{"docs":{},"f":{"docs":{},"i":{"docs":{},"n":{"docs":{},"d":{"docs":{},"(":{"docs":{},"&":{"docs":{},"a":{"docs":{},"m":{"docs":{},"p":{"docs":{},";":{"docs":{},"u":{"docs":{},"s":{"docs":{"curd.html":{"ref":"curd.html","tf":0.0005370569280343716}}}}}}}}}}}}}}}}}}}}}}}}}},"%":{"docs":{},"j":{"docs":{},"i":{"docs":{},"n":{"docs":{},"%":{"docs":{},"&":{"docs":{},"q":{"docs":{},"u":{"docs":{},"o":{"docs":{},"t":{"docs":{},";":{"docs":{},")":{"docs":{},".":{"docs":{},"f":{"docs":{},"i":{"docs":{},"n":{"docs":{},"d":{"docs":{},"(":{"docs":{},"&":{"docs":{},"a":{"docs":{},"m":{"docs":{},"p":{"docs":{},";":{"docs":{},"u":{"docs":{},"s":{"docs":{"curd.html":{"ref":"curd.html","tf":0.0005370569280343716}}}}}}}}}}}}}}}}}}}}}}},"h":{"docs":{},"u":{"docs":{},"%":{"docs":{},"&":{"docs":{},"q":{"docs":{},"u":{"docs":{},"o":{"docs":{},"t":{"docs":{"curd.html":{"ref":"curd.html","tf":0.0010741138560687433}}}}}}}}}},"z":{"docs":{},"h":{"docs":{},"u":{"docs":{},"%":{"docs":{},"&":{"docs":{},"q":{"docs":{},"u":{"docs":{},"o":{"docs":{},"t":{"docs":{"curd.html":{"ref":"curd.html","tf":0.0005370569280343716}},";":{"docs":{},")":{"docs":{},".":{"docs":{},"d":{"docs":{},"e":{"docs":{},"l":{"docs":{},"e":{"docs":{},"t":{"docs":{},"e":{"docs":{},"(":{"docs":{},"e":{"docs":{},"m":{"docs":{},"a":{"docs":{},"i":{"docs":{},"l":{"docs":{"curd.html":{"ref":"curd.html","tf":0.0005370569280343716}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"&":{"docs":{},"q":{"docs":{},"u":{"docs":{},"o":{"docs":{},"t":{"docs":{"curd.html":{"ref":"curd.html","tf":0.001611170784103115}}}}}}},",":{"2":{"0":{"docs":{},",":{"docs":{},"&":{"docs":{},"q":{"docs":{},"u":{"docs":{},"o":{"docs":{},"t":{"docs":{},";":{"docs":{},"a":{"docs":{},"d":{"docs":{},"m":{"docs":{},"i":{"docs":{},"n":{"docs":{},"&":{"docs":{},"q":{"docs":{},"u":{"docs":{},"o":{"docs":{},"t":{"docs":{},";":{"docs":{},")":{"docs":{},".":{"docs":{},"f":{"docs":{},"i":{"docs":{},"n":{"docs":{},"d":{"docs":{},"(":{"docs":{},"&":{"docs":{},"a":{"docs":{},"m":{"docs":{},"p":{"docs":{},";":{"docs":{},"u":{"docs":{},"s":{"docs":{"curd.html":{"ref":"curd.html","tf":0.0005370569280343716}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"docs":{}},"docs":{},"&":{"docs":{},"q":{"docs":{},"u":{"docs":{},"o":{"docs":{},"t":{"docs":{},";":{"docs":{},"j":{"docs":{},"i":{"docs":{},"n":{"docs":{},"z":{"docs":{},"h":{"docs":{},"u":{"docs":{},"&":{"docs":{},"q":{"docs":{},"u":{"docs":{},"o":{"docs":{},"t":{"docs":{},";":{"docs":{},")":{"docs":{},".":{"docs":{},"w":{"docs":{},"h":{"docs":{},"e":{"docs":{},"r":{"docs":{},"e":{"docs":{},"(":{"docs":{},"&":{"docs":{},"q":{"docs":{},"u":{"docs":{},"o":{"docs":{},"t":{"docs":{},";":{"docs":{},"a":{"docs":{},"g":{"docs":{"curd.html":{"ref":"curd.html","tf":0.0005370569280343716}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"b":{"docs":{},"i":{"docs":{},"l":{"docs":{"curd.html":{"ref":"curd.html","tf":0.0010741138560687433}}}}},"e":{"docs":{},"m":{"docs":{},"a":{"docs":{},"i":{"docs":{},"l":{"docs":{"curd.html":{"ref":"curd.html","tf":0.0005370569280343716}},"s":{"docs":{},"&":{"docs":{},"q":{"docs":{},"u":{"docs":{},"o":{"docs":{},"t":{"docs":{"curd.html":{"ref":"curd.html","tf":0.0010741138560687433}}}}}}}}}}}},"n":{"docs":{},"&":{"docs":{},"q":{"docs":{},"u":{"docs":{},"o":{"docs":{},"t":{"docs":{"curd.html":{"ref":"curd.html","tf":0.0005370569280343716}}}}}}},"g":{"docs":{},"i":{"docs":{},"n":{"docs":{},"e":{"docs":{},"=":{"docs":{},"i":{"docs":{},"n":{"docs":{},"n":{"docs":{},"o":{"docs":{},"d":{"docs":{},"b":{"docs":{},"&":{"docs":{},"q":{"docs":{},"u":{"docs":{},"o":{"docs":{},"t":{"docs":{"database.html":{"ref":"database.html","tf":0.0034129692832764505}},";":{"docs":{},")":{"docs":{},".":{"docs":{},"a":{"docs":{},"u":{"docs":{},"t":{"docs":{},"o":{"docs":{},"m":{"docs":{},"i":{"docs":{},"g":{"docs":{},"r":{"docs":{},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},"(":{"docs":{},"&":{"docs":{},"a":{"docs":{},"m":{"docs":{},"p":{"docs":{},";":{"docs":{},"u":{"docs":{},"s":{"docs":{"database.html":{"ref":"database.html","tf":0.0034129692832764505}}}}}}}}}}}}}}}}}}}}},"c":{"docs":{},"r":{"docs":{},"e":{"docs":{},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},"t":{"docs":{},"a":{"docs":{},"b":{"docs":{},"l":{"docs":{},"e":{"docs":{},"(":{"docs":{},"&":{"docs":{},"a":{"docs":{},"m":{"docs":{},"p":{"docs":{},";":{"docs":{},"u":{"docs":{},"s":{"docs":{"database.html":{"ref":"database.html","tf":0.0034129692832764505}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"f":{"docs":{},"o":{"docs":{},"r":{"docs":{"curd.html":{"ref":"curd.html","tf":0.0005370569280343716}}}}},"i":{"docs":{},"d":{"docs":{},"&":{"docs":{},"q":{"docs":{},"u":{"docs":{},"o":{"docs":{},"t":{"docs":{"curd.html":{"ref":"curd.html","tf":0.0021482277121374865}}}}}}}}},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{"curd.html":{"ref":"curd.html","tf":0.0010741138560687433}},"e":{"docs":{},"&":{"docs":{},"q":{"docs":{},"u":{"docs":{},"o":{"docs":{},"t":{"docs":{"curd.html":{"ref":"curd.html","tf":0.001611170784103115},"database.html":{"ref":"database.html","tf":0.013651877133105802}}}}}}}}}},"o":{"docs":{},"n":{"docs":{},"_":{"docs":{},"e":{"docs":{},"x":{"docs":{},"i":{"docs":{},"s":{"docs":{},"t":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},"&":{"docs":{},"q":{"docs":{},"u":{"docs":{},"o":{"docs":{},"t":{"docs":{"curd.html":{"ref":"curd.html","tf":0.00644468313641246}},";":{"docs":{},"}":{"docs":{},")":{"docs":{},".":{"docs":{},"a":{"docs":{},"s":{"docs":{},"s":{"docs":{},"i":{"docs":{},"g":{"docs":{},"n":{"docs":{},"(":{"docs":{},"u":{"docs":{},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},"{":{"docs":{},"a":{"docs":{},"g":{"docs":{"curd.html":{"ref":"curd.html","tf":0.0010741138560687433}}}}}}}}}}}}}}},"t":{"docs":{},"t":{"docs":{},"r":{"docs":{},"s":{"docs":{},"(":{"docs":{},"&":{"docs":{},"q":{"docs":{},"u":{"docs":{},"o":{"docs":{},"t":{"docs":{},";":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"&":{"docs":{},"q":{"docs":{},"u":{"docs":{},"o":{"docs":{},"t":{"docs":{"curd.html":{"ref":"curd.html","tf":0.0005370569280343716}}}}}}}}}}}}}}}},"u":{"docs":{},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},"{":{"docs":{},"a":{"docs":{},"g":{"docs":{"curd.html":{"ref":"curd.html","tf":0.0010741138560687433}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"o":{"docs":{},"n":{"docs":{"curd.html":{"ref":"curd.html","tf":0.0005370569280343716}}},"p":{"docs":{},"t":{"docs":{"curd.html":{"ref":"curd.html","tf":0.0010741138560687433}}}}},"p":{"docs":{},"r":{"docs":{},"i":{"docs":{},"c":{"docs":{},"e":{"docs":{},"&":{"docs":{},"q":{"docs":{},"u":{"docs":{},"o":{"docs":{},"t":{"docs":{"curd.html":{"ref":"curd.html","tf":0.0010741138560687433}}}}}}}}}},"o":{"docs":{},"d":{"docs":{},"u":{"docs":{},"c":{"docs":{},"t":{"docs":{},"s":{"docs":{},"&":{"docs":{},"q":{"docs":{},"u":{"docs":{},"o":{"docs":{},"t":{"docs":{"curd.html":{"ref":"curd.html","tf":0.0021482277121374865},"database.html":{"ref":"database.html","tf":0.0034129692832764505}}}}}}}}}}}},"f":{"docs":{},"i":{"docs":{},"l":{"docs":{},"e":{"docs":{},"s":{"docs":{},"&":{"docs":{},"q":{"docs":{},"u":{"docs":{},"o":{"docs":{},"t":{"docs":{"models.html":{"ref":"models.html","tf":0.00202020202020202}}}}}}}}}}}}}}},"q":{"docs":{},"u":{"docs":{},"a":{"docs":{},"n":{"docs":{},"t":{"docs":{},"i":{"docs":{},"t":{"docs":{},"y":{"docs":{},"&":{"docs":{},"q":{"docs":{},"u":{"docs":{},"o":{"docs":{},"t":{"docs":{"curd.html":{"ref":"curd.html","tf":0.0010741138560687433}}}}}}}}}}}}}}},"s":{"docs":{},"h":{"docs":{},"i":{"docs":{},"p":{"docs":{"curd.html":{"ref":"curd.html","tf":0.0010741138560687433}},"p":{"docs":{},"e":{"docs":{},"d":{"docs":{},"&":{"docs":{},"q":{"docs":{},"u":{"docs":{},"o":{"docs":{},"t":{"docs":{},";":{"docs":{},"}":{"docs":{},")":{"docs":{},")":{"docs":{},".":{"docs":{},"f":{"docs":{},"i":{"docs":{},"n":{"docs":{},"d":{"docs":{},"(":{"docs":{},"&":{"docs":{},"a":{"docs":{},"m":{"docs":{},"p":{"docs":{},";":{"docs":{},"o":{"docs":{},"r":{"docs":{},"d":{"docs":{"curd.html":{"ref":"curd.html","tf":0.0005370569280343716}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"u":{"docs":{},"p":{"docs":{},"e":{"docs":{},"r":{"docs":{},"_":{"docs":{},"a":{"docs":{},"d":{"docs":{},"m":{"docs":{},"i":{"docs":{},"n":{"docs":{},"&":{"docs":{},"q":{"docs":{},"u":{"docs":{},"o":{"docs":{},"t":{"docs":{},";":{"docs":{},")":{"docs":{},".":{"docs":{},"f":{"docs":{},"i":{"docs":{},"n":{"docs":{},"d":{"docs":{},"(":{"docs":{},"&":{"docs":{},"a":{"docs":{},"m":{"docs":{},"p":{"docs":{},";":{"docs":{},"u":{"docs":{},"s":{"docs":{"curd.html":{"ref":"curd.html","tf":0.0005370569280343716}}}}}}}}}}}}}},"n":{"docs":{},"o":{"docs":{},"t":{"docs":{},"(":{"docs":{},"&":{"docs":{},"q":{"docs":{},"u":{"docs":{},"o":{"docs":{},"t":{"docs":{},";":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{"curd.html":{"ref":"curd.html","tf":0.0005370569280343716}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"z":{"docs":{},"h":{"docs":{},"&":{"docs":{},"q":{"docs":{},"u":{"docs":{},"o":{"docs":{},"t":{"docs":{"curd.html":{"ref":"curd.html","tf":0.0005370569280343716}}}}}}}}},"/":{"docs":{},"t":{"docs":{},"m":{"docs":{},"p":{"docs":{},"/":{"docs":{},"g":{"docs":{},"o":{"docs":{},"r":{"docs":{},"m":{"docs":{},".":{"docs":{},"d":{"docs":{},"b":{"docs":{},"&":{"docs":{},"q":{"docs":{},"u":{"docs":{},"o":{"docs":{},"t":{"docs":{"database.html":{"ref":"database.html","tf":0.0034129692832764505}}}}}}}}}}}}}}}}}}},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{},"r":{"docs":{},"i":{"docs":{},"c":{"docs":{},"t":{"docs":{},"&":{"docs":{},"q":{"docs":{},"u":{"docs":{},"o":{"docs":{},"t":{"docs":{"database.html":{"ref":"database.html","tf":0.006825938566552901}}}}}}}}}}}}}}},"_":{"docs":{},"d":{"docs":{},"r":{"docs":{},"a":{"docs":{},"f":{"docs":{},"t":{"docs":{},"&":{"docs":{},"q":{"docs":{},"u":{"docs":{},"o":{"docs":{},"t":{"docs":{"development.html":{"ref":"development.html","tf":0.004807692307692308}}}}}}}}}}}}}}}},"e":{"docs":{},"r":{"docs":{},"i":{"docs":{"advanced.html":{"ref":"advanced.html","tf":0.00303951367781155},"associations.html":{"ref":"associations.html","tf":0.002178649237472767},"callbacks.html":{"ref":"callbacks.html","tf":0.02072538860103627},"changelog.html":{"ref":"changelog.html","tf":0.004784688995215311},"curd.html":{"ref":"curd.html","tf":0.011815252416756176},"development.html":{"ref":"development.html","tf":0.03365384615384615},"models.html":{"ref":"models.html","tf":0.00202020202020202}}}}},"a":{"docs":{},"n":{"docs":{},"t":{"docs":{},"i":{"docs":{},"t":{"docs":{},"i":{"docs":{"curd.html":{"ref":"curd.html","tf":0.001611170784103115}}}}}}}}}},"r":{"docs":{},"e":{"docs":{},"a":{"docs":{},"d":{"docs":{"./":{"ref":"./","tf":0.008},"curd.html":{"ref":"curd.html","tf":0.0005370569280343716}}}},"l":{"docs":{},"e":{"docs":{},"a":{"docs":{},"s":{"docs":{"./":{"ref":"./","tf":0.008},"changelog.html":{"ref":"changelog.html","tf":0.004784688995215311}}}}},"a":{"docs":{},"t":{"docs":{"associations.html":{"ref":"associations.html","tf":0.004357298474945534},"development.html":{"ref":"development.html","tf":0.014423076923076924}},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{},"h":{"docs":{},"i":{"docs":{},"p":{"docs":{"associations.html":{"ref":"associations.html","tf":0.008714596949891068},"models.html":{"ref":"models.html","tf":0.010101010101010102}}}}}}}}}}},"o":{"docs":{},"a":{"docs":{},"d":{"docs":{"callbacks.html":{"ref":"callbacks.html","tf":0.0051813471502590676}}}}}},"c":{"docs":{},"o":{"docs":{},"r":{"docs":{},"d":{"docs":{"associations.html":{"ref":"associations.html","tf":0.002178649237472767},"changelog.html":{"ref":"changelog.html","tf":0.004784688995215311},"curd.html":{"ref":"curd.html","tf":0.015574650912996778},"models.html":{"ref":"models.html","tf":0.00808080808080808}},"n":{"docs":{},"o":{"docs":{},"t":{"docs":{},"f":{"docs":{},"o":{"docs":{},"u":{"docs":{},"n":{"docs":{},"d":{"docs":{"advanced.html":{"ref":"advanced.html","tf":0.00303951367781155},"changelog.html":{"ref":"changelog.html","tf":0.004784688995215311}}}}}}}}}},"&":{"docs":{},"a":{"docs":{},"p":{"docs":{},"o":{"docs":{},"s":{"docs":{},";":{"docs":{"models.html":{"ref":"models.html","tf":0.012121212121212121}}}}}}}}}}}},"f":{"docs":{},"e":{"docs":{},"r":{"docs":{"advanced.html":{"ref":"advanced.html","tf":0.00303951367781155},"associations.html":{"ref":"associations.html","tf":0.006535947712418301},"curd.html":{"ref":"curd.html","tf":0.0005370569280343716},"database.html":{"ref":"database.html","tf":0.0034129692832764505},"development.html":{"ref":"development.html","tf":0.004807692307692308},"models.html":{"ref":"models.html","tf":0.00202020202020202}}}}},"s":{"docs":{},"u":{"docs":{},"l":{"docs":{},"t":{"docs":{"advanced.html":{"ref":"advanced.html","tf":0.0121580547112462},"curd.html":{"ref":"curd.html","tf":0.00322234156820623}}}}},"e":{"docs":{},"t":{"docs":{"models.html":{"ref":"models.html","tf":0.00202020202020202}}}}},"t":{"docs":{},"u":{"docs":{},"r":{"docs":{},"n":{"docs":{"advanced.html":{"ref":"advanced.html","tf":0.015197568389057751},"associations.html":{"ref":"associations.html","tf":0.004357298474945534},"callbacks.html":{"ref":"callbacks.html","tf":0.025906735751295335},"changelog.html":{"ref":"changelog.html","tf":0.004784688995215311},"curd.html":{"ref":"curd.html","tf":0.0053705692803437165},"models.html":{"ref":"models.html","tf":0.006060606060606061}}}}},"r":{"docs":{},"i":{"docs":{},"e":{"docs":{},"v":{"docs":{"curd.html":{"ref":"curd.html","tf":0.001611170784103115}}}}}}},"m":{"docs":{},"o":{"docs":{},"v":{"docs":{"associations.html":{"ref":"associations.html","tf":0.004357298474945534},"database.html":{"ref":"database.html","tf":0.0034129692832764505}}}},"e":{"docs":{},"m":{"docs":{},"b":{"docs":{"database.html":{"ref":"database.html","tf":0.0034129692832764505}}}}}},"p":{"docs":{},"l":{"docs":{},"a":{"docs":{},"c":{"docs":{"associations.html":{"ref":"associations.html","tf":0.006535947712418301},"development.html":{"ref":"development.html","tf":0.014423076923076924}}}}}},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{"changelog.html":{"ref":"changelog.html","tf":0.004784688995215311}}}}},"g":{"docs":{},"a":{"docs":{},"r":{"docs":{},"d":{"docs":{},"l":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{"curd.html":{"ref":"curd.html","tf":0.0010741138560687433}}}}}}}}},"i":{"docs":{},"s":{"docs":{},"t":{"docs":{"development.html":{"ref":"development.html","tf":0.038461538461538464}}}}}},"o":{"docs":{},"r":{"docs":{},"d":{"docs":{},"e":{"docs":{},"r":{"docs":{"curd.html":{"ref":"curd.html","tf":0.0010741138560687433}}}}}}},"q":{"docs":{},"u":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{"curd.html":{"ref":"curd.html","tf":0.0005370569280343716}}}}}}}},"a":{"docs":{},"w":{"docs":{"advanced.html":{"ref":"advanced.html","tf":0.0121580547112462},"curd.html":{"ref":"curd.html","tf":0.0005370569280343716}}},"n":{"docs":{},"g":{"docs":{"changelog.html":{"ref":"changelog.html","tf":0.004784688995215311}}}}},"o":{"docs":{},"l":{"docs":{},"l":{"docs":{},"b":{"docs":{},"a":{"docs":{},"c":{"docs":{},"k":{"docs":{"advanced.html":{"ref":"advanced.html","tf":0.00303951367781155},"callbacks.html":{"ref":"callbacks.html","tf":0.025906735751295335}}}}}}},"e":{"docs":{"curd.html":{"ref":"curd.html","tf":0.0021482277121374865}}}},"w":{"docs":{"advanced.html":{"ref":"advanced.html","tf":0.0121580547112462},"curd.html":{"ref":"curd.html","tf":0.001611170784103115},"development.html":{"ref":"development.html","tf":0.019230769230769232}},".":{"docs":{},"s":{"docs":{},"c":{"docs":{},"a":{"docs":{},"n":{"docs":{},"(":{"docs":{},"&":{"docs":{},"a":{"docs":{},"m":{"docs":{},"p":{"docs":{},";":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{"advanced.html":{"ref":"advanced.html","tf":0.00303951367781155}}}}}}}}}}}}}}}},"s":{"docs":{},".":{"docs":{},"c":{"docs":{},"l":{"docs":{},"o":{"docs":{},"s":{"docs":{"advanced.html":{"ref":"advanced.html","tf":0.00911854103343465}}}}}},"n":{"docs":{},"e":{"docs":{},"x":{"docs":{},"t":{"docs":{"advanced.html":{"ref":"advanced.html","tf":0.00911854103343465},"curd.html":{"ref":"curd.html","tf":0.001611170784103115}}}}}},"s":{"docs":{},"c":{"docs":{},"a":{"docs":{},"n":{"docs":{},"(":{"docs":{},"&":{"docs":{},"a":{"docs":{},"m":{"docs":{},"p":{"docs":{},";":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{"advanced.html":{"ref":"advanced.html","tf":0.0060790273556231}}}}}}}}}}}}}}}},"a":{"docs":{},"f":{"docs":{},"f":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{"curd.html":{"ref":"curd.html","tf":0.0005370569280343716}}}}}}}}},"_":{"docs":{},"q":{"docs":{},"u":{"docs":{},"e":{"docs":{},"r":{"docs":{},"i":{"docs":{"development.html":{"ref":"development.html","tf":0.004807692307692308}}}}}}}}}},"u":{"docs":{},"n":{"docs":{"advanced.html":{"ref":"advanced.html","tf":0.00911854103343465},"callbacks.html":{"ref":"callbacks.html","tf":0.010362694300518135},"curd.html":{"ref":"curd.html","tf":0.0005370569280343716},"development.html":{"ref":"development.html","tf":0.009615384615384616}}}}},"s":{"docs":{},"q":{"docs":{},"l":{"docs":{"./":{"ref":"./","tf":0.008},"advanced.html":{"ref":"advanced.html","tf":0.0182370820668693},"callbacks.html":{"ref":"callbacks.html","tf":0.0051813471502590676},"changelog.html":{"ref":"changelog.html","tf":0.004784688995215311},"curd.html":{"ref":"curd.html","tf":0.00966702470461869},"database.html":{"ref":"database.html","tf":0.006825938566552901},"models.html":{"ref":"models.html","tf":0.00202020202020202}},".":{"docs":{},"d":{"docs":{},"b":{"docs":{"advanced.html":{"ref":"advanced.html","tf":0.0121580547112462}}}},"r":{"docs":{},"o":{"docs":{},"w":{"docs":{"advanced.html":{"ref":"advanced.html","tf":0.0364741641337386}}}}},"n":{"docs":{},"u":{"docs":{},"l":{"docs":{},"l":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"6":{"4":{"docs":{"models.html":{"ref":"models.html","tf":0.00202020202020202}}},"docs":{}},"docs":{}}}},"s":{"docs":{},"t":{"docs":{},"r":{"docs":{"models.html":{"ref":"models.html","tf":0.00202020202020202}}}}}}}}}},"i":{"docs":{},"t":{"docs":{},"e":{"3":{"docs":{"database.html":{"ref":"database.html","tf":0.006825938566552901}}},"docs":{}}}}}},"t":{"docs":{},"a":{"docs":{},"r":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.008},"associations.html":{"ref":"associations.html","tf":0.002178649237472767},"curd.html":{"ref":"curd.html","tf":0.0005370569280343716},"development.html":{"ref":"development.html","tf":0.009615384615384616}}}},"t":{"docs":{},"u":{"docs":{"curd.html":{"ref":"curd.html","tf":0.0005370569280343716}}},"e":{"docs":{},"m":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{"database.html":{"ref":"database.html","tf":0.0034129692832764505}}}}}}}}},"r":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{"./":{"ref":"./","tf":0.008},"advanced.html":{"ref":"advanced.html","tf":0.00911854103343465},"associations.html":{"ref":"associations.html","tf":0.04357298474945534},"curd.html":{"ref":"curd.html","tf":0.0021482277121374865},"models.html":{"ref":"models.html","tf":0.030303030303030304}},"{":{"docs":{},"&":{"docs":{},"q":{"docs":{},"u":{"docs":{},"o":{"docs":{},"t":{"docs":{},";":{"docs":{},"j":{"docs":{},"i":{"docs":{},"n":{"docs":{},"z":{"docs":{},"h":{"docs":{},"u":{"docs":{},"&":{"docs":{},"q":{"docs":{},"u":{"docs":{},"o":{"docs":{},"t":{"docs":{"curd.html":{"ref":"curd.html","tf":0.0010741138560687433}}}}}}}}}}}}}}}}}}}}}}},"u":{"docs":{},"c":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.008},"advanced.html":{"ref":"advanced.html","tf":0.0060790273556231},"associations.html":{"ref":"associations.html","tf":0.054466230936819175},"callbacks.html":{"ref":"callbacks.html","tf":0.0051813471502590676},"changelog.html":{"ref":"changelog.html","tf":0.004784688995215311},"curd.html":{"ref":"curd.html","tf":0.01020408163265306},"models.html":{"ref":"models.html","tf":0.03434343434343434}}}}}},"o":{"docs":{},"p":{"docs":{"callbacks.html":{"ref":"callbacks.html","tf":0.0051813471502590676}}},"r":{"docs":{},"e":{"docs":{"models.html":{"ref":"models.html","tf":0.012121212121212121}}}}}},"c":{"docs":{},"a":{"docs":{},"n":{"docs":{"advanced.html":{"ref":"advanced.html","tf":0.00911854103343465},"curd.html":{"ref":"curd.html","tf":0.0021482277121374865}}}},"o":{"docs":{},"p":{"docs":{},"e":{"docs":{"changelog.html":{"ref":"changelog.html","tf":0.004784688995215311},"curd.html":{"ref":"curd.html","tf":0.0010741138560687433},"development.html":{"ref":"development.html","tf":0.004807692307692308}},".":{"docs":{},"d":{"docs":{},"b":{"docs":{},"(":{"docs":{},")":{"docs":{},".":{"docs":{},"m":{"docs":{},"o":{"docs":{},"d":{"docs":{},"e":{"docs":{},"l":{"docs":{},"(":{"docs":{},"u":{"docs":{},")":{"docs":{},".":{"docs":{},"u":{"docs":{},"p":{"docs":{},"d":{"docs":{},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},"(":{"docs":{},"&":{"docs":{},"q":{"docs":{},"u":{"docs":{},"o":{"docs":{},"t":{"docs":{},";":{"docs":{},"r":{"docs":{},"o":{"docs":{},"l":{"docs":{},"e":{"docs":{},"&":{"docs":{},"q":{"docs":{},"u":{"docs":{},"o":{"docs":{},"t":{"docs":{"callbacks.html":{"ref":"callbacks.html","tf":0.0051813471502590676}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"s":{"docs":{},"e":{"docs":{},"t":{"docs":{},"c":{"docs":{},"o":{"docs":{},"l":{"docs":{},"u":{"docs":{},"m":{"docs":{},"n":{"docs":{"changelog.html":{"ref":"changelog.html","tf":0.004784688995215311},"curd.html":{"ref":"curd.html","tf":0.0010741138560687433}},"(":{"docs":{},"&":{"docs":{},"q":{"docs":{},"u":{"docs":{},"o":{"docs":{},"t":{"docs":{},";":{"docs":{},"e":{"docs":{},"n":{"docs":{},"c":{"docs":{},"r":{"docs":{},"y":{"docs":{},"p":{"docs":{},"t":{"docs":{},"e":{"docs":{},"d":{"docs":{},"p":{"docs":{},"a":{"docs":{},"s":{"docs":{},"s":{"docs":{},"w":{"docs":{},"o":{"docs":{},"r":{"docs":{},"d":{"docs":{},"&":{"docs":{},"q":{"docs":{},"u":{"docs":{},"o":{"docs":{},"t":{"docs":{"changelog.html":{"ref":"changelog.html","tf":0.004784688995215311},"curd.html":{"ref":"curd.html","tf":0.0005370569280343716}}}}}}}}}}}}}}}}}}}}}}}},"i":{"docs":{},"d":{"docs":{},"&":{"docs":{},"q":{"docs":{},"u":{"docs":{},"o":{"docs":{},"t":{"docs":{"curd.html":{"ref":"curd.html","tf":0.0005370569280343716}}}}}}}}},"c":{"docs":{},"r":{"docs":{},"e":{"docs":{},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},"d":{"docs":{},"&":{"docs":{},"q":{"docs":{},"u":{"docs":{},"o":{"docs":{},"t":{"docs":{"development.html":{"ref":"development.html","tf":0.004807692307692308}}}}}}}}}}}}}}}}}}}}}}}}}}}},"a":{"docs":{},"r":{"docs":{},"c":{"docs":{},"h":{"docs":{},".":{"docs":{},"t":{"docs":{},"a":{"docs":{},"b":{"docs":{},"l":{"docs":{},"e":{"docs":{},"(":{"docs":{},"s":{"docs":{},"c":{"docs":{},"o":{"docs":{},"p":{"docs":{},"e":{"docs":{},".":{"docs":{},"t":{"docs":{},"a":{"docs":{},"b":{"docs":{},"l":{"docs":{},"e":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{"development.html":{"ref":"development.html","tf":0.004807692307692308}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"h":{"docs":{},"a":{"docs":{},"s":{"docs":{},"c":{"docs":{},"o":{"docs":{},"l":{"docs":{},"u":{"docs":{},"m":{"docs":{},"n":{"docs":{},"(":{"docs":{},"&":{"docs":{},"q":{"docs":{},"u":{"docs":{},"o":{"docs":{},"t":{"docs":{},";":{"docs":{},"c":{"docs":{},"r":{"docs":{},"e":{"docs":{},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},"d":{"docs":{},"&":{"docs":{},"q":{"docs":{},"u":{"docs":{},"o":{"docs":{},"t":{"docs":{"development.html":{"ref":"development.html","tf":0.004807692307692308}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"r":{"docs":{},"i":{"docs":{},"p":{"docs":{},"t":{"docs":{"changelog.html":{"ref":"changelog.html","tf":0.004784688995215311}}}}}},"h":{"docs":{},"e":{"docs":{},"m":{"docs":{},"a":{"docs":{"database.html":{"ref":"database.html","tf":0.006825938566552901}}}}}}},"e":{"docs":{},"t":{"docs":{"advanced.html":{"ref":"advanced.html","tf":0.0121580547112462},"changelog.html":{"ref":"changelog.html","tf":0.004784688995215311},"curd.html":{"ref":"curd.html","tf":0.01288936627282492},"models.html":{"ref":"models.html","tf":0.03232323232323232}}},"l":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{"associations.html":{"ref":"associations.html","tf":0.008714596949891068},"changelog.html":{"ref":"changelog.html","tf":0.009569377990430622},"curd.html":{"ref":"curd.html","tf":0.0322234156820623}}}}},"f":{"docs":{"callbacks.html":{"ref":"callbacks.html","tf":0.015544041450777202}}}}},"h":{"docs":{},"i":{"docs":{},"p":{"docs":{"curd.html":{"ref":"curd.html","tf":0.0005370569280343716}},"p":{"docs":{},"e":{"docs":{},"d":{"docs":{},"_":{"docs":{},"a":{"docs":{},"t":{"docs":{"advanced.html":{"ref":"advanced.html","tf":0.00303951367781155}}}}}}},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},"a":{"docs":{},"d":{"docs":{},"d":{"docs":{},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{"curd.html":{"ref":"curd.html","tf":0.0005370569280343716},"models.html":{"ref":"models.html","tf":0.00202020202020202}},"i":{"docs":{},"d":{"docs":{"models.html":{"ref":"models.html","tf":0.00404040404040404}}}}}}}}}}}}}}}}},"o":{"docs":{},"w":{"docs":{"advanced.html":{"ref":"advanced.html","tf":0.00911854103343465}}}}},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},"l":{"docs":{"advanced.html":{"ref":"advanced.html","tf":0.00303951367781155},"curd.html":{"ref":"curd.html","tf":0.0021482277121374865}}}}},"m":{"docs":{},"i":{"docs":{},"l":{"docs":{},"a":{"docs":{},"r":{"docs":{"curd.html":{"ref":"curd.html","tf":0.0010741138560687433}}}}}}},"z":{"docs":{},"e":{"docs":{"models.html":{"ref":"models.html","tf":0.00202020202020202}}}}},"o":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"h":{"docs":{"advanced.html":{"ref":"advanced.html","tf":0.00303951367781155}}}}}},"u":{"docs":{},"r":{"docs":{},"c":{"docs":{"associations.html":{"ref":"associations.html","tf":0.006535947712418301}},"e":{"docs":{},"&":{"docs":{},"a":{"docs":{},"p":{"docs":{},"o":{"docs":{},"s":{"docs":{},";":{"docs":{"associations.html":{"ref":"associations.html","tf":0.002178649237472767}}}}}}}}}}}},"f":{"docs":{},"t":{"docs":{"changelog.html":{"ref":"changelog.html","tf":0.004784688995215311},"curd.html":{"ref":"curd.html","tf":0.0026852846401718583},"models.html":{"ref":"models.html","tf":0.00202020202020202}}}}},"p":{"docs":{},"e":{"docs":{},"c":{"docs":{},"i":{"docs":{},"f":{"docs":{"advanced.html":{"ref":"advanced.html","tf":0.0060790273556231}},"i":{"docs":{"associations.html":{"ref":"associations.html","tf":0.015250544662309368},"curd.html":{"ref":"curd.html","tf":0.0037593984962406013}}}},"a":{"docs":{},"l":{"docs":{"changelog.html":{"ref":"changelog.html","tf":0.004784688995215311}}}}}}}},"u":{"docs":{},"p":{"docs":{},"p":{"docs":{},"o":{"docs":{},"r":{"docs":{},"t":{"docs":{"advanced.html":{"ref":"advanced.html","tf":0.00303951367781155},"associations.html":{"ref":"associations.html","tf":0.004357298474945534},"database.html":{"ref":"database.html","tf":0.006825938566552901}}}}}}},"r":{"docs":{},"e":{"docs":{"changelog.html":{"ref":"changelog.html","tf":0.004784688995215311}}}},"m":{"docs":{},"(":{"docs":{},"a":{"docs":{},"m":{"docs":{},"o":{"docs":{},"u":{"docs":{},"n":{"docs":{},"t":{"docs":{"curd.html":{"ref":"curd.html","tf":0.001611170784103115}}}}}}}}}},"f":{"docs":{},"f":{"docs":{},"i":{"docs":{},"x":{"docs":{"database.html":{"ref":"database.html","tf":0.0034129692832764505}}}}}},"b":{"docs":{},"s":{"docs":{},"c":{"docs":{},"r":{"docs":{},"i":{"docs":{},"b":{"docs":{"models.html":{"ref":"models.html","tf":0.00202020202020202}}}}}}}}},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{"associations.html":{"ref":"associations.html","tf":0.002178649237472767},"callbacks.html":{"ref":"callbacks.html","tf":0.0051813471502590676},"models.html":{"ref":"models.html","tf":0.00202020202020202}}},"p":{"docs":{},"l":{"docs":{"changelog.html":{"ref":"changelog.html","tf":0.004784688995215311}}}}},"v":{"docs":{},"e":{"docs":{"callbacks.html":{"ref":"callbacks.html","tf":0.031088082901554404},"curd.html":{"ref":"curd.html","tf":0.0021482277121374865},"models.html":{"ref":"models.html","tf":0.00202020202020202}},"/":{"docs":{},"d":{"docs":{},"e":{"docs":{},"l":{"docs":{},"e":{"docs":{},"t":{"docs":{"callbacks.html":{"ref":"callbacks.html","tf":0.0051813471502590676}}}}}}}}}}},"_":{"docs":{},"k":{"docs":{},"_":{"docs":{},"u":{"docs":{"changelog.html":{"ref":"changelog.html","tf":0.004784688995215311}}}}}},"k":{"docs":{},"u":{"docs":{"changelog.html":{"ref":"changelog.html","tf":0.004784688995215311}}},"i":{"docs":{},"p":{"docs":{"curd.html":{"ref":"curd.html","tf":0.0005370569280343716}}}}},"l":{"docs":{},"i":{"docs":{},"c":{"docs":{},"e":{"docs":{"curd.html":{"ref":"curd.html","tf":0.0010741138560687433}}}}}},"s":{"docs":{},"l":{"docs":{},"m":{"docs":{},"o":{"docs":{},"d":{"docs":{},"e":{"docs":{},"=":{"docs":{},"d":{"docs":{},"i":{"docs":{},"s":{"docs":{},"a":{"docs":{},"b":{"docs":{},"l":{"docs":{},"e":{"docs":{},"&":{"docs":{},"q":{"docs":{},"u":{"docs":{},"o":{"docs":{},"t":{"docs":{"database.html":{"ref":"database.html","tf":0.0034129692832764505},"development.html":{"ref":"development.html","tf":0.004807692307692308}}}}}}}}}}}}}}}}}}}}},"n":{"docs":{},"a":{"docs":{},"k":{"docs":{},"e":{"docs":{"models.html":{"ref":"models.html","tf":0.00404040404040404}}}}}}},"t":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.008}}}},"x":{"docs":{},"t":{"docs":{"database.html":{"ref":"database.html","tf":0.0034129692832764505}}}}},"r":{"docs":{},"a":{"docs":{},"n":{"docs":{},"s":{"docs":{},"a":{"docs":{},"c":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.008},"advanced.html":{"ref":"advanced.html","tf":0.0243161094224924},"callbacks.html":{"ref":"callbacks.html","tf":0.05181347150259067},"curd.html":{"ref":"curd.html","tf":0.0005370569280343716}}}}}}}},"u":{"docs":{},"e":{"docs":{"curd.html":{"ref":"curd.html","tf":0.0010741138560687433},"models.html":{"ref":"models.html","tf":0.00202020202020202}},")":{"docs":{},".":{"docs":{},"f":{"docs":{},"i":{"docs":{},"n":{"docs":{},"d":{"docs":{},"(":{"docs":{},"&":{"docs":{},"a":{"docs":{},"m":{"docs":{},"p":{"docs":{},";":{"docs":{},"u":{"docs":{},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},"s":{"2":{"docs":{"curd.html":{"ref":"curd.html","tf":0.0005370569280343716}}},"docs":{}}}}}}}}}}}}}}}},"u":{"docs":{},"p":{"docs":{},"d":{"docs":{},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},"(":{"docs":{},"&":{"docs":{},"q":{"docs":{},"u":{"docs":{},"o":{"docs":{},"t":{"docs":{},";":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},"&":{"docs":{},"q":{"docs":{},"u":{"docs":{},"o":{"docs":{},"t":{"docs":{"curd.html":{"ref":"curd.html","tf":0.0005370569280343716}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"y":{"docs":{},"p":{"docs":{},"e":{"docs":{"./":{"ref":"./","tf":0.008},"advanced.html":{"ref":"advanced.html","tf":0.0060790273556231},"associations.html":{"ref":"associations.html","tf":0.05664488017429194},"changelog.html":{"ref":"changelog.html","tf":0.009569377990430622},"curd.html":{"ref":"curd.html","tf":0.0021482277121374865},"database.html":{"ref":"database.html","tf":0.010238907849829351},"development.html":{"ref":"development.html","tf":0.004807692307692308},"models.html":{"ref":"models.html","tf":0.03232323232323232}}}}},"a":{"docs":{},"b":{"docs":{},"l":{"docs":{"advanced.html":{"ref":"advanced.html","tf":0.00303951367781155},"associations.html":{"ref":"associations.html","tf":0.002178649237472767},"curd.html":{"ref":"curd.html","tf":0.001611170784103115},"database.html":{"ref":"database.html","tf":0.05802047781569966},"development.html":{"ref":"development.html","tf":0.004807692307692308},"models.html":{"ref":"models.html","tf":0.01616161616161616}},"e":{"docs":{},"(":{"docs":{},"i":{"docs":{},"d":{"docs":{"database.html":{"ref":"database.html","tf":0.0034129692832764505}}}}},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{"models.html":{"ref":"models.html","tf":0.006060606060606061}}}}}}}},"g":{"docs":{"changelog.html":{"ref":"changelog.html","tf":0.004784688995215311},"curd.html":{"ref":"curd.html","tf":0.0005370569280343716},"models.html":{"ref":"models.html","tf":0.006060606060606061}}}},"i":{"docs":{},"m":{"docs":{},"e":{"docs":{"changelog.html":{"ref":"changelog.html","tf":0.009569377990430622},"curd.html":{"ref":"curd.html","tf":0.0010741138560687433},"models.html":{"ref":"models.html","tf":0.024242424242424242}},".":{"docs":{},"n":{"docs":{},"o":{"docs":{},"w":{"docs":{"advanced.html":{"ref":"advanced.html","tf":0.00303951367781155},"curd.html":{"ref":"curd.html","tf":0.0005370569280343716},"models.html":{"ref":"models.html","tf":0.00202020202020202}}}}},"t":{"docs":{},"i":{"docs":{},"m":{"docs":{"changelog.html":{"ref":"changelog.html","tf":0.004784688995215311},"curd.html":{"ref":"curd.html","tf":0.0005370569280343716},"database.html":{"ref":"database.html","tf":0.0034129692832764505},"models.html":{"ref":"models.html","tf":0.01616161616161616}}}}}},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"m":{"docs":{},"p":{"docs":{"callbacks.html":{"ref":"callbacks.html","tf":0.010362694300518135},"curd.html":{"ref":"curd.html","tf":0.0005370569280343716}}}}}}}}}},"x":{"docs":{"advanced.html":{"ref":"advanced.html","tf":0.00911854103343465}},".":{"docs":{},"c":{"docs":{},"o":{"docs":{},"m":{"docs":{},"m":{"docs":{},"i":{"docs":{},"t":{"docs":{"advanced.html":{"ref":"advanced.html","tf":0.0060790273556231}}}}}}},"r":{"docs":{},"e":{"docs":{},"a":{"docs":{},"t":{"docs":{"advanced.html":{"ref":"advanced.html","tf":0.00303951367781155}},"e":{"docs":{},"(":{"docs":{},"&":{"docs":{},"a":{"docs":{},"m":{"docs":{},"p":{"docs":{},";":{"docs":{},"a":{"docs":{},"n":{"docs":{},"i":{"docs":{},"m":{"docs":{},"a":{"docs":{},"l":{"docs":{},"{":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{"advanced.html":{"ref":"advanced.html","tf":0.0060790273556231}}}}}}}}}}}}}}}}}}}}}}}},"r":{"docs":{},"o":{"docs":{},"l":{"docs":{},"l":{"docs":{},"b":{"docs":{},"a":{"docs":{},"c":{"docs":{},"k":{"docs":{"advanced.html":{"ref":"advanced.html","tf":0.00911854103343465}}}}}}}}}},"m":{"docs":{},"o":{"docs":{},"d":{"docs":{},"e":{"docs":{},"l":{"docs":{},"(":{"docs":{},"u":{"docs":{},")":{"docs":{},".":{"docs":{},"u":{"docs":{},"p":{"docs":{},"d":{"docs":{},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},"(":{"docs":{},"&":{"docs":{},"q":{"docs":{},"u":{"docs":{},"o":{"docs":{},"t":{"docs":{},";":{"docs":{},"r":{"docs":{},"o":{"docs":{},"l":{"docs":{},"e":{"docs":{},"&":{"docs":{},"q":{"docs":{},"u":{"docs":{},"o":{"docs":{},"t":{"docs":{"callbacks.html":{"ref":"callbacks.html","tf":0.0051813471502590676}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"h":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{"associations.html":{"ref":"associations.html","tf":0.002178649237472767}}}}},"o":{"docs":{},"s":{"docs":{},"e":{"docs":{"associations.html":{"ref":"associations.html","tf":0.006535947712418301},"callbacks.html":{"ref":"callbacks.html","tf":0.0051813471502590676},"changelog.html":{"ref":"changelog.html","tf":0.004784688995215311},"curd.html":{"ref":"curd.html","tf":0.0026852846401718583},"database.html":{"ref":"database.html","tf":0.0034129692832764505},"models.html":{"ref":"models.html","tf":0.00202020202020202}}}}},"r":{"docs":{},"o":{"docs":{},"w":{"docs":{"associations.html":{"ref":"associations.html","tf":0.002178649237472767}}}}}},"o":{"docs":{},"y":{"docs":{"associations.html":{"ref":"associations.html","tf":0.010893246187363835}}},"d":{"docs":{},"b":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{"changelog.html":{"ref":"changelog.html","tf":0.004784688995215311}}}}}},"a":{"docs":{},"y":{"docs":{},")":{"docs":{},".":{"docs":{},"f":{"docs":{},"i":{"docs":{},"n":{"docs":{},"d":{"docs":{},"(":{"docs":{},"&":{"docs":{},"a":{"docs":{},"m":{"docs":{},"p":{"docs":{},";":{"docs":{},"u":{"docs":{},"s":{"docs":{"curd.html":{"ref":"curd.html","tf":0.0005370569280343716}}}}}}}}}}}}}}}}}}},"t":{"docs":{},"a":{"docs":{},"l":{"docs":{"curd.html":{"ref":"curd.html","tf":0.0005370569280343716}},"&":{"docs":{},"q":{"docs":{},"u":{"docs":{},"o":{"docs":{},"t":{"docs":{},";":{"docs":{},")":{"docs":{},".":{"docs":{},"g":{"docs":{},"r":{"docs":{},"o":{"docs":{},"u":{"docs":{},"p":{"docs":{},"(":{"docs":{},"&":{"docs":{},"q":{"docs":{},"u":{"docs":{},"o":{"docs":{},"t":{"docs":{},";":{"docs":{},"d":{"docs":{},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},"(":{"docs":{},"c":{"docs":{},"r":{"docs":{},"e":{"docs":{},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},"d":{"docs":{},"_":{"docs":{},"a":{"docs":{},"t":{"docs":{},")":{"docs":{},"&":{"docs":{},"q":{"docs":{},"u":{"docs":{},"o":{"docs":{},"t":{"docs":{},";":{"docs":{},")":{"docs":{},".":{"docs":{},"h":{"docs":{},"a":{"docs":{},"v":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},"(":{"docs":{},"&":{"docs":{},"q":{"docs":{},"u":{"docs":{},"o":{"docs":{},"t":{"docs":{},";":{"docs":{},"s":{"docs":{},"u":{"docs":{},"m":{"docs":{},"(":{"docs":{},"a":{"docs":{},"m":{"docs":{},"o":{"docs":{},"u":{"docs":{},"n":{"docs":{},"t":{"docs":{"curd.html":{"ref":"curd.html","tf":0.0010741138560687433}}}}}}}}}}}}}}}}}}}}}}}}},"r":{"docs":{},"o":{"docs":{},"w":{"docs":{"curd.html":{"ref":"curd.html","tf":0.0005370569280343716}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"u":{"docs":{"./":{"ref":"./","tf":0.008},"callbacks.html":{"ref":"callbacks.html","tf":0.02072538860103627},"models.html":{"ref":"models.html","tf":0.00202020202020202}},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.008},"associations.html":{"ref":"associations.html","tf":0.013071895424836602},"models.html":{"ref":"models.html","tf":0.010101010101010102}}}}},"n":{"docs":{},"d":{"docs":{},"e":{"docs":{},"r":{"docs":{"./":{"ref":"./","tf":0.008}}}}},"l":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{"callbacks.html":{"ref":"callbacks.html","tf":0.0051813471502590676}}}}}},"f":{"docs":{},"o":{"docs":{},"u":{"docs":{},"n":{"docs":{},"d":{"docs":{"curd.html":{"ref":"curd.html","tf":0.00322234156820623}}}}}}},"k":{"docs":{},"n":{"docs":{},"o":{"docs":{},"w":{"docs":{},"n":{"docs":{"curd.html":{"ref":"curd.html","tf":0.0010741138560687433}},")":{"docs":{},"&":{"docs":{},"q":{"docs":{},"u":{"docs":{},"o":{"docs":{},"t":{"docs":{},";":{"docs":{},")":{"docs":{},".":{"docs":{},"d":{"docs":{},"e":{"docs":{},"l":{"docs":{},"e":{"docs":{},"t":{"docs":{},"e":{"docs":{},"(":{"docs":{},"&":{"docs":{},"a":{"docs":{},"m":{"docs":{},"p":{"docs":{},";":{"docs":{},"e":{"docs":{},"m":{"docs":{},"a":{"docs":{},"i":{"docs":{},"l":{"docs":{"curd.html":{"ref":"curd.html","tf":0.0005370569280343716}}}}}}}}}}}}}}}}}}},"u":{"docs":{},"p":{"docs":{},"d":{"docs":{},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},"(":{"docs":{},"&":{"docs":{},"q":{"docs":{},"u":{"docs":{},"o":{"docs":{},"t":{"docs":{},";":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{"curd.html":{"ref":"curd.html","tf":0.0005370569280343716}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"s":{"docs":{},"c":{"docs":{},"o":{"docs":{},"p":{"docs":{"curd.html":{"ref":"curd.html","tf":0.0010741138560687433}}}}},"u":{"docs":{},"p":{"docs":{},"p":{"docs":{},"o":{"docs":{},"r":{"docs":{},"t":{"docs":{"database.html":{"ref":"database.html","tf":0.010238907849829351}}}}}}}}},"i":{"docs":{},"q":{"docs":{},"u":{"docs":{"database.html":{"ref":"database.html","tf":0.006825938566552901},"models.html":{"ref":"models.html","tf":0.00404040404040404}},"e":{"docs":{},"_":{"docs":{},"i":{"docs":{},"n":{"docs":{},"d":{"docs":{},"e":{"docs":{},"x":{"docs":{"models.html":{"ref":"models.html","tf":0.00404040404040404}}}}}}}}}}}},"u":{"docs":{},"s":{"docs":{"database.html":{"ref":"database.html","tf":0.0034129692832764505}}}}},"p":{"docs":{},"d":{"docs":{},"a":{"docs":{"curd.html":{"ref":"curd.html","tf":0.0005370569280343716}},"t":{"docs":{"./":{"ref":"./","tf":0.016},"callbacks.html":{"ref":"callbacks.html","tf":0.031088082901554404},"changelog.html":{"ref":"changelog.html","tf":0.019138755980861243},"curd.html":{"ref":"curd.html","tf":0.03490870032223416},"database.html":{"ref":"database.html","tf":0.0034129692832764505},"development.html":{"ref":"development.html","tf":0.009615384615384616},"models.html":{"ref":"models.html","tf":0.006060606060606061}},"e":{"docs":{},"d":{"docs":{},"a":{"docs":{},"t":{"docs":{"callbacks.html":{"ref":"callbacks.html","tf":0.010362694300518135},"curd.html":{"ref":"curd.html","tf":0.0005370569280343716},"models.html":{"ref":"models.html","tf":0.01616161616161616}}}},"_":{"docs":{},"a":{"docs":{},"t":{"docs":{"curd.html":{"ref":"curd.html","tf":0.001611170784103115}},"=":{"docs":{},"&":{"docs":{},"a":{"docs":{},"p":{"docs":{},"o":{"docs":{},"s":{"docs":{},";":{"2":{"0":{"1":{"3":{"docs":{"curd.html":{"ref":"curd.html","tf":0.0026852846401718583}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}}}}}}}}}}}},"&":{"docs":{},"q":{"docs":{},"u":{"docs":{},"o":{"docs":{},"t":{"docs":{},";":{"docs":{},")":{"docs":{},".":{"docs":{},"f":{"docs":{},"i":{"docs":{},"r":{"docs":{},"s":{"docs":{},"t":{"docs":{},"(":{"docs":{},"&":{"docs":{},"a":{"docs":{},"m":{"docs":{},"p":{"docs":{},";":{"docs":{},"u":{"docs":{},"s":{"docs":{"curd.html":{"ref":"curd.html","tf":0.0005370569280343716}}}}}}}}}}}}}}}}}}}}}}},"c":{"docs":{},"o":{"docs":{},"l":{"docs":{},"u":{"docs":{},"m":{"docs":{},"n":{"docs":{"curd.html":{"ref":"curd.html","tf":0.0010741138560687433}}}}}}},"r":{"docs":{"development.html":{"ref":"development.html","tf":0.014423076923076924}},"e":{"docs":{},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},"d":{"docs":{},"(":{"docs":{},"s":{"docs":{},"c":{"docs":{},"o":{"docs":{},"p":{"docs":{"development.html":{"ref":"development.html","tf":0.004807692307692308}}}}}}}}}}}}}},"t":{"docs":{},"a":{"docs":{},"b":{"docs":{},"l":{"docs":{},"e":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{"development.html":{"ref":"development.html","tf":0.004807692307692308}},"e":{"docs":{},"(":{"docs":{},"s":{"docs":{},"c":{"docs":{},"o":{"docs":{},"p":{"docs":{"development.html":{"ref":"development.html","tf":0.004807692307692308}}}}}}}}}}}}}}}}}}}},"g":{"docs":{},"r":{"docs":{},"a":{"docs":{},"d":{"docs":{"./":{"ref":"./","tf":0.008}}}}}},"p":{"docs":{},"e":{"docs":{},"r":{"docs":{"changelog.html":{"ref":"changelog.html","tf":0.009569377990430622}}}}}},"s":{"docs":{"advanced.html":{"ref":"advanced.html","tf":0.00911854103343465},"associations.html":{"ref":"associations.html","tf":0.004357298474945534},"callbacks.html":{"ref":"callbacks.html","tf":0.0051813471502590676},"changelog.html":{"ref":"changelog.html","tf":0.023923444976076555},"curd.html":{"ref":"curd.html","tf":0.005907626208378088},"development.html":{"ref":"development.html","tf":0.004807692307692308},"models.html":{"ref":"models.html","tf":0.026262626262626262}},"a":{"docs":{},"g":{"docs":{"advanced.html":{"ref":"advanced.html","tf":0.00303951367781155}}}},"e":{"docs":{},"r":{"docs":{"advanced.html":{"ref":"advanced.html","tf":0.0121580547112462},"associations.html":{"ref":"associations.html","tf":0.037037037037037035},"callbacks.html":{"ref":"callbacks.html","tf":0.02072538860103627},"changelog.html":{"ref":"changelog.html","tf":0.019138755980861243},"curd.html":{"ref":"curd.html","tf":0.04833512352309345},"database.html":{"ref":"database.html","tf":0.020477815699658702},"models.html":{"ref":"models.html","tf":0.020202020202020204}},"s":{"1":{"docs":{"curd.html":{"ref":"curd.html","tf":0.001611170784103115}}},"2":{"docs":{"curd.html":{"ref":"curd.html","tf":0.001611170784103115}}},"docs":{},";":{"docs":{},"&":{"docs":{},"q":{"docs":{},"u":{"docs":{},"o":{"docs":{},"t":{"docs":{"advanced.html":{"ref":"advanced.html","tf":0.00303951367781155}}}}}}}},".":{"docs":{},"i":{"docs":{},"d":{"docs":{"curd.html":{"ref":"curd.html","tf":0.0005370569280343716}},"&":{"docs":{},"q":{"docs":{},"u":{"docs":{},"o":{"docs":{},"t":{"docs":{},";":{"docs":{},")":{"docs":{},".":{"docs":{},"r":{"docs":{},"o":{"docs":{},"w":{"docs":{"curd.html":{"ref":"curd.html","tf":0.0005370569280343716}}}}},"s":{"docs":{},"c":{"docs":{},"a":{"docs":{},"n":{"docs":{},"(":{"docs":{},"&":{"docs":{},"a":{"docs":{},"m":{"docs":{},"p":{"docs":{},";":{"docs":{},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"u":{"docs":{},"l":{"docs":{},"t":{"docs":{"curd.html":{"ref":"curd.html","tf":0.0005370569280343716}}}}}}}}}}}}}}}}}},"w":{"docs":{},"h":{"docs":{},"e":{"docs":{},"r":{"docs":{},"e":{"docs":{},"(":{"docs":{},"&":{"docs":{},"q":{"docs":{},"u":{"docs":{},"o":{"docs":{},"t":{"docs":{},";":{"docs":{},"c":{"docs":{},"r":{"docs":{},"e":{"docs":{},"d":{"docs":{},"i":{"docs":{},"t":{"docs":{},"_":{"docs":{},"c":{"docs":{},"a":{"docs":{},"r":{"docs":{},"d":{"docs":{},"s":{"docs":{},".":{"docs":{},"n":{"docs":{},"u":{"docs":{},"m":{"docs":{},"b":{"docs":{"curd.html":{"ref":"curd.html","tf":0.0005370569280343716}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"&":{"docs":{},"a":{"docs":{},"p":{"docs":{},"o":{"docs":{},"s":{"docs":{},";":{"docs":{"associations.html":{"ref":"associations.html","tf":0.010893246187363835},"callbacks.html":{"ref":"callbacks.html","tf":0.0051813471502590676},"curd.html":{"ref":"curd.html","tf":0.0005370569280343716},"models.html":{"ref":"models.html","tf":0.00202020202020202}}}}}}},"q":{"docs":{},"u":{"docs":{},"o":{"docs":{},"t":{"docs":{"callbacks.html":{"ref":"callbacks.html","tf":0.0051813471502590676}}}}}}},"_":{"docs":{},"i":{"docs":{},"d":{"docs":{"associations.html":{"ref":"associations.html","tf":0.004357298474945534}},",":{"docs":{},"e":{"docs":{},"m":{"docs":{},"a":{"docs":{},"i":{"docs":{},"l":{"docs":{"curd.html":{"ref":"curd.html","tf":0.0010741138560687433}}}}}}}}}},"l":{"docs":{},"a":{"docs":{},"n":{"docs":{},"g":{"docs":{},"u":{"docs":{},"a":{"docs":{},"g":{"docs":{"associations.html":{"ref":"associations.html","tf":0.002178649237472767},"curd.html":{"ref":"curd.html","tf":0.0010741138560687433}}}}}}}}}},"i":{"docs":{},"d":{"docs":{"associations.html":{"ref":"associations.html","tf":0.013071895424836602},"models.html":{"ref":"models.html","tf":0.00808080808080808}}}},"r":{"docs":{},"e":{"docs":{},"f":{"docs":{"associations.html":{"ref":"associations.html","tf":0.004357298474945534}}}}},".":{"docs":{},"e":{"docs":{},"n":{"docs":{},"c":{"docs":{},"r":{"docs":{},"y":{"docs":{},"p":{"docs":{},"t":{"docs":{},"e":{"docs":{},"d":{"docs":{},"p":{"docs":{},"a":{"docs":{},"s":{"docs":{},"s":{"docs":{},"w":{"docs":{},"o":{"docs":{},"r":{"docs":{},"d":{"docs":{"changelog.html":{"ref":"changelog.html","tf":0.004784688995215311}}}}}}}}}}}}}}}}}}},"a":{"docs":{},"g":{"docs":{"curd.html":{"ref":"curd.html","tf":0.0005370569280343716}}}},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{"curd.html":{"ref":"curd.html","tf":0.0005370569280343716}}}}}},"{":{"docs":{},"a":{"docs":{},"g":{"docs":{"curd.html":{"ref":"curd.html","tf":0.0005370569280343716}}}},"i":{"docs":{},"d":{"docs":{"curd.html":{"ref":"curd.html","tf":0.0053705692803437165}}}},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{"curd.html":{"ref":"curd.html","tf":0.0037593984962406013}}}}}},"`":{"docs":{},"&":{"docs":{},"a":{"docs":{},"p":{"docs":{},"o":{"docs":{},"s":{"docs":{},";":{"docs":{"database.html":{"ref":"database.html","tf":0.010238907849829351},"models.html":{"ref":"models.html","tf":0.00202020202020202}}}}}}}}}}}},".":{"docs":{},"i":{"docs":{},"d":{"docs":{"callbacks.html":{"ref":"callbacks.html","tf":0.0051813471502590676}}}},"r":{"docs":{},"e":{"docs":{},"a":{"docs":{},"d":{"docs":{},"o":{"docs":{},"n":{"docs":{},"l":{"docs":{},"i":{"docs":{"callbacks.html":{"ref":"callbacks.html","tf":0.0051813471502590676}}}}}}}}},"o":{"docs":{},"l":{"docs":{"models.html":{"ref":"models.html","tf":0.00202020202020202}}}}}},"g":{"docs":{},"l":{"docs":{},"i":{"docs":{"changelog.html":{"ref":"changelog.html","tf":0.004784688995215311}}}}},"r":{"docs":{},"i":{"docs":{"changelog.html":{"ref":"changelog.html","tf":0.004784688995215311}}}},"u":{"docs":{},"i":{"docs":{},"d":{"docs":{},".":{"docs":{},"n":{"docs":{},"e":{"docs":{},"w":{"docs":{"curd.html":{"ref":"curd.html","tf":0.0005370569280343716}}}}}}}}}},"v":{"1":{"docs":{},".":{"0":{"docs":{"./":{"ref":"./","tf":0.008},"changelog.html":{"ref":"changelog.html","tf":0.004784688995215311}}},"docs":{}}},"docs":{},"a":{"docs":{},"r":{"docs":{"./":{"ref":"./","tf":0.008},"advanced.html":{"ref":"advanced.html","tf":0.0060790273556231},"associations.html":{"ref":"associations.html","tf":0.004357298474945534},"changelog.html":{"ref":"changelog.html","tf":0.004784688995215311},"curd.html":{"ref":"curd.html","tf":0.0026852846401718583}},"i":{"docs":{},"a":{"docs":{},"b":{"docs":{},"l":{"docs":{"associations.html":{"ref":"associations.html","tf":0.002178649237472767}},"e":{"docs":{},"&":{"docs":{},"a":{"docs":{},"p":{"docs":{},"o":{"docs":{},"s":{"docs":{},";":{"docs":{"associations.html":{"ref":"associations.html","tf":0.002178649237472767}}}}}}}}}}}}}},"l":{"docs":{},"i":{"docs":{},"d":{"docs":{"associations.html":{"ref":"associations.html","tf":0.002178649237472767},"curd.html":{"ref":"curd.html","tf":0.0005370569280343716}}}},"u":{"docs":{"callbacks.html":{"ref":"callbacks.html","tf":0.010362694300518135},"changelog.html":{"ref":"changelog.html","tf":0.004784688995215311},"curd.html":{"ref":"curd.html","tf":0.01611170784103115},"database.html":{"ref":"database.html","tf":0.0034129692832764505},"models.html":{"ref":"models.html","tf":0.00404040404040404}},"e":{"docs":{},"s":{"docs":{},"(":{"docs":{},"&":{"docs":{},"a":{"docs":{},"p":{"docs":{},"o":{"docs":{},"s":{"docs":{},";":{"9":{"9":{"docs":{},"&":{"docs":{},"a":{"docs":{},"p":{"docs":{},"o":{"docs":{"curd.html":{"ref":"curd.html","tf":0.0005370569280343716}}}}}}},"docs":{}},"docs":{}}}}}}}}}}}}},"i":{"docs":{},"s":{"docs":{},"i":{"docs":{},"b":{"docs":{},"l":{"docs":{"callbacks.html":{"ref":"callbacks.html","tf":0.0051813471502590676}}}}}},"e":{"docs":{},"w":{"docs":{"development.html":{"ref":"development.html","tf":0.009615384615384616}}}}},"e":{"docs":{},"r":{"docs":{},"s":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{"models.html":{"ref":"models.html","tf":0.00404040404040404}}}}}}}}},"w":{"docs":{},"o":{"docs":{},"s":{"docs":{},"m":{"docs":{},"v":{"docs":{},"p":{"docs":{},"@":{"docs":{},"g":{"docs":{},"m":{"docs":{},"a":{"docs":{},"i":{"docs":{},"l":{"docs":{},".":{"docs":{},"c":{"docs":{},"o":{"docs":{},"m":{"docs":{"./":{"ref":"./","tf":0.008}}}}}}}}}}}}}}}},"r":{"docs":{},"l":{"docs":{},"d":{"docs":{},"&":{"docs":{},"q":{"docs":{},"u":{"docs":{},"o":{"docs":{},"t":{"docs":{},";":{"docs":{},")":{"docs":{},".":{"docs":{},"f":{"docs":{},"i":{"docs":{},"r":{"docs":{},"s":{"docs":{},"t":{"docs":{},"(":{"docs":{},"&":{"docs":{},"a":{"docs":{},"m":{"docs":{},"p":{"docs":{},";":{"docs":{},"u":{"docs":{},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},")":{"docs":{},".":{"docs":{},"r":{"docs":{},"e":{"docs":{},"c":{"docs":{},"o":{"docs":{},"r":{"docs":{},"d":{"docs":{},"n":{"docs":{},"o":{"docs":{},"t":{"docs":{},"f":{"docs":{},"o":{"docs":{},"u":{"docs":{},"n":{"docs":{},"d":{"docs":{"advanced.html":{"ref":"advanced.html","tf":0.00303951367781155}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"k":{"docs":{"changelog.html":{"ref":"changelog.html","tf":0.004784688995215311},"curd.html":{"ref":"curd.html","tf":0.001611170784103115},"models.html":{"ref":"models.html","tf":0.00202020202020202}}}},"n":{"docs":{},"&":{"docs":{},"a":{"docs":{},"p":{"docs":{},"o":{"docs":{},"s":{"docs":{},";":{"docs":{},"t":{"docs":{"associations.html":{"ref":"associations.html","tf":0.004357298474945534},"changelog.html":{"ref":"changelog.html","tf":0.009569377990430622},"curd.html":{"ref":"curd.html","tf":0.0010741138560687433},"database.html":{"ref":"database.html","tf":0.0034129692832764505},"models.html":{"ref":"models.html","tf":0.00404040404040404}}}}}}}}}}},"r":{"docs":{},"i":{"docs":{},"t":{"docs":{},"e":{"docs":{"./":{"ref":"./","tf":0.008},"curd.html":{"ref":"curd.html","tf":0.0005370569280343716},"database.html":{"ref":"database.html","tf":0.010238907849829351},"development.html":{"ref":"development.html","tf":0.014423076923076924},"models.html":{"ref":"models.html","tf":0.00202020202020202}}}}},"a":{"docs":{},"p":{"docs":{"database.html":{"ref":"database.html","tf":0.0034129692832764505}}}}},"i":{"docs":{},"t":{"docs":{},"h":{"docs":{},"i":{"docs":{},"n":{"docs":{"advanced.html":{"ref":"advanced.html","tf":0.0060790273556231}}}},"o":{"docs":{},"u":{"docs":{},"t":{"docs":{"curd.html":{"ref":"curd.html","tf":0.0010741138560687433}}}}}}}},"a":{"docs":{},"n":{"docs":{},"t":{"docs":{"callbacks.html":{"ref":"callbacks.html","tf":0.0051813471502590676},"curd.html":{"ref":"curd.html","tf":0.0037593984962406013},"development.html":{"ref":"development.html","tf":0.004807692307692308},"models.html":{"ref":"models.html","tf":0.00202020202020202}}}},"r":{"docs":{},"n":{"docs":{"curd.html":{"ref":"curd.html","tf":0.0010741138560687433},"database.html":{"ref":"database.html","tf":0.0034129692832764505}}}}}},"z":{"docs":{},"e":{"docs":{},"r":{"docs":{},"o":{"docs":{"curd.html":{"ref":"curd.html","tf":0.0005370569280343716}}}}}}},"length":1506},"corpusTokens":["0","0001","01","01&apo","02","02&apo","02")).update("deleted_at"","1","1"","1").updatecolumn("quantity"","1).find(&users2","1,2,3","10","100","100).row","100).scan(&result","1000","1000"","10:23"","11","111","112","11}).updates(map[string]interface{}{"name"","123","17","18","18}).rowsaffect","1st","2","2&apo","2"","2").find(&users).count(&count","2"}).find(&us","20","20").find(&us","20).delete(&us","20).firstorinit(&us","2000","20}).find(&us","20}).first(&us","20}).firstorcreate(&us","20}).firstorinit(&us","21","21:34:10&apo","22","22}).find(&us","23","255","29","2@example.com"","2@example@example.com"","2nd","3","3).scan(&result","30","30}).firstorcreate(&us","30}).firstorinit(&us","3rd","42).row","4th","99","_","_draft","abil","abov","accord","account","activ","active=tru","actived=fals","add","address","address1","address2","address{address1","advanc","affect","aftercr","aftercreate(scop","aftercreate(tx","afterdelet","afterfind","afterqueri","aftersav","afterupd","ag","age").find(&us","age").row","age").where("nam","age=100","age=18","age=30","age_of_the_beast","aim","alert","alreadi","amount","amountgreaterthan1000(db","amp","amp;ag","amp;email","amp;imag","amp;nam","amp;ord","amp;product","amp;us","anim","animal.nam","animalid","animals("age"","animal{ag","anoth","api","apos;0001","apos;100&apo","apos;2&apo","apos;2013","apos;admin&apo","apos;db&apo","apos;en&apo","apos;galeone&apo","apos;jinzhu","apos;jinzhu&apo","apos;jinzhu'").or(map[string]interface{}{"name"","apos;jinzhu'").or(user{nam","apos;non_existing&apo","apos;super_admin&apo","apos;tx&apo","apos;user_languages&apo","apos;zh&apo","append","applic","architectur","argument","assgin","assign","associ","attr","attribut","author","auto","automat","automigr","avail","avoid","back","base","batch","bcrypt.generatefrompassword(user.password","beast_id","befor","before/aft","beforecr","beforecreate(scop","beforedelet","beforesav","beforesave(scop","beforeupd","beforeupdate(scop","begin","belong","belongs_to","below","between","billingaddress","billingaddressid","birthday","birthday='2016","blank","bool","break","bridg","builder","built","call","callback","cancel","card","carefulli","case","cat","chain","chainabl","chang","changelog","check","clear","coalesce(age,'42&apo","cod","code","column","column'","combin","come","commit","common","composit","condit","conflict","conflict").create(&product","connect","contain","contributor","convent","convert","correctli","count","creat","create/save/update/delete/find","createanimals(db","created_at","createdat","credit","credit_card","credit_cards.user_id","creditcard","creditcard'","crud","current","custom","customizeaccount","customizeperson","data","databa","databas","database'","database"","date","day_of_the_beast","db","db'","db.automigrate(&us","db.begin","db.callback().create().after("gorm:create").register("update_created_at"","db.callback().create().before("gorm:create").after("gorm:before_create").register("my_plugin:before_create"","db.callback().create().before("gorm:create").register("update_created_at"","db.callback().create().register("update_created_at"","db.callback().create().remove("gorm:create"","db.callback().create().replace("gorm:create"","db.callback().delete().after("gorm:delete").register("my_plugin:after_delete"","db.callback().query().after("gorm:query").register("my_plugin:after_query"","db.callback().rowquery().register("publish:update_table_name"","db.callback().update().before("gorm:update").register("my_plugin:before_update"","db.create(&anim","db.create(&product{cod","db.create(&us","db.createtable(&us","db.db","db.db().ping","db.db().setmaxidleconns(10","db.db().setmaxopenconns(100","db.debug().where("nam","db.delete(&email","db.delete(&product","db.delete(&us","db.delete(email","db.droptable(&us","db.droptable("users"","db.droptableifexists(&us","db.exec("drop","db.exec("upd","db.find(&us","db.find(&users).pluck("age"","db.first(&product","db.first(&us","db.first(&user).limit(10).find(&users).geterror","db.firstorcreate(&us","db.firstorinit(&us","db.hastable(&us","db.hastable("users"","db.joins("join","db.last(&us","db.limit(10).find(&users1).limit","db.limit(3).find(&us","db.logmode(fals","db.logmode(tru","db.model(&product).update("price"","db.model(&product).updatecolumn("quantity"","db.model(&product).updates(map[string]interface{}{"price"","db.model(&product).where("quant","db.model(&user).association("languages"","db.model(&user).association("languages").append([]language{languagezh","db.model(&user).association("languages").append(language{nam","db.model(&user).association("languages").clear","db.model(&user).association("languages").count","db.model(&user).association("languages").delete([]language{languagezh","db.model(&user).association("languages").delete(languagezh","db.model(&user).association("languages").error","db.model(&user).association("languages").find(&languag","db.model(&user).association("languages").replace([]language{languagezh","db.model(&user).association("languages").replace(language{nam","db.model(&user).omit("name").updates(map[string]interface{}{"name"","db.model(&user).related(&card","db.model(&user).related(&credit_card).recordnotfound","db.model(&user).related(&email","db.model(&user).related(&languag","db.model(&user).related(&profil","db.model(&user).select("name").updates(map[string]interface{}{"name"","db.model(&user).set("gorm:update_option"","db.model(&user).update("createdat"","db.model(&user).update("name"","db.model(&user).updatecolumn("name"","db.model(&user).updatecolumns(user{nam","db.model(&user).updates(map[string]interface{}{"name"","db.model(&user).updates(user{nam","db.model(&user).where("act","db.model(&user{}).addforeignkey("city_id"","db.model(&user{}).addindex("idx_user_name"","db.model(&user{}).addindex("idx_user_name_age"","db.model(&user{}).adduniqueindex("idx_user_name"","db.model(&user{}).adduniqueindex("idx_user_name_age"","db.model(&user{}).dropcolumn("description"","db.model(&user{}).modifycolumn("description"","db.model(&user{}).pluck("name"","db.model(&user{}).removeindex("idx_user_name"","db.model(&user{}).where("nam","db.model(user{}).updates(user{nam","db.newrecord(us","db.not("nam","db.not("name"","db.not([]int64{1,2,3}).first(&us","db.not([]int64{}).first(&us","db.not(user{nam","db.offset(10).find(&users1).offset","db.offset(3).find(&us","db.order("ag","db.raw("select","db.save(&us","db.scanrows(row","db.scopes(amountgreaterthan1000","db.scopes(amountgreaterthan1000).where("statu","db.scopes(orderstatus([]string{"paid"","db.select("nam","db.select([]string{"name"","db.set("gorm:delete_option"","db.set("gorm:insert_option"","db.set("gorm:query_option"","db.set("gorm:table_options"","db.setlogger(gorm.logger{revel.trac","db.setlogger(log.new(os.stdout","db.singulartable(tru","db.table("deleted_users").count(&count","db.table("deleted_users").createtable(&us","db.table("deleted_users").find(&deleted_us","db.table("deleted_users").pluck("name"","db.table("deleted_users").where("nam","db.table("orders").select("date(created_at","db.table("users").select("coalesce(age,?)"","db.table("users").select("nam","db.table("users").select("users.nam","db.table("users").where("id","db.table("users").where("nam","db.unscoped().delete(&ord","db.unscoped().model(model).where("deleted_at","db.unscoped().where("ag","db.where(&user{nam","db.where("ag","db.where("amount","db.where("created_at","db.where("email","db.where("nam","db.where("pay_mode_sign","db.where("rol","db.where("updated_at","db.where([]int64{20","db.where(map[string]interface{}{"name"","db.where(user{nam","dbname=gorm","debug","default","defer","defiend","defin","definit","delet","delete'","deleted_at","deleted_at="2013","deleted_us","deletedat","deletedat'","desc","desc").find(&users1).order("age"","desc").order("name").find(&us","descript","description'","destin","detail","develop","diabl","dialect","disabl","doesn't","dog","don't","driver","driver/mysql"","drop","dropcolumn","dynam","each","eager","easier","easili","edger","email","email'","email").row","emails.email","emails.email").joins("left","emails.user_id","email{{email","emb","enabl","encryptedpassword","enough","ensur","err","error","errors.new("read","errors.new("us","errrecordnotfound","even","exampl","exclud","exist","explicitli","express","extend","extra","fals","fantast","featur","field","field'","fields'","fill","find","findabl","first","firstorcr","firstorinit","fix","flow","foreign","foreignkey","found","friendli","full","fulli","func","func(*db","function","futur","gener","geterror","github.com/jinzhu/gorm","github.com/jinzhu/gorm/dialects/postgr","given","global","go","golang","golint","good","gorm","gorm'","gorm.db","gorm.expr("null"","gorm.expr("pric","gorm.expr("quant","gorm.model","gorm.open","gorm.open("mysql"","gorm.open("postgres"","gorm.open("sqlite"","gorm.open("sqlite3"","gorm.scop","gorm:"","gorm:"auto_increment"","gorm:"column:age_of_the_beast"","gorm:"column:beast_id"","gorm:"column:day_of_the_beast"","gorm:"column:s_k_u"","gorm:"default:'galeone'"","gorm:"foreignkey:profileid;associationforeignkey:refer"","gorm:"foreignkey:profilerefer"","gorm:"foreignkey:userid;associationforeignkey:refer"","gorm:"foreignkey:userrefer"","gorm:"index"","gorm:"index:idx_name_code"","gorm:"many2many:personaccount;associationforeignkey:idaccount;foreignkey:idperson"","gorm:"many2many:user_languages;"","gorm:"not","gorm:"polymorphic:owner;"","gorm:"primary_key"","gorm:"primary_key:true"","gorm:"size:255"","gorm:"type:varchar(100);unique"","gorm:"type:varchar(100);unique_index"","gorm:creat","greater","grom","group","gt","h_t_t_p","handl","happen","has_mani","has_on","have","haven't","helper","hstore","http","http'","http://github.com/jinzhu","http://twitter.com/zhangjinzhu","https://github.com/jinzhu/gorm/blob/master/dialect.go","https://github.com/jinzhu/gorm/blob/master/logger.go","https://github.com/jinzhu/gorm/graphs/contributor","https://godoc.org/github.com/jinzhu/gorm","id","id=10","id=111","idaccount","idperson","idx_user_nam","idx_user_name_ag","ignor","ignorem","import","includ","index","init","initi","inject","inlin","inner","insert","instal","instanc","instead","int","int64","int64{11,22,33","interfac","interface{}{&us","int{10","it'","iter","itself","jinzhu","jinzhu&apo","join","keep","key","l1212","languag","languagecod","languageen","language{{nam","last","lastweek","lastweek).find(&us","less","librari","licens","limit","load","log","logger","logic","look","lt","lt;>","made","main","make","mani","many2mani","map","map[string]interfac","map[string]interface{}{"age"","map[string]interface{}{"name"","match","mdoel'","mean","method","migrat","miss","mit","mode","model","model'","modifi","modifycolumn","more","move","mssql","multipl","mysql","name","name'","name").find(&us","name,billing_address_id,shipping_address_id","name='hello&apo","name='jinzhu","necessari","need","new","newcreatefunct","nil","non","none","not(nam","note","noth","now.mustparse("0001","nowfunc","null","null"","null;unique"","nullabl","num","number","object","offici","offset","omit","on","onc","ondelet","onupd","oper","operation'","optim","option","order","orderstatus(statu","orm","out","overrid","overview","overwrit","ownerid","ownertyp","packag","paid","paidwithcod(db","paidwithcod).find(&ord","paidwithcreditcard(db","paidwithcreditcard).find(&ord","panic("faield","param","paramet","parsetim","pass","path","perform","perman","ping","plain","pluck","plugin","plural","point","pointer","polymorph","pool","post","postgresql","power","pre","preload","priamri","price","primari","primary_key","print","process","product","product'","profil","profileid","profileref","protect","pw","quantiti","queri","quick","quot","quot;%jin%").find(&us","quot;%jinhu%"","quot;%jinzhu%"","quot;%jinzhu%").delete(email","quot;"","quot;,"jinzhu").where("ag","quot;,20,"admin").find(&us","quot;/tmp/gorm.db"","quot;22").find(&us","quot;411111111111").find(&us","quot;\\r\\n"","quot;_draft"","quot;actived"","quot;addresses"","quot;admin"","quot;admin").or("rol","quot;admin_users"","quot;age"","quot;age"}).find(&us","quot;bil","quot;c"","quot;cities(id)"","quot;cod","quot;code"","quot;creditcard"","quot;de"","quot;email","quot;emails"","quot;en"","quot;engine=innodb"","quot;engine=innodb").automigrate(&us","quot;engine=innodb").createtable(&us","quot;for","quot;giraffe"}).error","quot;github.com/go","quot;github.com/jinzhu/gorm"","quot;github.com/jinzhu/gorm/dialects/mssql"","quot;github.com/jinzhu/gorm/dialects/mysql"","quot;github.com/jinzhu/gorm/dialects/postgres"","quot;github.com/jinzhu/gorm/dialects/sqlite"","quot;github.com/jinzhu/now"","quot;hello","quot;hello"","quot;id"","quot;jinzhu","quot;jinzhu"","quot;jinzhu").count(&count","quot;jinzhu").delet","quot;jinzhu").find(&us","quot;jinzhu").first(&us","quot;jinzhu").first(&user).error","quot;jinzhu").or("nam","quot;jinzhu").row","quot;jinzhu").select("nam","quot;jinzhu"}).assign(user{ag","quot;jinzhu"}).attrs(user{ag","quot;jinzhu"}).first(&us","quot;jinzhu"}).firstorcreate(&us","quot;jinzhu"}).firstorinit(&us","quot;jinzhu@example.com"","quot;jinzhu@example.org").joins("join","quot;l1212"","quot;languages"","quot;languages"."id"","quot;lion"}).error","quot;nam","quot;name"","quot;non_existing"","quot;non_existing"}).assign(user{ag","quot;non_existing"}).attrs("age"","quot;non_existing"}).attrs(user{ag","quot;on","quot;opt","quot;price"","quot;products"","quot;profiles"","quot;quantity"","quot;restrict"","quot;ship","quot;shipped"})).find(&ord","quot;super_admin").find(&us","quot;super_admin").not("nam","quot;test.db"","quot;text"","quot;updated_at"","quot;user:password@/dbname?charset=utf8&parsetime=true&loc=local"","quot;user=gorm","quot;user_id","language_id"","quot;user_languages"","quot;user_languages"."language_id"","quot;user_languages"."user_id"","quot;users"","quot;zh"","rang","raw","read","record","record'","recordnotfound","refer","regardless","regist","relat","relationship","releas","reload","rememb","remov","renam","reorder","replac","request","reset","result","retriev","return","role","rollback","row","row.scan(&nam","row_queri","rows.clos","rows.next","rows.scan(&nam","rowsaffect","run","s_k_u","same","sampl","save","save/delet","scan","schema","scope","scope.db().model(u).update("role"","scope.hascolumn("created"","scope.search.table(scope.tablenam","scope.setcolumn","scope.setcolumn("created"","scope.setcolumn("encryptedpassword"","scope.setcolumn("id"","script","select","self","set","ship","shipped_at","shippingaddress","shippingaddressid","show","similar","singl","size","skip","sku","slice","snake","soft","someth","sourc","source'","special","specif","specifi","sql","sql.db","sql.nullint64","sql.nullstr","sql.row","sqlite3","sslmode=disable"","start","statement","statu","stop","store","string","string{"jinzhu"","struct","subscrib","suffix","sum(amount","support","sure","tabl","table(id","tablenam","tag","test","text","thing","those","throw","time","time.now","time.tim","timestamp","today).find(&us","todbnam","total","total").group("date(created_at)").having("sum(amount","total").group("date(created_at)").row","toy","transact","true","true).find(&users2","true).update("name"","tx","tx.commit","tx.creat","tx.create(&animal{nam","tx.model(u).update("role"","tx.rollback","type","u","u.id","u.readonli","u.rol","ugli","uint","under","unfound","uniqu","unique_index","unknown","unknown)").delete(&email","unknown)").update("nam","unless","unscop","unsupport","unus","upda","updat","update").first(&us","updatecolumn","updatecr","updatecreated(scop","updated_at","updated_at='2013","updatedat","updatetablenam","updatetablename(scop","upgrad","upper","uri","us","usag","user","user'","user"","user.ag","user.encryptedpassword","user.nam","user_id","user_id,email","user_languag","user`'","userid","userref","users.id","users.id").row","users.id").scan(&result","users.id").where("credit_cards.numb","users1","users2","users;"","user{ag","user{id","user{nam","uuid.new","v1.0","valid","valu","values('99&apo","var","variabl","variable'","version","view","visibl","want","warn","within","without","won't","work","world").first(&user).recordnotfound","wosmvp@gmail.com","wrap","write","zero"],"pipeline":["trimmer","stopWordFilter","stemmer"]} \ No newline at end of file