mongous 0.1.8 → 0.4.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/README.adoc +286 -48
- data/README.ja.adoc +288 -50
- data/lib/mongous/base.rb +45 -2
- data/lib/mongous/document.rb +75 -32
- data/lib/mongous/extention.rb +74 -55
- data/lib/mongous/filter.rb +316 -233
- data/lib/mongous/version.rb +1 -1
- data/mongous.gemspec +1 -1
- data/sample/connect_auto_0.rb +9 -0
- data/sample/declare_compact_1.rb +7 -9
- data/sample/declare_compact_2.rb +38 -0
- data/sample/declare_label_1.rb +10 -8
- data/sample/declare_ndex_1.rb +9 -7
- data/sample/declare_ndex_2.rb +10 -8
- data/sample/declare_strict_1.rb +14 -12
- data/sample/declare_strict_2.rb +5 -5
- data/sample/{multi_docs_1.rb → multi_collection_1.rb} +0 -2
- data/sample/multi_collection_2.rb +61 -0
- data/sample/multi_collection_3.rb +24 -0
- data/sample/query_basic_1.rb +8 -3
- data/sample/query_basic_2.rb +11 -6
- data/sample/query_basic_3.rb +2 -5
- data/sample/query_basic_4.rb +3 -6
- data/sample/query_basic_5.rb +2 -5
- data/sample/query_basic_6.rb +35 -22
- data/sample/query_detail_1.rb +3 -3
- data/sample/query_detail_2.rb +3 -3
- data/sample/query_detail_3.rb +5 -5
- data/sample/query_filter_1.rb +44 -0
- data/sample/query_filter_2.rb +48 -0
- data/sample/{query_super_1.rb → query_find_1.rb} +6 -6
- data/sample/query_select_1.rb +54 -0
- data/sample/query_skip_limit_1.rb +48 -0
- data/sample/query_skip_limit_2.rb +58 -0
- data/sample/query_sort_1.rb +43 -0
- data/sample/save_basic_1.rb +2 -7
- data/sample/save_basic_2.rb +2 -7
- data/sample/save_basic_3.rb +2 -7
- data/sample/save_detail_1.rb +7 -6
- data/sample/save_detail_2.rb +7 -6
- data/sample/save_detail_3.rb +11 -10
- data/sample/save_verify_1.rb +7 -6
- data/sample/save_verify_2.rb +0 -2
- data/sample/save_verify_3.rb +1 -3
- data/sample/save_verify_4.rb +0 -2
- data/sample/save_verify_5.rb +3 -5
- data/sample/save_verify_6.rb +3 -5
- data/sample/save_verify_7.rb +21 -0
- data/sample/update_basic_1.rb +9 -0
- data/sample/zap_basic_1.rb +1 -5
- data/sample/zap_basic_2.rb +2 -6
- data/sample/zap_basic_3.rb +2 -6
- data/sample/zbenchmark_search_1.rb +114 -0
- data/sample/zbenchmark_search_2.rb +114 -0
- data/sample/zbenchmark_search_3.rb +88 -0
- metadata +20 -12
- data/sample/multi_docs_2.rb +0 -58
- data/sample/query_basic_7.rb +0 -38
- data/sample/query_limit_1.rb +0 -44
- data/sample/query_order_1.rb +0 -49
- data/sample/query_projection_1.rb +0 -44
- data/sample/template_article.rb +0 -5
- data/sample/template_person.rb +0 -12
| @@ -0,0 +1,48 @@ | |
| 1 | 
            +
             | 
| 2 | 
            +
            require "mongous"
         | 
| 3 | 
            +
             | 
| 4 | 
            +
            Mongous.document!  :Item
         | 
| 5 | 
            +
             | 
| 6 | 
            +
            (0...10).each do |n|
         | 
| 7 | 
            +
              unless  Item.where( n: n ).first
         | 
| 8 | 
            +
                Item.create( n: n, tag: [0x40 + n].pack("C") )
         | 
| 9 | 
            +
              end
         | 
| 10 | 
            +
            end
         | 
| 11 | 
            +
            puts
         | 
| 12 | 
            +
             | 
