dolly 0.5.0 → 0.5.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/lib/dolly/document.rb +16 -0
 - data/lib/dolly/version.rb +1 -1
 - data/lib/tasks/db.rake +50 -0
 - data/test/dummy/log/test.log +87 -0
 - metadata +2 -2
 
    
        checksums.yaml
    CHANGED
    
    | 
         @@ -1,7 +1,7 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            ---
         
     | 
| 
       2 
2 
     | 
    
         
             
            SHA1:
         
     | 
| 
       3 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       4 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 3 
     | 
    
         
            +
              metadata.gz: 8ce659db7a91657df6f7d8d7e8e9c9eecc57b23b
         
     | 
| 
      
 4 
     | 
    
         
            +
              data.tar.gz: 9ed99e0ffcd0d3ec81c77bdc1fa3c85c1d7eec41
         
     | 
| 
       5 
5 
     | 
    
         
             
            SHA512:
         
     | 
| 
       6 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       7 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 6 
     | 
    
         
            +
              metadata.gz: 0ea6637679a4f379356a7e03616d92827e0631bd85e737e7d3fd0f1bcb97dd33fdcdc7d1ec9fb1031e19799c64db2079db407790f79f4e7ea525609686f2aea7
         
     | 
| 
      
 7 
     | 
    
         
            +
              data.tar.gz: b946ab815afee3855339fa13cbe11a60fd4406b5d4f78be03b408e69243a1432d9ffd72d6c37a6b28563bfb993926db5576c30647242b092058457bf245f52b2
         
     | 
    
        data/lib/dolly/document.rb
    CHANGED
    
    | 
         @@ -5,6 +5,7 @@ module Dolly 
     | 
|
| 
       5 
5 
     | 
    
         
             
              class Document
         
     | 
| 
       6 
6 
     | 
    
         
             
                extend Dolly::Connection
         
     | 
| 
       7 
7 
     | 
    
         
             
                include Dolly::Query
         
     | 
| 
      
 8 
     | 
    
         
            +
                include Dolly::NameSpace
         
     | 
| 
       8 
9 
     | 
    
         | 
| 
       9 
10 
     | 
    
         
             
                attr_accessor :rows, :doc, :key
         
     | 
| 
       10 
11 
     | 
    
         
             
                class_attribute :properties
         
     | 
| 
         @@ -17,11 +18,21 @@ module Dolly 
     | 
|
| 
       17 
18 
     | 
    
         
             
                  doc['_id'] ||= self.class.next_id
         
     | 
| 
       18 
19 
     | 
    
         
             
                end
         
     | 
| 
       19 
20 
     | 
    
         | 
| 
      
 21 
     | 
    
         
            +
                def id= base_value
         
     | 
| 
      
 22 
     | 
    
         
            +
                  doc ||= {}
         
     | 
| 
      
 23 
     | 
    
         
            +
                  doc['_id'] = self.class.namespace(base_value)
         
     | 
| 
      
 24 
     | 
    
         
            +
                end
         
     | 
| 
      
 25 
     | 
    
         
            +
             
     | 
| 
       20 
26 
     | 
    
         
             
                def rev
         
     | 
| 
       21 
27 
     | 
    
         
             
                  doc['_rev']
         
     | 
| 
       22 
28 
     | 
    
         
             
                end
         
     | 
| 
       23 
29 
     | 
    
         | 
| 
      
 30 
     | 
    
         
            +
                def rev= value
         
     | 
| 
      
 31 
     | 
    
         
            +
                  doc['_rev'] = value
         
     | 
| 
      
 32 
     | 
    
         
            +
                end
         
     | 
| 
      
 33 
     | 
    
         
            +
             
     | 
| 
       24 
34 
     | 
    
         
             
                def save
         
     | 
| 
      
 35 
     | 
    
         
            +
                  self.doc['_id'] = self.id if self.id.present?
         
     | 
| 
       25 
36 
     | 
    
         
             
                  self.doc['_id'] = self.class.next_id if self.doc['_id'].blank?
         
     | 
| 
       26 
37 
     | 
    
         
             
                  response = database.put(id_as_resource, self.doc.to_json)
         
     | 
| 
       27 
38 
     | 
    
         
             
                  obj = JSON::parse response.parsed_response
         
     | 
| 
         @@ -107,7 +118,12 @@ module Dolly 
     | 
|
| 
       107 
