sortability 1.0.0 → 1.1.1

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: bbdc9e49977965ce964ed77b4c14f31c1a8c771e2a46691a7328b862b653846b
4
- data.tar.gz: 8af55ed58e116a9adb941e2e4d0fc87fc530bce25ea5c49d3eca1f66b536dd5a
3
+ metadata.gz: 468cc73b34b9eeca08746606ce03659756b65e9743a2f94a84b3e91476684c3b
4
+ data.tar.gz: c351cb7e7185e39e2a40003d8e38a168bd09c7e7c85d24c15c54f164bacc82ed
5
5
  SHA512:
6
- metadata.gz: 59b9f1de09e97914319f9e5ffff0db36c74227e8d67cac491fbeb9e48f866eb09df5a330b1b781a9b8d5eb3f652a70410d17d76e5dd792dc958a9820f5963e10
7
- data.tar.gz: 21e9610b6552387393948733057f37526242282ee98a8617820be01065cf65b127db2670e1bf9800889cb74b9ad259fadbdc821ac455d304bef7149077f6c8c1
6
+ metadata.gz: 7aad0bc50eb8804585962e1f713bbc3afdaad93c2f044a1dffb85a9d146f4ae082d57e94de16ae9a24a2d814174c80ba9eab360892b9103b2dbdf819f30bbe14
7
+ data.tar.gz: e4549124e9f4027510e7e034daa867c0362f1dcc9093bd40d25e474715746f371de7ffde0613b7b0c9e043c3ecc5c5641298596ab2fe3777bc51d06007b6a450
data/Rakefile CHANGED
@@ -1,18 +1,22 @@
1
+ #!/usr/bin/env rake
2
+ # http://viget.com/extend/rails-engine-testing-with-rspec-capybara-and-factorygirl
1
3
  begin
2
4
  require 'bundler/setup'
3
5
  rescue LoadError
4
6
  puts 'You must `gem install bundler` and `bundle install` to run rake tasks'
5
7
  end
6
8
 
9
+ APP_RAKEFILE = File.expand_path('../spec/dummy/Rakefile', __FILE__)
10
+ load 'rails/tasks/engine.rake'
11
+
7
12
  Bundler::GemHelper.install_tasks
8
13
 
9
- require 'rake/testtask'
14
+ Dir[File.join(File.dirname(__FILE__), 'tasks/**/*.rake')].each { |file| load file }
10
15
 
11
- Rake::TestTask.new(:spec) do |t|
12
- t.libs << 'lib'
13
- t.libs << 'spec'
14
- t.pattern = 'spec/**/*_spec.rb'
15
- t.verbose = false
16
- end
16
+ require 'rspec/core'
17
+ require 'rspec/core/rake_task'
18
+
19
+ desc 'Run all specs in spec directory (excluding plugin specs)'
20
+ RSpec::Core::RakeTask.new(spec: 'app:db:test:prepare')
17
21
 
18
22
  task default: :spec
@@ -8,7 +8,7 @@ module Sortability
8
8
  module ClassMethods
9
9
  # Defines methods that are used to sort records
10
10
  # Use via sortable_belongs_to or sortable_class
11
- def sortable_methods(options = {})
11
+ def sortable_methods(**options)
12
12
  on = options[:on] || :sort_position
13
13
  container = options[:container]
14
14
  inverse_of = options[:inverse_of]
@@ -126,24 +126,24 @@ module Sortability
126
126
  end
127
127
 
128
128
  # Defines a sortable has_many relation on the container
129
- def sortable_has_many(records, scope_or_options = nil, options_with_scope = {}, &extension)
130
- scope, options = extract_association_params(scope_or_options, options_with_scope)
129
+ def sortable_has_many(records, scope_or_options = nil, **remaining_options, &extension)
130
+ scope, options = extract_association_params(scope_or_options, remaining_options)
131
131
  if scope.nil?
132
132
  on = options[:on] || :sort_position
133
133
  scope = -> { order(on) }
134
134
  end
135
135
 
136
- class_exec { has_many records, scope, options.except(:on), &extension }
136
+ class_exec { has_many records, scope, **options.except(:on), &extension }
137
137
  end
138
138
 
139
139
  # Defines a sortable belongs_to relation on the child records