| 13 | 
            +
            p "count  =  Item.count"
         | 
| 14 | 
            +
            p count  =  Item.count
         | 
| 15 | 
            +
            puts
         | 
| 16 | 
            +
             | 
| 17 | 
            +
            p "count  =  Item[0..4].count"
         | 
| 18 | 
            +
            p count  =  Item[0..4].count
         | 
| 19 | 
            +
            puts
         | 
| 20 | 
            +
             | 
| 21 | 
            +
            p "count  =  Item[0...4].count"
         | 
| 22 | 
            +
            p count  =  Item[0...4].count
         | 
| 23 | 
            +
            puts
         | 
| 24 | 
            +
             | 
| 25 | 
            +
            p "count  =  Item[0, 4].count"
         | 
| 26 | 
            +
            p count  =  Item[0, 4].count
         | 
| 27 | 
            +
            puts
         | 
| 28 | 
            +
             | 
| 29 | 
            +
            p "count  =  Item[5, 5].count"
         | 
| 30 | 
            +
            p count  =  Item[5, 5].count
         | 
| 31 | 
            +
            puts
         | 
| 32 | 
            +
             | 
| 33 | 
            +
            p "books  =  Item[0, 2].all"
         | 
| 34 | 
            +
            pp books  =  Item[0, 2].all
         | 
| 35 | 
            +
            puts
         | 
| 36 | 
            +
             | 
| 37 | 
            +
            p "Item[0, 4].each do |item|"
         | 
| 38 | 
            +
            Item[0, 4].each do |item|
         | 
| 39 | 
            +
              p item
         | 
| 40 | 
            +
            end
         | 
| 41 | 
            +
            puts
         | 
| 42 | 
            +
             | 
| 43 | 
            +
            p "Item[4, 4].each do |item|"
         | 
| 44 | 
            +
            Item[4, 4].each do |item|
         | 
| 45 | 
            +
              p item
         | 
| 46 | 
            +
            end
         | 
| 47 | 
            +
            puts
         | 
| 48 | 
            +
             | 
| @@ -0,0 +1,58 @@ | |
| 1 | 
            +
             | 
| 2 | 
            +
            require "mongous"
         | 
| 3 | 
            +
             | 
| 4 | 
            +
            Mongous.document!  :Item
         | 
| 5 | 
            +
             | 
| 6 | 
            +
            (0...10).each do |n|
         | 
| 7 | 
            +
              unless  Item.where( n: n ).first
         | 
| 8 | 
            +
                Item.create( n: n, tag: [0x40 + n].pack("C") )
         | 
| 9 | 
            +
              end
         | 
| 10 | 
            +
            end
         | 
| 11 | 
            +
            puts
         | 
| 12 | 
            +
             | 
| 13 | 
            +
            p "Item.each do |item|"
         | 
| 14 | 
            +
            Item.each do |item|
         | 
| 15 | 
            +
              p item
         | 
| 16 | 
            +
            end
         | 
| 17 | 
            +
            puts
         | 
| 18 | 
            +
             | 
| 19 | 
            +
            #Item.find.skip(2).limit(1).each do |item| p item; end; puts
         | 
| 20 | 
            +
            p "Item[2].each do |item|"
         | 
| 21 | 
            +
            Item[2].each do |item|
         | 
| 22 | 
            +
              p item
         | 
| 23 | 
            +
            end
         | 
| 24 | 
            +
            puts
         | 
| 25 | 
            +
             | 
| 26 | 
            +
            #Item.find.skip(2).each do |item| p item; end; puts
         | 
| 27 | 
            +
            p "Item[2, 0].each do |item|"
         | 
| 28 | 
            +
            Item[2, 0].each do |item|
         | 
| 29 | 
            +
              p item
         | 
| 30 | 
            +
            end
         | 
| 31 | 
            +
            puts
         | 
| 32 | 
            +
             | 
| 33 | 
            +
            #Item.find.limit(3).each do |item| p item; end; puts
         | 
| 34 | 
            +
            p "Item[0, 3].each do |item|"
         | 
| 35 | 
            +
            Item[0, 3].each do |item|
         | 