118 
     | 
    
         
             
                    next unless respond_to? :"#{k}="
         
     | 
| 
       108 
119 
     | 
    
         
             
                    send(:"#{k}=", v)
         
     | 
| 
       109 
120 
     | 
    
         
             
                  end
         
     | 
| 
      
 121 
     | 
    
         
            +
                  init_doc options
         
     | 
| 
      
 122 
     | 
    
         
            +
                end
         
     | 
| 
      
 123 
     | 
    
         
            +
             
     | 
| 
      
 124 
     | 
    
         
            +
                def init_doc options
         
     | 
| 
       110 
125 
     | 
    
         
             
                  self.doc ||= {}
         
     | 
| 
      
 126 
     | 
    
         
            +
                  self.doc['_id'] = self.class.namespace(options[:id]) if options[:id]
         
     | 
| 
       111 
127 
     | 
    
         
             
                end
         
     | 
| 
       112 
128 
     | 
    
         
             
              end
         
     | 
| 
       113 
129 
     | 
    
         
             
            end
         
     | 
    
        data/lib/dolly/version.rb
    CHANGED
    
    
    
        data/lib/tasks/db.rake
    CHANGED
    
    | 
         @@ -23,4 +23,54 @@ namespace :db do 
     | 
|
| 
       23 
23 
     | 
    
         
             
                Dolly::Document.database.put Dolly::Document.design_doc, doc.to_json
         
     | 
| 
       24 
24 
     | 
    
         
             
                puts "design document #{Dolly::Document.design_doc} was created/updated."
         
     | 
| 
       25 
25 
     | 
    
         
             
              end
         
     | 
| 
      
 26 
     | 
    
         
            +
             
     | 
| 
      
 27 
     | 
    
         
            +
              desc "Will update design document with what is on db/designs/*.coffee"
         
     | 
| 
      
 28 
     | 
    
         
            +
              task design: :environment do
         
     | 
| 
      
 29 
     | 
    
         
            +
                path = File.join Rails.root, 'db', 'designs'
         
     | 
| 
      
 30 
     | 
    
         
            +
                files = Dir.glob("**/*.coffee")
         
     | 
| 
      
 31 
     | 
    
         
            +
                views = {}
         
     | 
| 
      
 32 
     | 
    
         
            +
                filters = {}
         
     | 
| 
      
 33 
     | 
    
         
            +
             
     | 
| 
      
 34 
     | 
    
         
            +
                files.each do |filename|
         
     | 
| 
      
 35 
     | 
    
         
            +
                  name, key  = File.basename(filename).sub(/.coffee/i, '').split(/\./)
         
     | 
| 
      
 36 
     | 
    
         
            +
                  key ||= 'map'
         
     | 
| 
      
 37 
     | 
    
         
            +
                  data = File.read filename
         
     | 
| 
      
 38 
     | 
    
         
            +
             
     | 
| 
      
 39 
     | 
    
         
            +
                  if key == 'filter'
         
     | 
| 
      
 40 
     | 
    
         
            +
                    filters[name] ||= data
         
     | 
| 
      
 41 
     | 
    
         
            +
                  else
         
     | 
| 
      
 42 
     | 
    
         
            +
                    views[name] ||= {}
         
     | 
| 
      
 43 
     | 
    
         
            +
                    views[name][key] = data
         
     | 
| 
      
 44 
     | 
    
         
            +
                  end
         
     | 
| 
      
 45 
     | 
    
         
            +
                end
         
     | 
| 
      
 46 
     | 
    
         
            +
             
     | 
| 
      
 47 
     | 
    
         
            +
                view_doc = {
         
     | 
| 
      
 48 
     | 
    
         
            +
                  '_id' => Dolly::Document.design_doc,
         
     | 
| 
      
 49 
     | 
    
         
            +
                  'language' => 'coffeescript',
         
     | 
| 
      
 50 
     | 
    
         
            +
                  'views' => views,
         
     | 
| 
      
 51 
     | 
    
         
            +
                  'filters' => filters
         
     | 
| 
      
 52 
     | 
    
         
            +
                }
         
     | 
| 
      
 53 
     | 
    
         
            +
             
     | 
| 
      
 54 
     | 
    
         
            +
                begin
         
     | 
| 
      
 55 
     | 
    
         
            +
                  hash_doc = JSON::parse Dolly::Document.database.get(view_doc["_id"]).parsed_response
         
     | 
