Permalink
Commits on Jan 11, 2012
  1. [REVERT][FIX] Fix the URL-incompatible translation of namespaced mode…

    karmi committed Jan 7, 2012
    …ls into `document_type`
    
    Revert "[ACTIVEMODEL][FIX] Fix the incorrect translation of namespaced models into `document_type`".
    
    The "proper" translation translates `MyNamespace::MyModel` to `my_namespace/my_model`, which
    allows proper loading of namespaced models, but fucks up the encoded URL, because of something like:
    http://.../indexname/my_namespace/my_model/_search?...
    
    This reverts commit 89bc663.
    
    See #189.
Commits on Jan 7, 2012
  1. [TEST] Fixed test failure because of "/" in `document_type` of namesp…

    karmi committed Jan 7, 2012
    …aced model
    
    TODO: This is related to patch in #189, and actually means namespaced models cannot be used with Tire.
  2. [REFACTOR] Changed that the Search::Search#perform method is lazy loa…

    greglearns committed with karmi Dec 23, 2011
    …ded (allows chainability)
    
    DSL#search and Search::Search lazy load data and are chainable, until #results or #response called.
    
    This allows something like this:
    
        s = Tire.search('articles') { query { string 'title:T*' } }
        s.filter :terms, :tags => ['ruby']
        p s.results
  3. [ACTIVEMODEL][FIX] Fix the incorrect translation of namespaced models…

    ddnexus committed with karmi Dec 28, 2011
    … into `document_type`
    
    When loading the namespaced models from ES, the exception: "NameError: uninitialized constant" was raised.
    
    This is due to the fact that ActiveModel does, for reasons unknown, funky shit here: <https://github.com/rails/rails/blob/v3.1.3/activemodel/lib/active_model/naming.rb#L50-52>
    
    Closes #189.
  4. [ACTIVEMODEL] Added injection of the `paginate` method when missing (…

    chromeragnarok committed with karmi Dec 30, 2011
    …Kaminari)
    
    The `paginate` method, needed for the import task, is injected in the class being imported
    when the class implements Kaminari pagination, so the import Rake task works out of the box.
    
    Closes #191. Also see: #48, #108.
  5. [ACTIVEMODEL] Added the `:as` option for model mapping to dynamically…

    ream88 committed with karmi Dec 23, 2011
    … set property value in serialization
    
    Example:
    
        class Article
          belongs_to :author
    
          mapping do
            indexes :author, as: proc { author.name }
            indexes :author_email, as: 'author.email'
          end
        end
    
    Ccloses #184, closes #186.
Commits on Jan 6, 2012
  1. [FIX] Index#retrieve returns nil when the document doesn't exist

    dylanahsmith committed with karmi Jan 6, 2012
    Previously an exception was raised on document.update(h['fields'])
    since h['field'] returned nil:
    
        index = Tire::Index.new("empty")
        index.create
        puts index.retrieve("doc", 'NOTEXIST').inspect
    
    Closes #193.
Commits on Dec 23, 2011
  1. [HTTP][FIX] Re-raise the RestClient::RequestTimeout and RestClient::S…

    dylanahsmith committed with karmi Dec 13, 2011
    …erverBrokeConnection exceptions
    
    These exceptions should be re-raised so the user can catch it and possibly try the search at another node, etc.
    
    Closes #170, closes #171
Commits on Dec 18, 2011
  1. [FIX] Fixed an error where facets did not respect the "blocks with ar…

    itayco committed with karmi Dec 18, 2011
    …guments" DSL variant
    
    
    Closes #176.
Commits on Dec 12, 2011
Commits on Dec 10, 2011
  1. [FIX] Use currently set `Configuration.url` in `Search::Search#perfor…

    dylanahsmith committed with karmi Dec 8, 2011
    …m` and don't freeze it in initializer
    
    Makes it easier to re-perform a failed search on another server, eg.:
    
        search = Tire::Search::Search.new('articles')
        # build search ...
        servers = ["http://localhost:9200", "http://localhost:9201"]
        begin
          Tire::Configuration.url servers[0]
          search.perform
        rescue Errno::ECONNREFUSED => e
          Tire::Configuration.url servers[1]
          search.perform
        end
        # do something with results ...
    
    Closes #163.
Commits on Dec 1, 2011
Commits on Nov 30, 2011
  1. [PERSISTENCE] Changed that search in persistence returns instances of…

    karmi committed with vhyza Nov 30, 2011
    … model not Item
  2. [FIX][PERSISTENCE] Fixed an error where find by ids was not returning…

    vhyza committed Nov 30, 2011
    … more than 10 results
Commits on Nov 29, 2011
  1. [DOC] README updates

    karmi committed Nov 29, 2011
  2. [ACTIVEMODEL] Added the support for casting model properties as Ruby …

    karmi committed Nov 29, 2011
    …objects
    
    In Tire::Persistence, you define a model property to be casted
    as a custom Ruby class instance.
    
    Currently, the implementation expects your class to take a Hash of attributes
    on initialization. (There are plans to support custom initialization logic.)
    
    You can cast either single values (see `Author` in the example below),
    or collections of values (see `[Comment]`). The behaviour was inspired
    by the CouchRest-Model gem.
    
    Also, all strings which conform to the UTC time format are automatically
    converted to Time objects.
    
    Also, all Hashes are automatically converted to Hashr [https://rubygems.org/gems/hashr]
    instances, allowing easy "dot-style" access to nested hash properties.
    
    Example:
    
        class Article
          include Tire::Model::Persistence
    
          validates_presence_of :title, :author
    
          property :title,        :analyzer => 'snowball'
          property :published_on, :type => 'date'
          property :tags,         :default => [], :analyzer => 'keyword'
          property :author,       :class => Author
          property :comments,     :class => [Comment]
        end
    
    See the test suite for more information.
  3. [GEMS] Added Hashr (https://rubygems.org/gems/hashr) as dependency

    karmi committed Nov 29, 2011
    Hashr allows to easily wrap Hashes in object-like manner:
    
        config = Hashr.new('foo' => { 'bar' => 'bar' })
    
        config.foo?     # => true
        config.foo      # => { :bar => 'bar' }
    
        config.foo.bar? # => true
        config.foo.bar  # => 'bar'
    
    See <https://github.com/svenfuchs/hashr> for more info.
  4. [REFACTORING] Extracted updating item/model instance attributes to de…

    karmi committed Nov 29, 2011
    …dicated method (`__update_attributes`)
  5. [ACTIVEMODEL] Added support for property defaults in Tire::Model::Per…

    karmi committed Nov 29, 2011
    …sistence
    
    In the new implementation of the `property` method, you can define default values for your model attributes:
    
        class Article
          include Tire::Model::Persistence
    
          property :title
          property :tags, :default => []
        end
    
        Article.create title: 'Test'
    
        Article.all.first.title
        # => 'Test'
    
        Article.all.first.tags
        # => []
  6. Release 0.3.12

    karmi committed Nov 29, 2011
  7. [REFACTORING] Removed mysterious `store_mapping` method and checks, r…

    karmi committed Nov 29, 2011
    …emoved `id` and `type` from serialized document
    
    Accidentally closes #147.
Commits on Nov 25, 2011
  1. [FIX] Added proper Github URL to Rails application template to README

    Jakub Dušek committed with karmi Nov 25, 2011
    For some users, the `rails new` command cannot accept redirects. Closes #154.
Commits on Nov 12, 2011
Commits on Nov 11, 2011
  1. Release 0.3.11

    karmi committed Nov 11, 2011
Commits on Nov 10, 2011
  1. Release 0.3.10

    karmi committed Nov 10, 2011
Commits on Nov 7, 2011
  1. [FIX] Tighten up the Logger interface and make it easier to pass inst…

    karmi committed Nov 7, 2011
    …ances of Logger/Log4r etc.
    
    Example usage:
    
        require 'fileutils'
        require 'active_support/buffered_logger'
    
        mylog = ActiveSupport::BufferedLogger.new 'buffered-logger.log'
        mylog.instance_eval do
          alias :write :info
        end
    
        require 'tire'
    
        Tire.configure { logger mylog }
    
    Closes #142.
Commits on Nov 6, 2011
Commits on Nov 4, 2011
  1. [FIX] [REFACTORING] Extracted getting the response body to Logger#log…

    karmi committed Nov 4, 2011
    …ged in index methods