| 36 | 
            +
              p item
         | 
| 37 | 
            +
            end
         | 
| 38 | 
            +
            puts
         | 
| 39 | 
            +
             | 
| 40 | 
            +
            #Item.find.skip(4).limit(5).each do |item| p item; end; puts
         | 
| 41 | 
            +
            p "Item[4, 5].each do |item|"
         | 
| 42 | 
            +
            Item[4, 5].each do |item|
         | 
| 43 | 
            +
              p item
         | 
| 44 | 
            +
            end
         | 
| 45 | 
            +
            puts
         | 
| 46 | 
            +
             | 
| 47 | 
            +
            p "Item[4..8].each do |item|"
         | 
| 48 | 
            +
            Item[4..8].each do |item|
         | 
| 49 | 
            +
              p item
         | 
| 50 | 
            +
            end
         | 
| 51 | 
            +
            puts
         | 
| 52 | 
            +
             | 
| 53 | 
            +
            p "Item[4...8].each do |item|"
         | 
| 54 | 
            +
            Item[4...8].each do |item|
         | 
| 55 | 
            +
              p item
         | 
| 56 | 
            +
            end
         | 
| 57 | 
            +
            puts
         | 
| 58 | 
            +
             | 
| @@ -0,0 +1,43 @@ | |
| 1 | 
            +
             | 
| 2 | 
            +
            require "mongous"
         | 
| 3 | 
            +
             | 
| 4 | 
            +
            Mongous.document!  :Mash
         | 
| 5 | 
            +
             | 
| 6 | 
            +
            (0...10).each do |n|
         | 
| 7 | 
            +
              unless  Mash.where( n: n ).first
         | 
| 8 | 
            +
                r  =  rand
         | 
| 9 | 
            +
                Mash.create( n: n, r: r )
         | 
| 10 | 
            +
              end
         | 
| 11 | 
            +
            end
         | 
| 12 | 
            +
            puts
         | 
| 13 | 
            +
             | 
| 14 | 
            +
            p "Mash.each do |mash|"
         | 
| 15 | 
            +
            Mash.each do |mash|
         | 
| 16 | 
            +
              p mash
         | 
| 17 | 
            +
            end
         | 
| 18 | 
            +
            puts
         | 
| 19 | 
            +
             | 
| 20 | 
            +
            p "Mash.sort(r: 1).each do |mash|"
         | 
| 21 | 
            +
            Mash.sort(r: 1).each do |mash|
         | 
| 22 | 
            +
              p mash
         | 
| 23 | 
            +
            end
         | 
| 24 | 
            +
            puts
         | 
| 25 | 
            +
             | 
| 26 | 
            +
            p "Mash.sort(r: -1).each do |mash|"
         | 
| 27 | 
            +
            Mash.sort(r: -1).each do |mash|
         | 
| 28 | 
            +
              p mash
         | 
| 29 | 
            +
            end
         | 
| 30 | 
            +
            puts
         | 
| 31 | 
            +
             | 
| 32 | 
            +
            p "Mash.where( n: (3...8) ).sort(r: -1).each do |mash|"
         | 
| 33 | 
            +
            Mash.where( n: (3...8) ).sort(r: -1).each do |mash|
         | 
| 34 | 
            +
              p mash
         | 
| 35 | 
            +
            end
         | 
| 36 | 
            +
            puts
         | 
| 37 | 
            +
             | 
| 38 | 
            +
            p "Mash.where( n: [0,2,4,6,8] ).sort(r: -1).each do |mash|"
         | 
| 39 | 
            +
            Mash.where( n: [0,2,4,6,8] ).sort(r: -1).each do |mash|
         | 
| 40 | 
            +
              p mash
         | 
| 41 | 
            +
            end
         | 
| 42 | 
            +
            puts
         | 
| 43 | 
            +
             | 
    
        data/sample/save_basic_1.rb
    CHANGED
    
    | @@ -1,17 +1,12 @@ | |
| 1 1 |  | 
| 2 2 | 
             
            require "mongous"
         | 
| 3 3 |  | 
| 4 | 
            -
            Mongous. | 
| 5 | 
            -
             | 