| 
      
 56 
     | 
    
         
            +
             
     | 
| 
      
 57 
     | 
    
         
            +
                  rev = hash_doc.delete('_rev')
         
     | 
| 
      
 58 
     | 
    
         
            +
             
     | 
| 
      
 59 
     | 
    
         
            +
                  if hash_doc == view_doc
         
     | 
| 
      
 60 
     | 
    
         
            +
                    puts 'everything up to date'
         
     | 
| 
      
 61 
     | 
    
         
            +
                  else
         
     | 
| 
      
 62 
     | 
    
         
            +
                    view_doc["_rev"] = rev
         
     | 
| 
      
 63 
     | 
    
         
            +
                    view_doc["views"].merge!(hash_doc['views'])
         
     | 
| 
      
 64 
     | 
    
         
            +
                    puts 'updating design document'
         
     | 
| 
      
 65 
     | 
    
         
            +
                    will_save = true
         
     | 
| 
      
 66 
     | 
    
         
            +
                  end
         
     | 
| 
      
 67 
     | 
    
         
            +
             
     | 
| 
      
 68 
     | 
    
         
            +
                rescue Dolly::ResourceNotFound
         
     | 
| 
      
 69 
     | 
    
         
            +
                  puts 'creating design document'
         
     | 
| 
      
 70 
     | 
    
         
            +
                  will_save = true
         
     | 
| 
      
 71 
     | 
    
         
            +
                end
         
     | 
| 
      
 72 
     | 
    
         
            +
             
     | 
| 
      
 73 
     | 
    
         
            +
                Dolly::Document.database.put Dolly::Document.design_doc, view_doc.to_json if will_save
         
     | 
| 
      
 74 
     | 
    
         
            +
              end
         
     | 
| 
      
 75 
     | 
    
         
            +
             
     | 
| 
       26 
76 
     | 
    
         
             
            end
         
     | 
    
        data/test/dummy/log/test.log
    CHANGED
    
    | 
         @@ -30772,3 +30772,90 @@ DocumentTest: test_with_default_will_return_default_value_on_nil 
     | 
|
| 
       30772 
30772 
     | 
    
         
             
            -----------------------------------
         
     | 
| 
       30773 
30773 
     | 
    
         
             
            DocumentTest: test_with_timestamps!
         
     | 
| 
       30774 
30774 
     | 
    
         
             
            -----------------------------------
         
     | 
| 
      
 30775 
     | 
    
         
            +
            --------------------------------------------------
         
     | 
| 
      
 30776 
     | 
    
         
            +
            BulkDocumentTest: test_adding_document_to_bulk_doc
         
     | 
| 
      
 30777 
     | 
    
         
            +
            --------------------------------------------------
         
     | 
| 
      
 30778 
     | 
    
         
            +
            -----------------------------------------------------------------
         
     | 
| 
      
 30779 
     | 
    
         
            +
            BulkDocumentTest: test_bulk_document_intialize_with_empty_payload
         
     | 
| 
      
 30780 
     | 
    
         
            +
            -----------------------------------------------------------------
         
     | 
| 
      
 30781 
     | 
    
         
            +
            ------------------------------------------------------------------
         
     | 
| 
      
 30782 
     | 
    
         
            +
            BulkDocumentTest: test_save_document_will_remove_docs_from_payload
         
     | 
| 
      
 30783 
     | 
    
         
            +
            ------------------------------------------------------------------
         
     | 
| 
      
 30784 
     | 
    
         
            +
            --------------------------------------------------------------
         
     | 
| 
      
 30785 
     | 
    
         
            +
            DocumentTest: test_Dolly::Document_have_bulk_document_instance
         
     | 
| 
      
 30786 
     | 
    
         
            +
            --------------------------------------------------------------
         
     | 
| 
      
 30787 
     | 
    
         
            +
            -------------------------------------------
         
     | 
| 
      
 30788 
     | 
    
         
            +
            DocumentTest: test_all_first_returns_FooBar
         
     | 
| 
      
 30789 
     | 
    
         
            +
            -------------------------------------------
         
     | 
| 
      
 30790 
     | 
    
         
            +
            ------------------------------------------
         
     | 
| 
      
 30791 
     | 
    
         
            +
            DocumentTest: test_all_last_returns_FooBar
         
     | 
