mighty_grid 0.2.1 → 0.2.2

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 4b86bd1ed6d0734fa6d924b5b462469828a65ee0
4
- data.tar.gz: 40241a4547e70b2829b4abe1e579cb757ea44fb2
3
+ metadata.gz: f7f9c3fe294d2ca3e018c9423d017080db7f0672
4
+ data.tar.gz: b4ee536a54684468aecaaa5637f6d95e026f2ae0
5
5
  SHA512:
6
- metadata.gz: 7b364645a807c3268e3f073118f30832c852e9a312f9cb21e554122579a2d5ef27f3480ad43237178c253677f5fa05fceb0336b1b9103d67e98836a98ffba7d2
7
- data.tar.gz: 3c25be9911a6eb1905a455a53c08f5e4419c97d1ce2fcebe06ca04f53e976d7c9ebabd2fc51ae6a0a413f55a3fb449cb9a336222e28afaa1cd10e7299a5ff201
6
+ metadata.gz: 65b8a28c2bef8f954d51dde1fc7f926ddd7952bb39aea2e7e14016d033cfb2a3d1a9f9e21995b59191904139221f34e6bd75fcd88814099ccd59563c5338e4c5
7
+ data.tar.gz: 1ca07348c0c9bca8cd89f9e0aa142717554ad9f5c7ba1b7bf94a0ef42a343dcb8b625ffab72d4e89a5a506de10f6000f8ff303989dfb4119d4754e7116dab04b
data/.travis.yml CHANGED
@@ -6,10 +6,11 @@ rvm:
6
6
 
7
7
  script: bundle exec rake spec
8
8
 
9
- env:
10
- CODECLIMATE_REPO_TOKEN: 47bc411a11ccfed015bf25395d8204600c899e530c1c4beed1b7197aa61c6fb6
11
-
12
9
  gemfile:
13
10
  - gemfiles/rails_32.gemfile
14
11
  - gemfiles/rails_40.gemfile
15
- - gemfiles/rails_41.gemfile
12
+ - gemfiles/rails_41.gemfile
13
+
14
+ addons:
15
+ code_climate:
16
+ repo_token: 47bc411a11ccfed015bf25395d8204600c899e530c1c4beed1b7197aa61c6fb6
data/Rakefile CHANGED
@@ -1,9 +1,5 @@
1
- require 'bundler'
2
- Bundler::GemHelper.install_tasks
3
-
4
1
  require "bundler/gem_tasks"
5
2
  require 'appraisal'
6
- require 'rspec/core'
7
3
  require 'rspec/core/rake_task'
8
4
 
9
5
  RSpec::Core::RakeTask.new(:spec) do |spec|
@@ -31,7 +31,7 @@ module MightyGrid
31
31
 
32
32
  def read
33
33
  apply_filters
34
- @relation = @relation.order(@mg_params[:order] => @mg_params[:order_direction].to_sym) if @mg_params[:order].present? && @mg_params[:order_direction].present?
34
+ @relation = @relation.order(@mg_params[:order] => current_order_direction.to_sym) if @mg_params[:order].present? && current_order_direction.present?
35
35
  @relation = @relation.page(@mg_params[:page]).per(@mg_params[:per_page])
36
36
  end
37
37
 
@@ -78,10 +78,19 @@ module MightyGrid
78
78
  end
79
79
 
80
80
  def order_params(attribute)
81
- {@name => {order: attribute, order_direction: order_direction}}
81
+ direction = attribute.to_s == @mg_params[:order] ? another_order_direction : 'asc'
82
+ {@name => {order: attribute, order_direction: direction}}
82
83
  end
83
84
 
84
- def order_direction
85
+ def current_order_direction
86
+ direction = nil
87
+ if current_grid_params.has_key?('order_direction') && ['asc', 'desc'].include?(current_grid_params['order_direction'].downcase)
88
+ direction = current_grid_params['order_direction'].downcase
89
+ end
90
+ direction
91
+ end
92
+
93
+ def another_order_direction
85
94
  (current_grid_params.has_key?('order_direction')) ? (['asc', 'desc'] - [current_grid_params['order_direction'].to_s]).first : MightyGrid.config.order_direction
86
95
  end
87
96
 
@@ -1,3 +1,3 @@
1
1
  module MightyGrid
2
- VERSION = "0.2.1"
2
+ VERSION = "0.2.2"
3
3
  end
@@ -1,11 +1,13 @@
1
+ # MODELS
1
2
  class Product < ActiveRecord::Base
2
3
  end
3
4
 
4
- #migrations
5
+ # MIGRATIONS
5
6
  class CreateAllTables < ActiveRecord::Migration
6
7
  def self.up
7
- create_table(:products) { |t| t.string :name }
8
+ create_table(:products) { |t| t.string :name; t.text :description }
8
9
  end
9
10
  end
11
+
10
12
  ActiveRecord::Migration.verbose = false
11
13
  CreateAllTables.up
@@ -19,23 +19,24 @@ describe MightyGrid::Base do
19
19
  its(:relation) { should == Product }