| 6 | 
            -
            class Book
         | 
| 7 | 
            -
              include  Mongous::Document
         | 
| 8 | 
            -
            end
         | 
| 9 | 
            -
             | 
| 4 | 
            +
            Mongous.document!  :Book
         | 
| 10 5 |  | 
| 11 6 | 
             
            book  =  Book.new
         | 
| 12 7 | 
             
            book.title  =  "title basic 1"
         | 
| 13 8 | 
             
            book.author  =  "Alice"
         | 
| 14 | 
            -
            book. | 
| 9 | 
            +
            book.size  =  "A4"
         | 
| 15 10 | 
             
            book.price  =  1000
         | 
| 16 11 | 
             
            book.page  =  100
         | 
| 17 12 | 
             
            book.save
         | 
    
        data/sample/save_basic_2.rb
    CHANGED
    
    | @@ -1,13 +1,8 @@ | |
| 1 1 |  | 
| 2 2 | 
             
            require "mongous"
         | 
| 3 3 |  | 
| 4 | 
            -
            Mongous. | 
| 4 | 
            +
            Mongous.document!  :Book
         | 
| 5 5 |  | 
| 6 | 
            -
             | 
| 7 | 
            -
              include  Mongous::Document
         | 
| 8 | 
            -
            end
         | 
| 9 | 
            -
             | 
| 10 | 
            -
             | 
| 11 | 
            -
            book  =  Book.new( title: "title basic 2", author: "Bob", style: "A5", price: 2000, page: 200 )
         | 
| 6 | 
            +
            book  =  Book.new( title: "title basic 2", author: "Bob", size: "A5", price: 2000, page: 200 )
         | 
| 12 7 | 
             
            book.save
         | 
| 13 8 |  | 
    
        data/sample/save_basic_3.rb
    CHANGED
    
    | @@ -1,13 +1,8 @@ | |
| 1 1 |  | 
| 2 2 | 
             
            require "mongous"
         | 
| 3 3 |  | 
| 4 | 
            -
            Mongous. | 
| 4 | 
            +
            Mongous.document!  :Book
         | 
| 5 5 |  | 
| 6 | 
            -
             | 
| 7 | 
            -
              include  Mongous::Document
         | 
| 8 | 
            -
            end
         | 
| 9 | 
            -
             | 
| 10 | 
            -
             | 
| 11 | 
            -
            doc  =  { title: "title basic 3", author: "Candy", style: "A6", price: 3000, page: 300 }
         | 
| 6 | 
            +
            doc  =  { title: "title basic 3", author: "Candy", size: "A6", price: 3000, page: 300 }
         | 
| 12 7 | 
             
            Book.create( **doc )
         | 
| 13 8 |  | 
    
        data/sample/save_detail_1.rb
    CHANGED
    
    | @@ -1,8 +1,6 @@ | |
| 1 1 |  | 
| 2 2 | 
             
            require "mongous"
         | 
| 3 3 |  | 
| 4 | 
            -
            Mongous.connect!
         | 
| 5 | 
            -
             | 
| 6 4 | 
             
            class Book
         | 
| 7 5 | 
             
              include  Mongous::Document
         | 
| 8 6 |  | 
| @@ -10,25 +8,28 @@ class Book | |
| 10 8 | 
             
              field  :author
         | 
| 11 9 | 
             
              field  :publisher
         | 
| 12 10 | 
             
              field  :style
         | 
| 11 | 
            +
              field  :size
         | 
| 13 12 | 
             
              field  :price
         | 
| 14 13 | 
             
              field  :page
         | 
| 15 | 
            -
              field  :publish_at
         | 
| 16 14 | 
             
              field  :isbn
         | 
| 17 15 | 
             
              field  :lang
         | 
| 16 | 
            +
              field  :created_at
         | 
| 17 | 
            +
              field  :updated_at
         | 
| 18 18 |  | 
| 19 19 | 
             
              verify :strict
         | 
| 20 20 | 
             
            end
         | 
| 21 21 |  | 
| 22 | 
            -
             | 
| 23 22 | 
             
            book  =  Book.new
         | 
