jqgrid_for_rails 0.1.0 → 0.2.0
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.
- data/CHANGELOG.rdoc +8 -0
- data/README.rdoc +6 -2
- data/jqgrid_for_rails.gemspec +22 -0
- data/lib/app/helpers/jqgrids_helper.rb +34 -6
- data/lib/jqgrid_for_rails/version.rb +4 -0
- data/test/jqgrids_helper_test.rb +31 -1
- metadata +7 -4
    
        data/CHANGELOG.rdoc
    ADDED
    
    
    
        data/README.rdoc
    CHANGED
    
    | @@ -11,9 +11,13 @@ https://github.com/Juanmcuello/jqgrid_for_rails_example | |
| 11 11 |  | 
| 12 12 | 
             
            == Installation
         | 
| 13 13 |  | 
| 14 | 
            -
             | 
| 14 | 
            +
            As a gem:
         | 
| 15 15 |  | 
| 16 | 
            -
              $  | 
| 16 | 
            +
              $ gem install jqgrid_for_rails
         | 
| 17 | 
            +
             | 
| 18 | 
            +
            As a plugin:
         | 
| 19 | 
            +
             | 
| 20 | 
            +
              $ rails plugin install git://github.com/Juanmcuello/jqgrid_for_rails.git
         | 
| 17 21 |  | 
| 18 22 |  | 
| 19 23 | 
             
            == Views
         | 
| @@ -0,0 +1,22 @@ | |
| 1 | 
            +
            # -*- encoding: utf-8 -*-
         | 
| 2 | 
            +
            $:.push File.expand_path("../lib", __FILE__)
         | 
| 3 | 
            +
            require "jqgrid_for_rails/version"
         | 
| 4 | 
            +
             | 
| 5 | 
            +
            Gem::Specification.new do |s|
         | 
| 6 | 
            +
              s.name        = "jqgrid_for_rails"
         | 
| 7 | 
            +
              s.version     = JqgridForRails::VERSION.dup
         | 
| 8 | 
            +
              s.platform    = Gem::Platform::RUBY
         | 
| 9 | 
            +
              s.summary     = "Simple solution to create jqgrids easily using Rails"
         | 
| 10 | 
            +
              s.email       = "juanmacuello@gmail.com"
         | 
| 11 | 
            +
              s.homepage    = "http://github.com/Juanmcuello/jqgrid_for_rails"
         | 
| 12 | 
            +
              s.description = "Simple solution to create jqgrids easily using Rails"
         | 
| 13 | 
            +
              s.authors     = ['Juan Manuel Cuello']
         | 
| 14 | 
            +
             | 
| 15 | 
            +
              s.files         = `git ls-files`.split("\n")
         | 
| 16 | 
            +
              s.test_files    = `git ls-files -- {test}/*`.split("\n")
         | 
| 17 | 
            +
              s.executables   = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
         | 
| 18 | 
            +
              s.require_paths = ["lib"]
         | 
| 19 | 
            +
             | 
| 20 | 
            +
              s.add_dependency("will_paginate")
         | 
| 21 | 
            +
            end
         | 
| 22 | 
            +
             | 
| @@ -60,7 +60,7 @@ module JqgridsHelper | |
| 60 60 | 
             
              #
         | 
| 61 61 | 
             
              #  jqgrid 'invoices_list', options, grid_options
         | 
| 62 62 | 
             
              #
         | 
| 63 | 
            -
              def jqgrid grid_id, options = {}, grid_options = {}, nav_options | 
| 63 | 
            +
              def jqgrid grid_id, options = {}, grid_options = {}, *nav_options
         | 
| 64 64 |  | 
| 65 65 | 
             
                html_output = []
         | 
| 66 66 |  | 
| @@ -71,12 +71,12 @@ module JqgridsHelper | |
| 71 71 | 
             
                # Pager
         | 
| 72 72 | 
             
                if grid_options[:pager]
         | 
| 73 73 |  | 
| 74 | 
            -
                  pager_id =  | 
| 74 | 
            +
                  pager_id = pager_id_from_options(grid_options)
         | 
| 75 75 |  | 
| 76 76 | 
             
                  html_output << content_tag(:div, nil, :id => pager_id) if options[:html_tags]
         | 
| 77 77 |  | 
| 78 | 
            -
                   | 
| 79 | 
            -
                    js_output << "jQuery(\"##{grid_id}\").jqGrid(\"navGrid\", \"##{pager_id}\", #{nav_options | 
| 78 | 
            +
                  unless nav_options.empty?
         | 