20
20
  its(:klass) { should == Product }
21
21
  its(:current_grid_params) { should == {} }
22
- its(:order_direction) { should == MightyGrid.config.order_direction }
22
+ its(:current_order_direction) { should == nil }
23
+ its(:another_order_direction) { should == 'asc' }
23
24
  its(:filter_param_name) { should == 'f' }
24
25
  context 'controller' do
25
- it { instance_variable_get(:@controller).should == @controller }
26
+ it { instance_variable_get(:@controller).should be_an_instance_of ActionView::TestCase::TestController }
26
27
  end
27
28
  end
28
29
 
29
30
  context 'with custom' do
30
31
  subject { MightyGrid::Base.new(Product, @controller, page: 2, per_page: 10, name: 'grid1') }
31
- its(:options) { should == {page: 2, per_page: 10, name: 'grid1'} }
32
+ its(:options) { should == @default_options.merge(page: 2, per_page: 10, name: 'grid1') }
32
33
  end
33
34
 
34
35
  context 'with custom' do
35
36
  before(:all){ @controller.params = {'grid' => {page: 5, per_page: 30, name: 'grid2'}} }
36
37
  subject { MightyGrid::Base.new(Product, @controller) }
37
38
  its(:params) { should == @controller.params }
38
- its(:mg_params) { should == {page: 5, per_page: 30, name: 'grid2'} }
39
+ its(:mg_params) { should == @default_options.merge(page: 5, per_page: 30, name: 'grid2') }
39
40
  after(:all){ @controller.params = {} }
40
41
  end
41
42
 
@@ -48,6 +49,65 @@ describe MightyGrid::Base do
48
49
  before(:all){ @controller.params = {'grid'=>{per_page: 30}} }
49
50
  subject { MightyGrid::Base.new(Product, @controller).get_current_grid_param(:per_page) }
50
51
  it { should == 30 }
52
+ after(:all){ @controller.params = {} }
53
+ end
54
+
55
+ describe '#current_order_direction' do
56
+ context 'with ASC controller param' do
57
+ before(:all){ @controller.params = {'grid'=>{'order_direction' => 'asc'}} }
58
+ subject { MightyGrid::Base.new(Product, @controller) }
59
+ its(:current_order_direction) { should == 'asc' }
60
+ after(:all){ @controller.params = {} }
61
+ end
62
+
63
+ context 'with DESC controller param' do
64
+ before(:all){ @controller.params = {'grid'=>{'order_direction' => 'desc'}} }
65
+ subject { MightyGrid::Base.new(Product, @controller) }
66
+ its(:current_order_direction) { should == 'desc' }
67
+ after(:all){ @controller.params = {} }
68
+ end
69
+
70
+ context 'with BAD controller param' do
71
+ before(:all){ @controller.params = {'grid'=>{'order_direction' => 'bad'}} }
72
+ subject { MightyGrid::Base.new(Product, @controller) }
73
+ its(:current_order_direction) { should == nil }
74
+ after(:all){ @controller.params = {} }
75
+ end
76
+ end
77
+
78
+ describe '#another_order_direction' do
79
+ context 'with ASC controller param' do
80
+ before(:all){ @controller.params = {'grid'=>{'order_direction' => 'asc'}} }
81
+ subject { MightyGrid::Base.new(Product, @controller) }
82
+ its(:another_order_direction) { should == 'desc' }
83
+ after(:all){ @controller.params = {} }
84
+ end
85
+
86
+ context 'with DESC controller param' do
87
+ before(:all){ @controller.params = {'grid'=>{'order_direction' => 'desc'}} }
88
+ subject { MightyGrid::Base.new(Product, @controller) }
89
+ its(:another_order_direction) { should == 'asc' }
90
+ after(:all){ @controller.params = {} }
91
+ end
92
+
93
+ context 'with BAD controller param' do
94
+ before(:all){ @controller.params = {'grid'=>{'order_direction' => 'bad'}} }
95
+ subject { MightyGrid::Base.new(Product, @controller) }
96
+ its(:another_order_direction) { should == 'asc' }
97
+ after(:all){ @controller.params = {} }
98
+ end
99
+ end
100
+
101
+ describe '#order_params' do
102
+ before(:all){ @controller.params = {'grid'=>{'order' => 'name', 'order_direction' => 'asc'}} }
103
+ subject { MightyGrid::Base.new(Product, @controller) }
104
+ context 'with current order attribute' do
105
+ it { subject.order_params(:name).should == {'grid'=>{order: :name, order_direction: 'desc'}} }
106
+ end
107
+ context 'with other order attribute' do
108
+ it { subject.order_params(:description).should == {'grid'=>{order: :description, order_direction: 'asc'}} }
109
+ end
110
+ after(:all){ @controller.params = {} }
51
111
  end
52
112
 
53
113
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mighty_grid
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.1
4
+ version: 0.2.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - jurrick
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-05-11 00:00:00.000000000 Z
11
+ date: 2014-05-13 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler