filter_form 0.4.1 → 0.4.2
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.md +2 -0
- data/lib/filter_form/input_options/select/collection.rb +25 -0
- data/lib/filter_form/input_options_builder.rb +9 -0
- data/lib/filter_form/version.rb +1 -1
- metadata +2 -1
    
        checksums.yaml
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            ---
         | 
| 2 2 | 
             
            SHA1:
         | 
| 3 | 
            -
              metadata.gz:  | 
| 4 | 
            -
              data.tar.gz:  | 
| 3 | 
            +
              metadata.gz: a83442fb7f60aefce93393a49763bb4d66495b6e
         | 
| 4 | 
            +
              data.tar.gz: 2ded8529b6e92cecce469d4b33b5153627e8a3b7
         | 
| 5 5 | 
             
            SHA512:
         | 
| 6 | 
            -
              metadata.gz:  | 
| 7 | 
            -
              data.tar.gz:  | 
| 6 | 
            +
              metadata.gz: 9a5c647796b8f95a916084c1ebe3268677c26a496e106576ef6634b45eb72782e22a502aeeabfd37e9fc716f43cbf457dae5447338ef9786b27a9e59bdc326b3
         | 
| 7 | 
            +
              data.tar.gz: b3982e9af2e8457750805d14a0be2418aa1e2419eeac7e7d8ffc61f85cb4b0b2a3a5d24875fff1911224c593e59298d7f0680c0eaaba27a2f3c6fabde5fe7647
         | 
    
        data/README.md
    CHANGED
    
    | @@ -36,6 +36,7 @@ In your view file: | |
| 36 36 | 
             
              <%= f.filter_input :name      # string     %>
         | 
| 37 37 | 
             
              <%= f.filter_input :age       # integer    %>
         | 
| 38 38 | 
             
              <%= f.filter_input :city      # belongs_to %>
         | 
| 39 | 
            +
              <%= f.filter_input :parents   # collection %>
         | 
| 39 40 | 
             
              <%= f.filter_input :birthday  # date       %>
         | 
| 40 41 | 
             
              <%= f.filter_input :amount    # money      %>
         | 
| 41 42 | 
             
              <%= f.button :submit %>
         | 
| @@ -51,6 +52,7 @@ In your view file: | |
| 51 52 | 
             
                 `datetime`      | `datetime`                                      | `eq`                  | `input[type=text]`        |
         | 
| 52 53 | 
             
                 `date`          | `date`                                          | `eq`                  | `input[type=text]`        |
         | 
| 53 54 | 
             
                 `belongs_to`    | `belongs_to` association                        | `eq`                  | `select`                  |
         | 
| 55 | 
            +
                 `collection`    | `has_many` or `has_and_belongs_to_many` association | `eq`              | `select`                  |
         | 