140
140
  def sortable_belongs_to(container, scope_or_options = nil,
141
- options_with_scope = {}, &extension)
142
- scope, options = extract_association_params(scope_or_options, options_with_scope)
141
+ **remaining_options, &extension)
142
+ scope, options = extract_association_params(scope_or_options, remaining_options)
143
143
  on = options[:on] || :sort_position
144
144
 
145
145
  class_exec do
146
- belongs_to container, scope, options.except(:on, :scope), &extension
146
+ belongs_to container, scope, **options.except(:on, :scope), &extension
147
147
 
148
148
  reflection = reflect_on_association(container)
149
149
  options[:scope] ||= reflection.polymorphic? ? \
@@ -159,11 +159,11 @@ module Sortability
159
159
  end
160
160
 
161
161
  options[:container] = container
162
- sortable_methods(options)
162
+ sortable_methods(**options)
163
163
  end
164
164
 
165
165
  # Defines a sortable class without a container
166
- def sortable_class(options = {})
166
+ def sortable_class(**options)
167
167
  on = options[:on] || :sort_position
168
168
  scope = options[:scope]
169
169
 
@@ -176,16 +176,16 @@ module Sortability
176
176
  uniqueness: (scope.nil? ? true : { scope: scope })
177
177
  end
178
178
 
179
- sortable_methods(options)
179
+ sortable_methods(**options)
180
180
  end
181
181
 
182
182
  protected
183
183
 
184
- def extract_association_params(scope_or_options, options_with_scope)
184
+ def extract_association_params(scope_or_options, remaining_options)
185
185
  if scope_or_options.is_a?(Hash)
186
- [nil, scope_or_options]
186
+ [nil, scope_or_options.merge(remaining_options)]
187
187
  else
188
- [scope_or_options, options_with_scope]
188
+ [scope_or_options, remaining_options]
189
189
  end
190
190
  end
191
191
  end
@@ -3,11 +3,11 @@ module Sortability
3
3
  module ConnectionAdapters
4
4
  module TableDefinition
5
5
  # Adds a non-null sortable column on table creation (no index)
6
- def sortable(options = {})
6
+ def sortable(**options)
7
7
  options[:null] = false if options[:null].nil?
8
8
  on = options.delete(:on) || :sort_position
9
9
 
10
- integer on, options
10
+ integer on, **options
11
11
  end
12
12
  end
13
13
  end
@@ -2,21 +2,21 @@ module Sortability
2
2
  module ActiveRecord
3
3
  module Migration
4
4
  # Adds a non-null sortable column to an existing table (no index)
5
- def add_sortable_column(table, options = {})
5
+ def add_sortable_column(table, **options)
6
6
  options[:null] = false if options[:null].nil?
7
7
  on = options.delete(:on) || :sort_position
8
8
 
9
- add_column table, on, :integer, options
9
+ add_column table, on, :integer, **options
10
10
  end
11
11
 
12
12
  # Adds a unique index covering the sort scope cols in an existing table
13
- def add_sortable_index(table, options = {})
13
+ def add_sortable_index(table, **options)
14
14
  options[:unique] = true if options[:unique].nil?
15
15
  scope = options.delete(:scope)
16
16
  on = options.delete(:on) || :sort_position
17
17
  columns = ([scope] << on).flatten.compact
18
18
 
19
- add_index table, columns, options
19
+ add_index table, columns, **options
20
20
  end
21
21
  end
22
22
  end
@@ -1,3 +1,3 @@
1
1
  module Sortability
2
- VERSION = "1.0.0"
2
+ VERSION = '1.1.1'
3
3
  end
@@ -0,0 +1,3 @@
1
+ //= link_tree ../images
2
+ //= link_directory ../javascripts .js
3
+ //= link_directory ../stylesheets .css
@@ -3,12 +3,12 @@ require File.expand_path('../boot', __FILE__)
3
3
  require 'rails/all'
4
4
 
5
5
  Bundler.require(*Rails.groups)
6
- require "sortability"
6
+ require 'sortability'
7
7
 
8
8
  module Dummy
9
9
  class Application < Rails::Application
10
10
  # Initialize configuration defaults for originally generated Rails version.
11
- config.load_defaults 5.2
11
+ config.load_defaults 6.1
12
12
 
13
13
  # Settings in config/environments/* take precedence over those specified here.
14
14
  # Application configuration should go into files in config/initializers
Binary file