| 
      
 30792 
     | 
    
         
            +
            ------------------------------------------
         
     | 
| 
      
 30793 
     | 
    
         
            +
            --------------------------------------
         
     | 
| 
      
 30794 
     | 
    
         
            +
            DocumentTest: test_all_will_get_2_docs
         
     | 
| 
      
 30795 
     | 
    
         
            +
            --------------------------------------
         
     | 
| 
      
 30796 
     | 
    
         
            +
            ------------------------------------------------
         
     | 
| 
      
 30797 
     | 
    
         
            +
            DocumentTest: test_all_will_get_FooBar_documents
         
     | 
| 
      
 30798 
     | 
    
         
            +
            ------------------------------------------------
         
     | 
| 
      
 30799 
     | 
    
         
            +
            ----------------------------------------------
         
     | 
| 
      
 30800 
     | 
    
         
            +
            DocumentTest: test_default_will_be_avoerwriten
         
     | 
| 
      
 30801 
     | 
    
         
            +
            ----------------------------------------------
         
     | 
| 
      
 30802 
     | 
    
         
            +
            --------------------------------------------
         
     | 
| 
      
 30803 
     | 
    
         
            +
            DocumentTest: test_delete_method_on_document
         
     | 
| 
      
 30804 
     | 
    
         
            +
            --------------------------------------------
         
     | 
| 
      
 30805 
     | 
    
         
            +
            ------------------------------------------------
         
     | 
| 
      
 30806 
     | 
    
         
            +
            DocumentTest: test_empty_find_should_raise_error
         
     | 
| 
      
 30807 
     | 
    
         
            +
            ------------------------------------------------
         
     | 
| 
      
 30808 
     | 
    
         
            +
            ------------------------------------------------------------
         
     | 
| 
      
 30809 
     | 
    
         
            +
            DocumentTest: test_error_on_server_raises_Dolly::ServerError
         
     | 
| 
      
 30810 
     | 
    
         
            +
            ------------------------------------------------------------
         
     | 
| 
      
 30811 
     | 
    
         
            +
            --------------------------------------------------
         
     | 
| 
      
 30812 
     | 
    
         
            +
            DocumentTest: test_find_will_get_a_FooBar_document
         
     | 
| 
      
 30813 
     | 
    
         
            +
            --------------------------------------------------
         
     | 
| 
      
 30814 
     | 
    
         
            +
            ----------------------------------------------------------------
         
     | 
| 
      
 30815 
     | 
    
         
            +
            DocumentTest: test_find_with_multiple_ids_will_return_Collection
         
     | 
| 
      
 30816 
     | 
    
         
            +
            ----------------------------------------------------------------
         
     | 
| 
      
 30817 
     | 
    
         
            +
            --------------------------------------------------------
         
     | 
| 
      
 30818 
     | 
    
         
            +
            DocumentTest: test_first_class_method_returns_collection
         
     | 
| 
      
 30819 
     | 
    
         
            +
            --------------------------------------------------------
         
     | 
| 
      
 30820 
     | 
    
         
            +
            ---------------------------------------------------------
         
     | 
| 
      
 30821 
     | 
    
         
            +
            DocumentTest: test_first_class_method_returns_single_item
         
     | 
| 
      
 30822 
     | 
    
         
            +
            ---------------------------------------------------------
         
     | 
| 
      
 30823 
     | 
    
         
            +
            ---------------------------------------------
         
     | 
| 
      
 30824 
     | 
    
         
            +
            DocumentTest: test_getting_not_found_document
         
     | 
| 
      
 30825 
     | 
    
         
            +
            ---------------------------------------------
         
     | 
| 
      
 30826 
     | 
    
         
            +
            -------------------------------------------------------
         
     | 
| 
      
 30827 
     | 
    
         
            +
            DocumentTest: test_last_class_method_returns_collection
         
     | 
| 
      
 30828 
     | 
    
         
            +
            -------------------------------------------------------
         
     | 
| 
      
 30829 
     | 
    
         
            +
            --------------------------------------------------------
         
     | 
| 
      
 30830 
     | 
    
         
            +
            DocumentTest: test_last_class_method_returns_single_item
         
     | 
| 
      
 30831 
     | 
    
         
            +
            --------------------------------------------------------
         
     | 
| 
      
 30832 
     | 
    
         
            +
            -------------------------------------------------
         
     | 