| 54 56 | 
             
                 `money`         | `money` [monetized](https://github.com/RubyMoney/money-rails) attribute | `eq` | `input[type=text]` |
         | 
| 55 57 |  | 
| 56 58 | 
             
            ### Customization
         | 
| @@ -0,0 +1,25 @@ | |
| 1 | 
            +
            module FilterForm
         | 
| 2 | 
            +
              module InputOptions
         | 
| 3 | 
            +
                module Select
         | 
| 4 | 
            +
                  class Collection < FilterForm::InputOptions::Select::Base
         | 
| 5 | 
            +
                    private
         | 
| 6 | 
            +
             | 
| 7 | 
            +
                    def object_condition
         | 
| 8 | 
            +
                      object.base.conditions.select { |c| c.a.first.name == custom_attribute_name }.first
         | 
| 9 | 
            +
                    end
         | 
| 10 | 
            +
             | 
| 11 | 
            +
                    def collection
         | 
| 12 | 
            +
                      options[:collection] || attribute_name.to_s.camelize.singularize.constantize.all
         | 
| 13 | 
            +
                    end
         | 
| 14 | 
            +
             | 
| 15 | 
            +
                    def input_name
         | 
| 16 | 
            +
                      "q[#{ custom_attribute_name }_#{ predicate }]"
         | 
| 17 | 
            +
                    end
         | 
| 18 | 
            +
             | 
| 19 | 
            +
                    def custom_attribute_name
         | 
| 20 | 
            +
                      "#{ attribute_name }_id"
         | 
| 21 | 
            +
                    end
         | 
| 22 | 
            +
                  end
         | 
| 23 | 
            +
                end
         | 
| 24 | 
            +
              end
         | 
| 25 | 
            +
            end
         | 
| @@ -2,6 +2,7 @@ require 'filter_form/input_options/base' | |
| 2 2 |  | 
| 3 3 | 
             
            require 'filter_form/input_options/select/base'
         | 
| 4 4 | 
             
            require 'filter_form/input_options/select/belongs_to'
         | 
| 5 | 
            +
            require 'filter_form/input_options/select/collection'
         | 
| 5 6 |  | 
| 6 7 | 
             
            require 'filter_form/input_options/string/base'
         | 
| 7 8 | 
             
            require 'filter_form/input_options/string/date'
         | 
| @@ -56,6 +57,8 @@ module FilterForm | |
| 56 57 | 
             
                    'string/money'
         | 
| 57 58 | 
             
                  when :belongs_to
         | 
| 58 59 | 
             
                    'select/belongs_to'
         | 
| 60 | 
            +
                  when :collection
         | 
| 61 | 
            +
                    'select/collection'
         | 
| 59 62 | 
             
                  when :select2
         | 
| 60 63 | 
             
                    'select/select2'
         | 
| 61 64 | 
             
                  else
         | 
| @@ -67,6 +70,10 @@ module FilterForm | |
| 67 70 | 
             
                  object.klass.reflections[attribute_name] && object.klass.reflections[attribute_name].belongs_to?
         | 
| 68 71 | 
             
                end
         | 
| 69 72 |  | 
| 73 | 
            +
                def collection?
         | 
| 74 | 
            +
                  object.klass.reflections[attribute_name] && object.klass.reflections[attribute_name].collection?
         | 
| 75 | 
            +
                end
         | 
| 76 | 
            +
             | 
| 70 77 | 
             
                def money?
         | 
| 71 78 | 
             
                  object.klass.columns_hash["#{ attribute_name }_cents"].present?
         | 
| 72 79 | 
             
                end
         | 
| @@ -74,6 +81,8 @@ module FilterForm | |
| 74 81 | 
             
                def attribute_type
         | 
| 75 82 | 
             
                  if belongs_to?
         | 
| 76 83 | 
             
                    :belongs_to
         | 
| 84 | 
            +
                  elsif collection?
         | 
| 85 | 
            +
                    :collection
         | 
| 77 86 | 
             
                  elsif money?
         | 
| 78 87 | 
             
                    :money
         | 
| 79 88 | 
             
                  else
         | 
    
        data/lib/filter_form/version.rb
    CHANGED
    
    
    
        metadata
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: filter_form
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version: 0.4. | 
| 4 | 
            +
              version: 0.4.2
         | 
| 5 5 | 
             
            platform: ruby
         | 
| 6 6 | 
             
            authors:
         | 
| 7 7 | 
             
            - Evgeny Li
         | 
| @@ -113,6 +113,7 @@ files: | |
| 113 113 | 
             
            - lib/filter_form/input_options/base.rb
         | 
| 114 114 | 
             
            - lib/filter_form/input_options/select/base.rb
         | 
| 115 115 | 
             
            - lib/filter_form/input_options/select/belongs_to.rb
         | 
| 116 | 
            +
            - lib/filter_form/input_options/select/collection.rb
         | 
| 116 117 | 
             
            - lib/filter_form/input_options/string/base.rb
         | 
| 117 118 | 
             
            - lib/filter_form/input_options/string/date.rb
         | 
| 118 119 | 
             
            - lib/filter_form/input_options/string/money.rb
         |