| 24 23 | 
             
            book.title  =  "title detail 1"
         | 
| 25 24 | 
             
            book.author  =  "Alice"
         | 
| 26 25 | 
             
            book.publisher  =  "Foobar"
         | 
| 27 | 
            -
            book.style  =  " | 
| 26 | 
            +
            book.style  =  "hardcover"
         | 
| 27 | 
            +
            book.size  =  "A4"
         | 
| 28 28 | 
             
            book.price  =  1000
         | 
| 29 29 | 
             
            book.page  =  100
         | 
| 30 | 
            -
            book.publish_at  =  Date.today
         | 
| 31 30 | 
             
            book.isbn  =  "978-3-16-148410-0"
         | 
| 32 31 | 
             
            book.lang  =  "en"
         | 
| 32 | 
            +
            book.created_at  =  Time.now
         | 
| 33 | 
            +
            book.updated_at  =  Time.now
         | 
| 33 34 | 
             
            book.save
         | 
| 34 35 |  | 
    
        data/sample/save_detail_2.rb
    CHANGED
    
    | @@ -1,8 +1,6 @@ | |
| 1 1 |  | 
| 2 2 | 
             
            require "mongous"
         | 
| 3 3 |  | 
| 4 | 
            -
            Mongous.connect!
         | 
| 5 | 
            -
             | 
| 6 4 | 
             
            class Book
         | 
| 7 5 | 
             
              include  Mongous::Document
         | 
| 8 6 |  | 
| @@ -10,25 +8,28 @@ class Book | |
| 10 8 | 
             
              field  :author
         | 
| 11 9 | 
             
              field  :publisher
         | 
| 12 10 | 
             
              field  :style
         | 
| 11 | 
            +
              field  :size
         | 
| 13 12 | 
             
              field  :price,      Integer
         | 
| 14 13 | 
             
              field  :page,       Integer
         | 
| 15 | 
            -
              field  :publish_at, Date
         | 
| 16 14 | 
             
              field  :isbn
         | 
| 17 15 | 
             
              field  :lang
         | 
| 16 | 
            +
              field  :created_at, Time
         | 
| 17 | 
            +
              field  :updated_at, Time
         | 
| 18 18 |  | 
| 19 19 | 
             
              verify :strict
         | 
| 20 20 | 
             
            end
         | 
| 21 21 |  | 
| 22 | 
            -
             | 
| 23 22 | 
             
            book  =  Book.new
         | 
| 24 23 | 
             
            book.title  =  "title detail 2"
         | 
| 25 24 | 
             
            book.author  =  "Bob"
         | 
| 26 25 | 
             
            book.publisher  =  "Foobar"
         | 
| 27 | 
            -
            book.style  =  " | 
| 26 | 
            +
            book.style  =  "softcover"
         | 
| 27 | 
            +
            book.size  =  "A5"
         | 
| 28 28 | 
             
            book.price  =  2000
         | 
| 29 29 | 
             
            book.page  =  200
         | 
| 30 | 
            -
            book.publish_at  =  Date.today
         | 
| 31 30 | 
             
            book.isbn  =  "978-3-16-148410-0"
         | 
| 32 31 | 
             
            book.lang  =  "en"
         | 
| 32 | 
            +
            book.created_at  =  Time.now
         | 
| 33 | 
            +
            book.updated_at  =  Time.now
         | 
| 33 34 | 
             
            book.save
         | 
| 34 35 |  | 
    
        data/sample/save_detail_3.rb
    CHANGED
    
    | @@ -1,20 +1,20 @@ | |
| 1 1 |  | 
| 2 2 | 
             
            require "mongous"
         | 
| 3 3 |  | 
| 4 | 
            -
            Mongous.connect!
         | 
| 5 | 
            -
             | 
| 6 4 | 
             
            class Book
         | 
| 7 5 | 
             
              include  Mongous::Document
         | 
| 8 6 |  | 
| 9 7 | 
             
              field  :title,                :must
         | 
| 10 8 | 
             
              field  :author
         | 
| 11 9 | 
             
              field  :publisher
         | 