| 
      
 30833 
     | 
    
         
            +
            DocumentTest: test_multi_response_with_right_data
         
     | 
| 
      
 30834 
     | 
    
         
            +
            -------------------------------------------------
         
     | 
| 
      
 30835 
     | 
    
         
            +
            ---------------------------------------
         
     | 
| 
      
 30836 
     | 
    
         
            +
            DocumentTest: test_new_document_have_id
         
     | 
| 
      
 30837 
     | 
    
         
            +
            ---------------------------------------
         
     | 
| 
      
 30838 
     | 
    
         
            +
            -----------------------------------------
         
     | 
| 
      
 30839 
     | 
    
         
            +
            DocumentTest: test_new_in_memory_document
         
     | 
| 
      
 30840 
     | 
    
         
            +
            -----------------------------------------
         
     | 
| 
      
 30841 
     | 
    
         
            +
            ------------------------------------
         
     | 
| 
      
 30842 
     | 
    
         
            +
            DocumentTest: test_query_custom_view
         
     | 
| 
      
 30843 
     | 
    
         
            +
            ------------------------------------
         
     | 
| 
      
 30844 
     | 
    
         
            +
            ------------------------------------------
         
     | 
| 
      
 30845 
     | 
    
         
            +
            DocumentTest: test_soft_delete_on_document
         
     | 
| 
      
 30846 
     | 
    
         
            +
            ------------------------------------------
         
     | 
| 
      
 30847 
     | 
    
         
            +
            -------------------------------------------
         
     | 
| 
      
 30848 
     | 
    
         
            +
            DocumentTest: test_will_have_key_properties
         
     | 
| 
      
 30849 
     | 
    
         
            +
            -------------------------------------------
         
     | 
| 
      
 30850 
     | 
    
         
            +
            --------------------------------------------------------
         
     | 
| 
      
 30851 
     | 
    
         
            +
            DocumentTest: test_will_have_object_with_boolean?_method
         
     | 
| 
      
 30852 
     | 
    
         
            +
            --------------------------------------------------------
         
     | 
| 
      
 30853 
     | 
    
         
            +
            ------------------------------------------------
         
     | 
| 
      
 30854 
     | 
    
         
            +
            DocumentTest: test_will_have_only_set_properties
         
     | 
| 
      
 30855 
     | 
    
         
            +
            ------------------------------------------------
         
     | 
| 
      
 30856 
     | 
    
         
            +
            ----------------------------------------------------------------
         
     | 
| 
      
 30857 
     | 
    
         
            +
            DocumentTest: test_with_default_will_return_default_value_on_nil
         
     | 
| 
      
 30858 
     | 
    
         
            +
            ----------------------------------------------------------------
         
     | 
| 
      
 30859 
     | 
    
         
            +
            -----------------------------------
         
     | 
| 
      
 30860 
     | 
    
         
            +
            DocumentTest: test_with_timestamps!
         
     | 
| 
      
 30861 
     | 
    
         
            +
            -----------------------------------
         
     | 
    
        metadata
    CHANGED
    
    | 
         @@ -1,14 +1,14 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            --- !ruby/object:Gem::Specification
         
     | 
| 
       2 
2 
     | 
    
         
             
            name: dolly
         
     | 
| 
       3 
3 
     | 
    
         
             
            version: !ruby/object:Gem::Version
         
     | 
| 
       4 
     | 
    
         
            -
              version: 0.5. 
     | 
| 
      
 4 
     | 
    
         
            +
              version: 0.5.1
         
     | 
| 
       5 
5 
     | 
    
         
             
            platform: ruby
         
     | 
| 
       6 
6 
     | 
    
         
             
            authors:
         
     | 
| 
       7 
7 
     | 
    
         
             
            - javierg
         
     | 
| 
       8 
8 
     | 
    
         
             
            autorequire: 
         
     | 
| 
       9 
9 
     | 
    
         
             
            bindir: bin
         
     | 
| 
       10 
10 
     | 
    
         
             
            cert_chain: []
         
     | 
| 
       11 
     | 
    
         
            -
            date: 2013-11- 
     | 
| 
      
 11 
     | 
    
         
            +
            date: 2013-11-21 00:00:00.000000000 Z
         
     | 
| 
       12 
12 
     | 
    
         
             
            dependencies:
         
     | 
| 
       13 
13 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       14 
14 
     | 
    
         
             
              name: rails
         
     |