| 79 | 
            +
                    js_output << "jQuery(\"##{grid_id}\").jqGrid(\"navGrid\", \"##{pager_id}\", #{format_nav_options(nav_options)});"
         | 
| 80 80 | 
             
                  end
         | 
| 81 81 | 
             
                end
         | 
| 82 82 |  | 
| @@ -89,12 +89,40 @@ module JqgridsHelper | |
| 89 89 |  | 
| 90 90 | 
             
            private
         | 
| 91 91 |  | 
| 92 | 
            +
              # Extracts the pager id from the options hash.
         | 
| 93 | 
            +
              #
         | 
| 94 | 
            +
              # jQgrid accepts three different formats to set the pager id option.
         | 
| 95 | 
            +
              #
         | 
| 96 | 
            +
              # 1 - jQuery('#my_pager_div')
         | 
| 97 | 
            +
              # 2 - #my_pager_div
         | 
| 98 | 
            +
              # 3 - my_pager_div
         | 
| 99 | 
            +
              #
         | 
| 100 | 
            +
              # === Example
         | 
| 101 | 
            +
              #
         | 
| 102 | 
            +
              #   pager_id_from_options({:pager => "jQuery('#my_pager_id')"})
         | 
| 103 | 
            +
              #     => 'my_pager_id'
         | 
| 104 | 
            +
              #
         | 
| 105 | 
            +
              def pager_id_from_options options
         | 
| 106 | 
            +
                pager_option = options[:pager]
         | 
| 107 | 
            +
             | 
| 108 | 
            +
                # jQuery('#my_pager_div')
         | 