| 12 | 
            -
              field  :style,                %w[  | 
| 10 | 
            +
              field  :style,                %w[hardcover, softcover, paperback]
         | 
| 11 | 
            +
              field  :size,                 /[AB]\d/
         | 
| 13 12 | 
             
              field  :price,      Integer,  (0..1_000_000)
         | 
| 14 13 | 
             
              field  :page,       Integer,  proc{ page > 0 }
         | 
| 15 | 
            -
              field  :publish_at, Date,     &proc{ Date.today }
         | 
| 16 14 | 
             
              field  :isbn,                 proc{ isbn? }
         | 
| 17 | 
            -
              field  :lang,                  | 
| 15 | 
            +
              field  :lang,                 default: "en"
         | 
| 16 | 
            +
              field  :created_at, Time,     create: proc{ Time.now }
         | 
| 17 | 
            +
              field  :updated_at, Time,     update: proc{ Time.now }
         | 
| 18 18 |  | 
| 19 19 | 
             
              verify :strict
         | 
| 20 20 |  | 
| @@ -25,16 +25,17 @@ class Book | |
| 25 25 | 
             
              end
         | 
| 26 26 | 
             
            end
         | 
| 27 27 |  | 
| 28 | 
            -
             | 
| 29 28 | 
             
            book  =  Book.new
         | 
| 30 29 | 
             
            book.title  =  "title detail 3"
         | 
| 31 30 | 
             
            book.author  =  "Candy"
         | 
| 32 | 
            -
             | 
| 33 | 
            -
            book.style  =  " | 
| 31 | 
            +
            book.publisher
         | 
| 32 | 
            +
            book.style  =  "paperback"
         | 
| 33 | 
            +
            book.size  =  "A6"
         | 
| 34 34 | 
             
            book.price  =  3000
         | 
| 35 35 | 
             
            book.page  =  300
         | 
| 36 | 
            -
            #book.publish_at  =  Date.today
         | 
| 37 36 | 
             
            book.isbn  =  "978-3-16-148410-0"
         | 
| 38 | 
            -
            #book.lang
         | 
| 37 | 
            +
            # book.lang
         | 
| 38 | 
            +
            # book.created_at
         | 
| 39 | 
            +
            # book.updated_at
         | 
| 39 40 | 
             
            book.save
         | 
| 40 41 |  | 
    
        data/sample/save_verify_1.rb
    CHANGED
    
    | @@ -1,20 +1,20 @@ | |
| 1 1 |  | 
| 2 2 | 
             
            require "mongous"
         | 
| 3 3 |  | 
| 4 | 
            -
            Mongous.connect!
         | 
| 5 | 
            -
             | 
| 6 4 | 
             
            class Book
         | 
| 7 5 | 
             
              include  Mongous::Document
         | 
| 8 6 |  | 
| 9 7 | 
             
              field  :title,        String,  :must
         | 
| 10 8 | 
             
              field  :author,       String
         | 
| 11 9 | 
             
              field  :publisher,    String
         | 
| 12 | 
            -
              field  :style,        String,  [ | 
| 10 | 
            +
              field  :style,        String,  %w[hardcover softcover paperback]
         | 
| 11 | 
            +
              field  :size,         String,  /[AB]\d/
         | 
| 13 12 | 
             
              field  :price,        Integer, (0..1_000_000)
         | 
| 14 | 
            -
              field  :date,         Date,    &proc{ Date.today }
         | 
| 15 13 | 
             
              field  :page,         Integer, proc{ page > 0 }
         | 
| 16 14 | 
             
              field  :isbn,         String,  proc{ isbn? }
         | 
| 17 | 
            -
              field  :lang,         String,   | 
| 15 | 
            +
              field  :lang,         String,  default: "en"
         | 
| 16 | 
            +
              field  :created_at,   Time,    create: proc{ Time.now }
         | 
| 17 | 
            +
              field  :updated_at,   Time,    update: proc{ Time.now }
         | 
| 18 18 |  | 
| 19 19 | 
             
              verify :strict
         | 
| 20 20 | 
             
              verify { having?( title ) }
         | 
| @@ -33,7 +33,8 @@ begin | |
| 33 33 | 
             
              book  =  Book.new
         | 
| 34 34 | 
             
              book.title  =  "title verify 1"
         | 
| 35 35 | 
             
              book.author  =  "jane doe"
         | 
| 36 | 
            -
              book.style  =  " | 
| 36 | 
            +
              book.style  =  "softcover"
         | 
| 37 | 
            +
              book.size  =  "A5"
         | 
| 37 38 | 
             
              book.price  =  2000
         | 
| 38 39 | 
             
              book.page  =  200
         | 
| 39 40 | 
             
              book.isbn  =  "978-3-16-148410-0"
         | 
    
        data/sample/save_verify_2.rb
    CHANGED
    
    
    
        data/sample/save_verify_3.rb
    CHANGED
    
    | @@ -1,14 +1,12 @@ | |
| 1 1 |  | 
| 2 2 | 
             
            require "mongous"
         | 
| 3 3 |  | 
| 4 | 
            -
            Mongous.connect!
         | 
| 5 | 
            -
             | 
| 6 4 | 
             
            class Book
         | 
| 7 5 | 
             
              include  Mongous::Document
         | 
| 8 6 |  | 
| 9 7 | 
             
              field  :title,        :must
         | 
| 10 8 | 
             
              field  :page,         Integer,  proc{ page > 1 }
         | 
| 11 | 
            -
              field  :price,        Integer,  proc{ (price > 0)  | 
| 9 | 
            +
              field  :price,        Integer,  proc{ (price > 0) && (price < 10_000) }
         | 
| 12 10 |  | 
| 13 11 | 
             
            end
         | 
| 14 12 |  | 
    
        data/sample/save_verify_4.rb
    CHANGED
    
    
    
        data/sample/save_verify_5.rb
    CHANGED
    
    | @@ -1,19 +1,17 @@ | |
| 1 1 |  | 
| 2 2 | 
             
            require "mongous"
         | 
| 3 3 |  | 
| 4 | 
            -
            Mongous.connect!
         | 
| 5 | 
            -
             | 
| 6 4 | 
             
            class Book
         | 
| 7 5 | 
             
              include  Mongous::Document
         | 
| 8 6 |  | 
| 9 7 | 
             
              field  :title,        :must
         | 
| 10 | 
            -
              field  : | 
| 8 | 
            +
              field  :size,         String,  /[AB]\d/
         | 
| 11 9 | 
             
            end
         | 
| 12 10 |  | 
| 13 11 | 
             
            begin
         | 
| 14 12 | 
             
              book  =  Book.new
         | 
| 15 | 
            -
              book.title  =  "title  | 
| 16 | 
            -
              book. | 
| 13 | 
            +
              book.title  =  "title size"
         | 
| 14 | 
            +
              book.size  =  "C5"
         | 
| 17 15 | 
             
              book.save
         | 
| 18 16 |  | 
| 19 17 | 
             
            rescue => e
         | 
    
        data/sample/save_verify_6.rb
    CHANGED
    
    | @@ -1,19 +1,17 @@ | |
| 1 1 |  | 
| 2 2 | 
             
            require "mongous"
         | 
| 3 3 |  | 
| 4 | 
            -
            Mongous.connect!
         | 
| 5 | 
            -
             | 
| 6 4 | 
             
            class Book
         | 
| 7 5 | 
             
              include  Mongous::Document
         | 
| 8 6 |  | 
| 9 7 | 
             
              field  :title,        :must
         | 
| 10 | 
            -
              field  : | 
| 8 | 
            +
              field  :style,        String,  %w[hardcover softcover paperback]
         | 
| 11 9 | 
             
            end
         | 
| 12 10 |  | 
| 13 11 | 
             
            begin
         | 
| 14 12 | 
             
              book  =  Book.new
         | 
| 15 | 
            -
              book.title  =  "title  | 
| 16 | 
            -
              book. | 
| 13 | 
            +
              book.title  =  "title style"
         | 
| 14 | 
            +
              book.style  =  "newspaper"
         | 
| 17 15 | 
             
              book.save
         | 
| 18 16 |  | 
| 19 17 | 
             
            rescue => e
         |