dm-is-list 0.10.1 → 0.10.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.
data/LICENSE CHANGED
@@ -1,4 +1,4 @@
1
- Copyright (c) 2008 Sindre Aarsaether (somebee.com)
1
+ Copyright (c) 2009 Sindre Aarsaether
2
2
 
3
3
  Permission is hereby granted, free of charge, to any person obtaining
4
4
  a copy of this software and associated documentation files (the
data/README.rdoc CHANGED
@@ -165,7 +165,7 @@ The most SQL query efficient way of changing the positions is:
165
165
 
166
166
  items.each{ |item| item.update(:position => sort_order.index(item.id) + 1) } # remember the +1 since array's are indexed from 0
167
167
 
168
-
168
+
169
169
  The above code will result in something like these queries.
170
170
 
171
171
  # SELECT "id", "title", "position", "user_id" FROM "todos" WHERE "user_id" = 1 ORDER BY "position"
data/Rakefile CHANGED
@@ -1,24 +1,30 @@
1
- require 'pathname'
1
+ require 'rubygems'
2
+ require 'rake'
2
3
 
3
- ROOT = Pathname(__FILE__).dirname.expand_path
4
- JRUBY = RUBY_PLATFORM =~ /java/
5
- WINDOWS = Gem.win_platform?
6
- SUDO = (WINDOWS || JRUBY) ? '' : ('sudo' unless ENV['SUDOLESS'])
4
+ begin
5
+ gem 'jeweler', '~> 1.4'
6
+ require 'jeweler'
7
7
 
8
- require ROOT + 'lib/dm-is-list/is/version'
8
+ Jeweler::Tasks.new do |gem|
9
+ gem.name = 'dm-is-list'
10
+ gem.summary = 'DataMapper plugin for creating and organizing lists'
11
+ gem.description = gem.summary
12
+ gem.email = 'sindre [a] identu [d] no'
13
+ gem.homepage = 'http://github.com/datamapper/dm-more/tree/master/%s' % gem.name
14
+ gem.authors = [ 'Sindre Aarsaether' ]
9
15
 
10
- AUTHOR = 'Sindre Aarsaether'
11
- EMAIL = 'sindre [a] identu [d] no'
12
- GEM_NAME = 'dm-is-list'
13
- GEM_VERSION = DataMapper::Is::List::VERSION
14
- GEM_DEPENDENCIES = [['dm-core', GEM_VERSION], ['dm-adjust', GEM_VERSION]]
15
- GEM_CLEAN = %w[ log pkg coverage ]
16
- GEM_EXTRAS = { :has_rdoc => true, :extra_rdoc_files => %w[ README.rdoc LICENSE TODO History.rdoc ] }
16
+ gem.rubyforge_project = 'datamapper'
17
17
 
18
- PROJECT_NAME = 'datamapper'
19
- PROJECT_URL = "http://github.com/datamapper/dm-more/tree/master/#{GEM_NAME}"
20
- PROJECT_DESCRIPTION = PROJECT_SUMMARY = 'DataMapper plugin for creating and organizing lists'
18
+ gem.add_dependency 'dm-core', '~> 0.10.2'
19
+ gem.add_dependency 'dm-adjust', '~> 0.10.2'
21
20
 
22
- [ ROOT, ROOT.parent ].each do |dir|
23
- Pathname.glob(dir.join('tasks/**/*.rb').to_s).each { |f| require f }
21
+ gem.add_development_dependency 'rspec', '~> 1.2.9'
22
+ gem.add_development_dependency 'yard', '~> 0.4.0'
23
+ end
24
+
25
+ Jeweler::GemcutterTasks.new
26
+
27
+ FileList['tasks/**/*.rake'].each { |task| import task }
28
+ rescue LoadError
29
+ puts 'Jeweler (or a dependency) not available. Install it with: gem install jeweler'
24
30
  end
data/VERSION ADDED
@@ -0,0 +1 @@
1
+ 0.10.2
@@ -0,0 +1,66 @@
1
+ # Generated by jeweler
2
+ # DO NOT EDIT THIS FILE DIRECTLY
3
+ # Instead, edit Jeweler::Tasks in Rakefile, and run the gemspec command
4
+ # -*- encoding: utf-8 -*-
5
+
6
+ Gem::Specification.new do |s|
7
+ s.name = %q{dm-is-list}
8
+ s.version = "0.10.2"
9
+
10
+ s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
+ s.authors = ["Sindre Aarsaether"]
12
+ s.date = %q{2009-12-11}
13
+ s.description = %q{DataMapper plugin for creating and organizing lists}
14
+ s.email = %q{sindre [a] identu [d] no}
15
+ s.extra_rdoc_files = [
16
+ "LICENSE",
17
+ "README.rdoc"
18
+ ]
19
+ s.files = [
20
+ "LICENSE",
21
+ "README.rdoc",
22
+ "Rakefile",
23
+ "VERSION",
24
+ "dm-is-list.gemspec",
25
+ "lib/dm-is-list.rb",
26
+ "lib/dm-is-list/is/list.rb",
27
+ "spec/integration/list_spec.rb",
28
+ "spec/rcov.opts",
29
+ "spec/spec.opts",
30
+ "spec/spec_helper.rb",
31
+ "tasks/ci.rake",
32
+ "tasks/metrics.rake",
33
+ "tasks/spec.rake",
34
+ "tasks/yard.rake",
35
+ "tasks/yardstick.rake"
36
+ ]
37
+ s.homepage = %q{http://github.com/datamapper/dm-more/tree/master/dm-is-list}
38
+ s.rdoc_options = ["--charset=UTF-8"]
39
+ s.require_paths = ["lib"]
40
+ s.rubyforge_project = %q{datamapper}
41
+ s.rubygems_version = %q{1.3.5}
42
+ s.summary = %q{DataMapper plugin for creating and organizing lists}
43
+
44
+ if s.respond_to? :specification_version then
45
+ current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
46
+ s.specification_version = 3
47
+
48
+ if Gem::Version.new(Gem::RubyGemsVersion) >= Gem::Version.new('1.2.0') then
49
+ s.add_runtime_dependency(%q<dm-core>, ["~> 0.10.2"])
50
+ s.add_runtime_dependency(%q<dm-adjust>, ["~> 0.10.2"])
51
+ s.add_development_dependency(%q<rspec>, ["~> 1.2.9"])
52
+ s.add_development_dependency(%q<yard>, ["~> 0.4.0"])
53
+ else
54
+ s.add_dependency(%q<dm-core>, ["~> 0.10.2"])
55
+ s.add_dependency(%q<dm-adjust>, ["~> 0.10.2"])
56
+ s.add_dependency(%q<rspec>, ["~> 1.2.9"])
57
+ s.add_dependency(%q<yard>, ["~> 0.4.0"])
58
+ end
59
+ else
60
+ s.add_dependency(%q<dm-core>, ["~> 0.10.2"])
61
+ s.add_dependency(%q<dm-adjust>, ["~> 0.10.2"])
62
+ s.add_dependency(%q<rspec>, ["~> 1.2.9"])
63
+ s.add_dependency(%q<yard>, ["~> 0.4.0"])
64
+ end
65
+ end
66
+
@@ -260,7 +260,7 @@ module DataMapper
260
260
  # if a position has been set before save, then insert it at the position and
261
261
  # move the other items in the list accordingly, else if no position has been set
262
262
  # then set position to bottom of list
263
- send(:move_without_saving, position || :lowest)
263
+ __send__(:move_without_saving, position || :lowest)
264
264
 
265
265
  # on create, set moved to false so we can move the list item after creating it
266
266
  # self.moved = false
@@ -275,13 +275,13 @@ module DataMapper
275
275
  if list_scope != original_list_scope
276
276
  newpos = position
277
277
  detach(original_list_scope) # removing from old list
278
- send(:move_without_saving, newpos || :lowest) # moving to pos or bottom of new list
278
+ __send__(:move_without_saving, newpos || :lowest) # moving to pos or bottom of new list
279
279
  end
280
280
 
281
281
  # NOTE:: uncommenting the following creates a large number of extra un-wanted SQL queries
282
282
  # hence the commenting out of it.
283
283
  # if attribute_dirty?(:position) && !moved
284
- # send(:move_without_saving, position)
284
+ # __send__(:move_without_saving, position)
285
285
  # end
286
286
  # # on update, clean moved to prepare for the next change
287
287
  # self.moved = false
@@ -988,7 +988,7 @@ if HAS_SQLITE3 || HAS_MYSQL || HAS_POSTGRES
988
988
 
989
989
  property :id, Serial
990
990
  property :title, String
991
- property :position, Integer, :nullable => false, :unique_index => :position
991
+ property :position, Integer, :required => true, :unique_index => :position
992
992
  property :client_id, Integer, :unique_index => :position
993
993
 
994
994
  belongs_to :client
data/spec/rcov.opts ADDED
@@ -0,0 +1,6 @@
1
+ --exclude "spec"
2
+ --sort coverage
3
+ --callsites
4
+ --xrefs
5
+ --profile
6
+ --text-summary
data/spec/spec.opts CHANGED
@@ -1,2 +1,4 @@
1
1
  --colour
2
2
  --loadby random
3
+ --format profile
4
+ --backtrace
data/tasks/ci.rake ADDED
@@ -0,0 +1 @@
1
+ task :ci => [ :verify_measurements, 'metrics:all' ]
@@ -0,0 +1,36 @@
1
+ begin
2
+ require 'metric_fu'
3
+ rescue LoadError
4
+ namespace :metrics do
5
+ task :all do
6
+ abort 'metric_fu is not available. In order to run metrics:all, you must: gem install metric_fu'
7
+ end
8
+ end
9
+ end
10
+
11
+ begin
12
+ require 'reek/adapters/rake_task'
13
+
14
+ Reek::RakeTask.new do |t|
15
+ t.fail_on_error = true
16
+ t.verbose = false
17
+ t.source_files = 'lib/**/*.rb'
18
+ end
19
+ rescue LoadError
20
+ task :reek do
21
+ abort 'Reek is not available. In order to run reek, you must: gem install reek'
22
+ end
23
+ end
24
+
25
+ begin
26
+ require 'roodi'
27
+ require 'roodi_task'
28
+
29
+ RoodiTask.new do |t|
30
+ t.verbose = false
31
+ end
32
+ rescue LoadError
33
+ task :roodi do
34
+ abort 'Roodi is not available. In order to run roodi, you must: gem install roodi'
35
+ end
36
+ end
data/tasks/spec.rake ADDED
@@ -0,0 +1,41 @@
1
+ spec_defaults = lambda do |spec|
2
+ spec.pattern = 'spec/**/*_spec.rb'
3
+ spec.libs << 'lib' << 'spec'
4
+ spec.spec_opts << '--options' << 'spec/spec.opts'
5
+ end
6
+
7
+ begin
8
+ require 'spec/rake/spectask'
9
+
10
+ Spec::Rake::SpecTask.new(:spec, &spec_defaults)
11
+ rescue LoadError
12
+ task :spec do
13
+ abort 'rspec is not available. In order to run spec, you must: gem install rspec'
14
+ end
15
+ end
16
+
17
+ begin
18
+ require 'rcov'
19
+ require 'spec/rake/verify_rcov'
20
+
21
+ Spec::Rake::SpecTask.new(:rcov) do |rcov|
22
+ spec_defaults.call(rcov)
23
+ rcov.rcov = true
24
+ rcov.rcov_opts = File.read('spec/rcov.opts').split(/\s+/)
25
+ end
26
+
27
+ RCov::VerifyTask.new(:verify_rcov => :rcov) do |rcov|
28
+ rcov.threshold = 100
29
+ end
30
+ rescue LoadError
31
+ %w[ rcov verify_rcov ].each do |name|
32
+ task name do
33
+ abort "rcov is not available. In order to run #{name}, you must: gem install rcov"
34
+ end
35
+ end
36
+ end
37
+
38
+ task :spec => :check_dependencies
39
+ task :rcov => :check_dependencies
40
+
41
+ task :default => :spec
data/tasks/yard.rake ADDED
@@ -0,0 +1,9 @@
1
+ begin
2
+ require 'yard'
3
+
4
+ YARD::Rake::YardocTask.new
5
+ rescue LoadError
6
+ task :yard do
7
+ abort 'YARD is not available. In order to run yard, you must: gem install yard'
8
+ end
9
+ end
@@ -0,0 +1,19 @@
1
+ begin
2
+ require 'pathname'
3
+ require 'yardstick/rake/measurement'
4
+ require 'yardstick/rake/verify'
5
+
6
+ # yardstick_measure task
7
+ Yardstick::Rake::Measurement.new
8
+
9
+ # verify_measurements task
10
+ Yardstick::Rake::Verify.new do |verify|
11
+ verify.threshold = 100
12
+ end
13
+ rescue LoadError
14
+ %w[ yardstick_measure verify_measurements ].each do |name|
15
+ task name.to_s do
16
+ abort "Yardstick is not available. In order to run #{name}, you must: gem install yardstick"
17
+ end
18
+ end
19
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dm-is-list
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.10.1
4
+ version: 0.10.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Sindre Aarsaether
@@ -9,7 +9,7 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2009-09-30 00:00:00 -07:00
12
+ date: 2009-12-11 00:00:00 -08:00
13
13
  default_executable:
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
@@ -18,9 +18,9 @@ dependencies:
18
18
  version_requirement:
19
19
  version_requirements: !ruby/object:Gem::Requirement
20
20
  requirements:
21
- - - "="
21
+ - - ~>
22
22
  - !ruby/object:Gem::Version
23
- version: 0.10.1
23
+ version: 0.10.2
24
24
  version:
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: dm-adjust
@@ -28,45 +28,63 @@ dependencies:
28
28
  version_requirement:
29
29
  version_requirements: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - "="
31
+ - - ~>
32
32
  - !ruby/object:Gem::Version
33
- version: 0.10.1
33
+ version: 0.10.2
34
+ version:
35
+ - !ruby/object:Gem::Dependency
36
+ name: rspec
37
+ type: :development
38
+ version_requirement:
39
+ version_requirements: !ruby/object:Gem::Requirement
40
+ requirements:
41
+ - - ~>
42
+ - !ruby/object:Gem::Version
43
+ version: 1.2.9
44
+ version:
45
+ - !ruby/object:Gem::Dependency
46
+ name: yard
47
+ type: :development
48
+ version_requirement:
49
+ version_requirements: !ruby/object:Gem::Requirement
50
+ requirements:
51
+ - - ~>
52
+ - !ruby/object:Gem::Version
53
+ version: 0.4.0
34
54
  version:
35
55
  description: DataMapper plugin for creating and organizing lists
36
- email:
37
- - sindre [a] identu [d] no
56
+ email: sindre [a] identu [d] no
38
57
  executables: []
39
58
 
40
59
  extensions: []
41
60
 
42
61
  extra_rdoc_files:
43
- - README.rdoc
44
62
  - LICENSE
45
- - TODO
46
- - History.rdoc
63
+ - README.rdoc
47
64
  files:
48
- - History.rdoc
49
65
  - LICENSE
50
- - Manifest.txt
51
66
  - README.rdoc
52
67
  - Rakefile
53
- - TODO
68
+ - VERSION
69
+ - dm-is-list.gemspec
54
70
  - lib/dm-is-list.rb
55
71
  - lib/dm-is-list/is/list.rb
56
- - lib/dm-is-list/is/version.rb
57
72
  - spec/integration/list_spec.rb
73
+ - spec/rcov.opts
58
74
  - spec/spec.opts
59
75
  - spec/spec_helper.rb
60
- - tasks/install.rb
61
- - tasks/spec.rb
76
+ - tasks/ci.rake
77
+ - tasks/metrics.rake
78
+ - tasks/spec.rake
79
+ - tasks/yard.rake
80
+ - tasks/yardstick.rake
62
81
  has_rdoc: true
63
82
  homepage: http://github.com/datamapper/dm-more/tree/master/dm-is-list
64
83
  licenses: []
65
84
 
66
85
  post_install_message:
67
86
  rdoc_options:
68
- - --main
69
- - README.rdoc
87
+ - --charset=UTF-8
70
88
  require_paths:
71
89
  - lib
72
90
  required_ruby_version: !ruby/object:Gem::Requirement
data/History.rdoc DELETED
@@ -1,50 +0,0 @@
1
- === 0.10.1 / 2009-09-30
2
-
3
- * No changes this version
4
-
5
- === 0.10.0 / 2009-09-15
6
-
7
- * Major changes:
8
-
9
- * Rewrote the README for better clarity and usage information.
10
-
11
- * Made :move accept more vectors (:top, :bottom)
12
-
13
- * Aliased #left_sibling & :right_sibling methods to more obvious => :higher_item, :lower_item, :previous_item, :next_item
14
-
15
- * Improved the Specs and made them more comprehensive. ( Too comprehensive? )
16
-
17
- * Improved the documentation for each of the methods.
18
-
19
- * Issue fixes:
20
-
21
- * [:735] Fixed. Incorporated patch from Brian Terlson. NB! see point below.
22
-
23
- * [:737] Fixed. Incorporated specs from Brian Terlson [ http://github.com/bterlson/dm-more/commit/6eb521636e945f396723a53fa5a8cba1c9ef1350 ]
24
-
25
- * [:738] Semi-fixed. Fixes item.move(-1) cases, but NOT item.position = -1 cases, due to a wish to reduce the number of SQL queries.
26
-
27
- * [:739] Fixed. Fixes item.move(:to => 2) should retain correct list order.
28
-
29
- * [:740] Fixed. Fixes item.reorder_list(\[:title.asc\]) with correct list positions and order.
30
-
31
- * [:818] Addressed / Fixed. Same issue as [:738]. Use item.move(1) instead of item.position = 1.
32
-
33
-
34
- === 0.9.11 / 2009-03-29
35
-
36
- * No changes this version
37
-
38
- === 0.9.10 / 2009-01-19
39
-
40
- * No changes this version
41
-
42
- === 0.9.9 / 2009-01-04
43
-
44
- * No changes this version
45
-
46
- === 0.9.8 / 2008-12-07
47
-
48
- * 1 bug fix:
49
-
50
- * Applied patch to fix bug with manual positioning [#672 state:resolved]
data/Manifest.txt DELETED
@@ -1,14 +0,0 @@
1
- History.rdoc
2
- LICENSE
3
- Manifest.txt
4
- README.rdoc
5
- Rakefile
6
- TODO
7
- lib/dm-is-list.rb
8
- lib/dm-is-list/is/list.rb
9
- lib/dm-is-list/is/version.rb
10
- spec/integration/list_spec.rb
11
- spec/spec.opts
12
- spec/spec_helper.rb
13
- tasks/install.rb
14
- tasks/spec.rb
data/TODO DELETED
@@ -1,3 +0,0 @@
1
- TODO
2
- ====
3
- * Add support for scopes
@@ -1,7 +0,0 @@
1
- module DataMapper
2
- module Is
3
- module List
4
- VERSION = '0.10.1'.freeze
5
- end
6
- end
7
- end
data/tasks/install.rb DELETED
@@ -1,13 +0,0 @@
1
- def sudo_gem(cmd)
2
- sh "#{SUDO} #{RUBY} -S gem #{cmd}", :verbose => false
3
- end
4
-
5
- desc "Install #{GEM_NAME} #{GEM_VERSION}"
6
- task :install => [ :package ] do
7
- sudo_gem "install pkg/#{GEM_NAME}-#{GEM_VERSION} --no-update-sources"
8
- end
9
-
10
- desc "Uninstall #{GEM_NAME} #{GEM_VERSION}"
11
- task :uninstall => [ :clobber ] do
12
- sudo_gem "uninstall #{GEM_NAME} -v#{GEM_VERSION} -Ix"
13
- end
data/tasks/spec.rb DELETED
@@ -1,25 +0,0 @@
1
- begin
2
- require 'spec/rake/spectask'
3
-
4
- task :default => [ :spec ]
5
-
6
- desc 'Run specifications'
7
- Spec::Rake::SpecTask.new(:spec) do |t|
8
- t.spec_opts << '--options' << 'spec/spec.opts' if File.exists?('spec/spec.opts')
9
- t.libs << 'lib' << 'spec' # needed for CI rake spec task, duplicated in spec_helper
10
-
11
- begin
12
- require 'rcov'
13
- t.rcov = JRUBY ? false : (ENV.has_key?('NO_RCOV') ? ENV['NO_RCOV'] != 'true' : true)
14
- t.rcov_opts << '--exclude' << 'spec'
15
- t.rcov_opts << '--text-summary'
16
- t.rcov_opts << '--sort' << 'coverage' << '--sort-reverse'
17
- rescue LoadError
18
- # rcov not installed
19
- rescue SyntaxError
20
- # rcov syntax invalid
21
- end
22
- end
23
- rescue LoadError
24
- # rspec not installed
25
- end