| 109 | 
            +
                if pager_option =~ /^jQuery\(('|")#\w+('|")\)$/
         | 
| 110 | 
            +
                  pager_option.match(/#\w+/).to_s[1..-1]
         | 
| 111 | 
            +
                # #my_pager_div
         | 
| 112 | 
            +
                elsif pager_option =~ /^#\w+$/
         | 
| 113 | 
            +
                  pager_option.match(/#\w+/).to_s[1..-1]
         | 
| 114 | 
            +
                # my_pager_div
         | 
| 115 | 
            +
                else
         | 
| 116 | 
            +
                  pager_option
         | 
| 117 | 
            +
                end
         | 
| 118 | 
            +
              end
         | 
| 119 | 
            +
             | 
| 92 120 | 
             
              def wrap_with_document_ready! str
         | 
| 93 121 | 
             
                str.replace("jQuery(document).ready(function() {#{str}});")
         | 
| 94 122 | 
             
              end
         | 
| 95 123 |  | 
| 96 | 
            -
              def  | 
| 97 | 
            -
                 | 
| 124 | 
            +
              def format_nav_options nav_options
         | 
| 125 | 
            +
                nav_options.map {|e| (e || {}).to_json}.join(', ')
         | 
| 98 126 | 
             
              end
         | 
| 99 127 |  | 
| 100 128 | 
             
            end
         | 
    
        data/test/jqgrids_helper_test.rb
    CHANGED
    
    | @@ -50,11 +50,41 @@ class JqgridsHelperTest < Test::Unit::TestCase | |
| 50 50 | 
             
                        jQuery("#' + grid_id + '").jqGrid({
         | 
| 51 51 | 
             
                          "pager":jQuery(\'#' + pager_id + '\')
         | 
| 52 52 | 
             
                        });
         | 
| 53 | 
            -
                        jQuery("#grid_id").jqGrid("navGrid", "#gridpager", {});
         | 
| 54 53 | 
             
                      });'
         | 
| 55 54 | 
             
                expected << js.gsub(/\n\s+/, '') + "\n"
         | 
| 56 55 | 
             
                expected << '</script>'
         | 
| 57 56 |  | 
| 58 57 | 
             
              end
         | 
| 59 58 |  | 
| 59 | 
            +
              def test_jqgrid_nav_options
         | 
| 60 | 
            +
                @template = MockView.new
         | 
| 61 | 
            +
             | 
| 62 | 
            +
                grid_id = 'grid_id'
         | 
| 63 | 
            +
                pager_id = 'pager_id'
         | 
| 64 | 
            +
                grid_options = {:pager => "##{pager_id}"}
         | 
| 65 | 
            +
                options = {:on_document_ready => true, :html_tags => true}
         | 
| 66 | 
            +
                nav_items = {:del => true}
         | 
| 67 | 
            +
                del_config = {:closeOnEscape => true}
         | 
| 68 | 
            +
             | 
| 69 | 
            +
                expected = '<table id="'+grid_id+'"></table>' + "\n"
         | 
| 70 | 
            +
                expected << '<div id="'+pager_id+'"></div>' + "\n"
         | 
| 71 | 
            +
                expected << "<script>" + "\n"
         | 
| 72 | 
            +
                str =  'jQuery("#'+grid_id+'").jqGrid({"pager":"#'+pager_id+'"});'
         | 
| 73 | 
            +
                str << 'jQuery("#'+grid_id+'").jqGrid("navGrid", "#'+pager_id+'", {"del":true}, {}, {}, {"closeOnEscape":true});'
         | 
| 74 | 
            +
                expected << "jQuery(document).ready(function() {#{str}});" + "\n"
         | 
| 75 | 
            +
                expected << "</script>"
         | 
| 76 | 
            +
             | 
| 77 | 
            +
                assert_equal(expected, @template.jqgrid(grid_id,options,grid_options,nav_items,nil,nil,del_config))
         | 
| 78 | 
            +
              end
         | 
| 79 | 
            +
             | 
| 80 | 
            +
              def testi_pager_id_from_options
         | 
| 81 | 
            +
                @template = MockView.new
         | 
| 82 | 
            +
             | 
| 83 | 
            +
                assert_equal 'my_pager_div', @template.send(:pager_id_from_options, {:pager => "jQuery('#my_pager_div')"})
         | 
| 84 | 
            +
                assert_equal 'my_pager_div', @template.send(:pager_id_from_options, {:pager => 'jQuery("#my_pager_div")'})
         | 
| 85 | 
            +
                assert_equal 'my_pager_div', @template.send(:pager_id_from_options, {:pager => "#my_pager_div"})
         | 
| 86 | 
            +
                assert_equal 'my_pager_div', @template.send(:pager_id_from_options, {:pager => "my_pager_div"})
         | 
| 87 | 
            +
              end
         | 
| 88 | 
            +
             | 
| 89 | 
            +
             | 
| 60 90 | 
             
            end
         | 
    
        metadata
    CHANGED
    
    | @@ -1,13 +1,13 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification 
         | 
| 2 2 | 
             
            name: jqgrid_for_rails
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version 
         | 
| 4 | 
            -
              hash:  | 
| 4 | 
            +
              hash: 23
         | 
| 5 5 | 
             
              prerelease: false
         | 
| 6 6 | 
             
              segments: 
         | 
| 7 7 | 
             
              - 0
         | 
| 8 | 
            -
              -  | 
| 8 | 
            +
              - 2
         | 
| 9 9 | 
             
              - 0
         | 
| 10 | 
            -
              version: 0. | 
| 10 | 
            +
              version: 0.2.0
         | 
| 11 11 | 
             
            platform: ruby
         | 
| 12 12 | 
             
            authors: 
         | 
| 13 13 | 
             
            - Juan Manuel Cuello
         | 
| @@ -15,7 +15,7 @@ autorequire: | |
| 15 15 | 
             
            bindir: bin
         | 
| 16 16 | 
             
            cert_chain: []
         | 
| 17 17 |  | 
| 18 | 
            -
            date: 2011-01- | 
| 18 | 
            +
            date: 2011-01-25 00:00:00 -03:00
         | 
| 19 19 | 
             
            default_executable: 
         | 
| 20 20 | 
             
            dependencies: 
         | 
| 21 21 | 
             
            - !ruby/object:Gem::Dependency 
         | 
| @@ -42,14 +42,17 @@ extra_rdoc_files: [] | |
| 42 42 |  | 
| 43 43 | 
             
            files: 
         | 
| 44 44 | 
             
            - .gitignore
         | 
| 45 | 
            +
            - CHANGELOG.rdoc
         | 
| 45 46 | 
             
            - MIT-LICENSE
         | 
| 46 47 | 
             
            - README.rdoc
         | 
| 47 48 | 
             
            - Rakefile
         | 
| 48 49 | 
             
            - install.rb
         | 
| 50 | 
            +
            - jqgrid_for_rails.gemspec
         | 
| 49 51 | 
             
            - lib/app/helpers/jqgrids_helper.rb
         | 
| 50 52 | 
             
            - lib/jqgrid_for_rails.rb
         | 
| 51 53 | 
             
            - lib/jqgrid_for_rails/controllers/helpers.rb
         | 
| 52 54 | 
             
            - lib/jqgrid_for_rails/core_ext.rb
         | 
| 55 | 
            +
            - lib/jqgrid_for_rails/version.rb
         | 
| 53 56 | 
             
            - lib/tasks/jqgrid_for_rails.rake
         | 
| 54 57 | 
             
            - rails/init.rb
         | 
| 55 58 | 
             
            - test/controllers/helpers_test.rb
         |