GitHub PushEvent at 2014-06-01 04:01:56
Repository: elasticsearch-rails
Actor: AaronRustad
Payload: {"shas":[["304615e5c548448e95cdbca29de197b5a789d0d3","453192a139c75850a5730772c9267bc5c4f22498@elasticsearch.com","[MODEL] Fixed the incorrect protection for existing model methods (such as `search`)\n\nDue to the different scope in the `class << self`, the `respond_to?` condition always returned false,\neven when the model had in fact defined the method in question (such as `search`).\n\nInstead of using `respond_to?`, `self.public_instance_methods.include?` has been used.\n\nThe concrete example is eg. [Ransack's](https://github.com/activerecord-hackery/ransack) `search` method.\n\nCloses #96","Karel Minarik",false],["6e199e43234a076654233d585b9d450ae4ef105a","453192a139c75850a5730772c9267bc5c4f22498@elasticsearch.com","[STORE] Added the blank skeleton of the \"elasticsearch-persistence\" gem","Karel Minarik",false],["4488ea570c10f8af59338135890a29a288ff20e4","453192a139c75850a5730772c9267bc5c4f22498@elasticsearch.com","[STORE] Added the Persistence::Repository module and client integration","Karel Minarik",false],["48d7132245f836f0aa04d2778a574414cb3b75bd","453192a139c75850a5730772c9267bc5c4f22498@elasticsearch.com","[STORE] Added the default `Repository::Class` for convenience\n\nInstead of:\n\n    class MyRepository\n      include Elasticsearch::Persistence::Repository\n    end\n\n    repository = MyRepository.new\n\nyou can do:\n\n    repository = Elasticsearch::Persistence::Repository.new\n\nThe module function `new` returns an Elasticsearch::Persistence::Repository::Class instance.","Karel Minarik",false],["e5d9ffbe51e0674ee49ddafb5dda783fde38f3d5","453192a139c75850a5730772c9267bc5c4f22498@elasticsearch.com","[STORE] Added the `Naming` module\n\nProvides getting Ruby class from Elasticsearch type and vice versa,\nID from the document (Hash), as well as setting the `klass`\nfor the whole Repository instance.","Karel Minarik",false],["7165f3d0075977492c3718cd69f4013b98440214","453192a139c75850a5730772c9267bc5c4f22498@elasticsearch.com","[STORE] Added the `Serialize` module\n\nThe repository uses two symmetric methods: `serialize` and `deserialize`\nto convert documents when:\n\n1. passing them to the storage,\n2. initializing Ruby objects when retrieving documents from storage\n\nEvery repository can easily customize (overload) these methods,\nto provide (de)serialization for complex use-cases, such as storing\nPDF files or images in the storage.\n\nSee:\n\n* https://www.braintreepayments.com/braintrust/untangle-domain-and-persistence-logic-with-curator\n* https://github.com/braintree/curator/blob/master/lib/curator/repository.rb","Karel Minarik",false],["5938ef051fb322dfe9b1010a8512d90606e64a22","453192a139c75850a5730772c9267bc5c4f22498@elasticsearch.com","[STORE] Added the `Store` module\n\nThe `Store` module saves and deletes the documents in Elasticsearch\nvia the `save` and `delete` methods.","Karel Minarik",false],["41a36952ac2bc41fe9748498461754fd1d4ac890","453192a139c75850a5730772c9267bc5c4f22498@elasticsearch.com","[STORE] Added the `Find` module\n\nThe module provides method to find one or multiple documents and to\ncheck for documents existence.\n\nThe methods return `deserialize`-d Ruby objects based on `klass` or\nthe document Elasticsearch `_type`.\n\nMissing documents are kept in the resulting Array as `nil` objects.","Karel Minarik",false],["7bcd91d28261a35be00c27b54531f7a672e5fed3","453192a139c75850a5730772c9267bc5c4f22498@elasticsearch.com","[STORE] Added the `Search` module\n\nThe module provides an interface for getting objects from the repository\nbased on a search query.\n\nThe results are wrapped in the `Response::Results` instance, which\nproxies methods to the `results` property.","Karel Minarik",false],["485a4f917448c7aea90e791c4e0986d5a1135f60","453192a139c75850a5730772c9267bc5c4f22498@elasticsearch.com","[STORE] Added the DSL variant of `klass` setter method\n\nSo:\n\n    reposistory.klass = Foobar\n\nis equivalent to:\n\n    repository.klass Foobar","Karel Minarik",false],["c4b1d4147726eba00f6698e80ecf17f011af50ae","453192a139c75850a5730772c9267bc5c4f22498@elasticsearch.com","[STORE] Added the methods from the \"elasticsearch-model\" gem\n\nIncluded `Elasticsearch::Model::Indexing::ClassMethods` to support setting the index name and document type,\nand to allow configuring the mappings and settings for the index.\n\nSee:\n\nhttps://github.com/elasticsearch/elasticsearch-rails/blob/6f4a57a/elasticsearch-model/lib/elasticsearch/model/indexing.rb","Karel Minarik",false],["5160424a5694cfcba5823f71c49ca5bddde1a002","453192a139c75850a5730772c9267bc5c4f22498@elasticsearch.com","[STORE] Refactored the `:index` paramter to use repository `index_name`","Karel Minarik",false],["098978445aadb4b52fb333a9ea460c435f359de8","453192a139c75850a5730772c9267bc5c4f22498@elasticsearch.com","[STORE] Changed that `document_type` method returns `nil` when no `klass` is set","Karel Minarik",false],["caecfa9f38c80e70d7939042360266560b3fb9ba","453192a139c75850a5730772c9267bc5c4f22498@elasticsearch.com","[STORE] Changed that the `Store` methods reflect that `klass` returns a Ruby class, not a string","Karel Minarik",false],["2fbc3aab1c4d7e6b3c4a2e860bc8669d778c6ca3","453192a139c75850a5730772c9267bc5c4f22498@elasticsearch.com","[STORE] Added the `index` and `type` aliases for `index_name` and `document_type`","Karel Minarik",false],["6d739dde7e55c6706b5454d706156ee21b0eef8c","453192a139c75850a5730772c9267bc5c4f22498@elasticsearch.com","[STORE] Added, that `document_type` can set the document type for repository\n\nAlso available as `document_type=\"foo\"`.","Karel Minarik",false],["e4e6ff2634feb29f6f43672542bf4d8e41c224f4","453192a139c75850a5730772c9267bc5c4f22498@elasticsearch.com","[STORE] Changed, that repository methods respect `document_type` when it's set\n\nWhen the `document_type` is configured for the repository, it is used\nin `save`, `delete`, `find`, etc method to set the `type` parameter\nfor the client.\n\nWhen the `document_type` is not set, the old behaviour of inferring\nfrom `klass`, `document.class`, etc. is preserved.","Karel Minarik",false],["c391a3b287dcca2556b6d67f34437c83315df568","453192a139c75850a5730772c9267bc5c4f22498@elasticsearch.com","[STORE] Implemented the gateway pattern for the repository integration\n\nTo provide flexibility to the end-user, the integration of the \"Repository\" module\nhas been refactored to proxy all repository methods via a gateway.\n\nThis allows users to set up the repository in a custom class, with class methods, in a DSL-like fashion:\n\n    class NoteRepository\n      include Elasticsearch::Persistence::Repository\n\n      klass Note\n      index :my_notes\n\n      mapping do\n        indexes :title, analyzer: 'snowball'\n      end\n\n      client.transport.logger = Logger.new(STDERR)\n\n      gateway do\n        def serialize(document)\n          super.merge(special: 'stuff')\n        end\n      end\n    end\n\nThe bundled Repository class can be configured via a block passed to the initializer:\n\n    repository = Elasticsearch::Persistence::Repository.new do\n      klass Note\n      index :my_notes\n\n      mapping do\n        indexes :title, analyzer: 'snowball'\n      end\n\n      client.transport.logger = Logger.new(STDERR)\n    end\n\nThe repository methods can be accessed via the class or instance methods:\n\n    NoteRepository.klass Note\n    repository.klass Note","Karel Minarik",false],["63da64aef4352d6c3280106bdf2875d781835b22","453192a139c75850a5730772c9267bc5c4f22498@elasticsearch.com","[STORE] Added, that `index_name` is inferred from the including class\n\n    class NoteRepository\n      include Elasticsearch::Persistence::Repository\n    end\n\n    NoteRepository.index_name\n    => \"note_repository\"","Karel Minarik",false],["1299c0bd6cb696588e0a60cbfd32be2025f53e5c","453192a139c75850a5730772c9267bc5c4f22498@elasticsearch.com","[STORE] Added, that the repository class reflects the `:index` option\n\nAlso, when using the \"shortcut\" to create the repository, a default\nname of `repository` is set.","Karel Minarik",false]],"size":39,"ref":"refs/heads/multiple_search_types","head":"31d930e55fb0a450332be2f37bf932a7d6a7ca30"}