dm-is-select 0.0.7 → 0.0.8

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/README.rdoc CHANGED
@@ -14,12 +14,7 @@ A DataMapper plugin that makes getting the <tt><select></tt> options from a Mode
14
14
 
15
15
  The plugin depends upon the following:
16
16
 
17
- * dm-core ( >= 0.10.0)
18
- * dm-more ( >= 0.10.0) [not really, but your code will depend upon it]
19
-
20
-
21
- <b>NB!</b> The plugin has been developed for and on DM's next branch[http://github.com/datamapper/dm-core/tree/next], so may NOT work on previous incarnations.
22
-
17
+ * dm-core ( >= 1.0.0)
23
18
 
24
19
 
25
20
  == Getting Started
@@ -30,9 +25,9 @@ Let's say you got a basic Category Model.
30
25
  include DataMapper::Resource
31
26
  property :id, Serial
32
27
  property :name, String
33
-
28
+
34
29
  is :select, :name
35
-
30
+
36
31
  end
37
32
 
38
33
  Through that simple declaration you get the following class method ..
data/Rakefile CHANGED
@@ -3,6 +3,7 @@ require 'rake'
3
3
 
4
4
  begin
5
5
  require 'jeweler'
6
+
6
7
  Jeweler::Tasks.new do |gem|
7
8
  gem.name = "dm-is-select"
8
9
  # gem.version = IO.read('VERSION')
@@ -12,15 +13,16 @@ begin
12
13
  gem.homepage = "http://github.com/kematzy/dm-is-select"
13
14
  gem.authors = ["kematzy"]
14
15
  gem.extra_rdoc_files = %w[ README.rdoc LICENSE TODO History.rdoc ]
15
- gem.add_dependency('dm-core', '>= 0.10.2')
16
- # gem.add_dependency('dm-more', '>= 0.10.0')
17
- # gem.add_dependency('dm-validations', '>= 0.10.0')
18
-
19
- # gem is a Gem::Specification... see http://www.rubygems.org/read/chapter/20 for additional settings
16
+ gem.add_dependency 'dm-core', '~> 1.0.0.rc3'
17
+ gem.add_development_dependency 'rspec', '~> 1.3'
18
+ gem.add_development_dependency 'dm-migrations', '~> 1.0.0.rc3'
19
+ gem.add_development_dependency 'dm-validations', '~> 1.0.0.rc3'
20
20
  end
21
-
21
+
22
+ Jeweler::GemcutterTasks.new
23
+
22
24
  rescue LoadError
23
- puts "Jeweler (or a dependency) not available. Install it with: sudo gem install jeweler"
25
+ puts "Jeweler (or a dependency) not available. Install it with: gem install jeweler"
24
26
  end
25
27
 
26
28
  require 'spec/rake/spectask'
@@ -91,20 +93,3 @@ namespace :docs do
91
93
  end
92
94
 
93
95
  end
94
-
95
-
96
- # kept just as a reference for now.
97
- #
98
- # def sudo_gem(cmd)
99
- # sh "#{SUDO} #{RUBY} -S gem #{cmd}", :verbose => false
100
- # end
101
- #
102
- # desc "Install #{GEM_NAME} #{GEM_VERSION}"
103
- # task :install => [ :package ] do
104
- # sudo_gem "install --local pkg/#{GEM_NAME}-#{GEM_VERSION} --no-update-sources"
105
- # end
106
- #
107
- # desc "Uninstall #{GEM_NAME} #{GEM_VERSION}"
108
- # task :uninstall => [ :clobber ] do
109
- # sudo_gem "uninstall #{GEM_NAME} -v#{GEM_VERSION} -Ix"
110
- # end
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.0.7
1
+ 0.0.8
data/dm-is-select.gemspec CHANGED
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{dm-is-select}
8
- s.version = "0.0.7"
8
+ s.version = "0.0.8"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["kematzy"]
12
- s.date = %q{2010-05-20}
12
+ s.date = %q{2010-06-09}
13
13
  s.description = %q{A DataMapper plugin that makes getting the <tt>select</tt> options from a Model easier.}
14
14
  s.email = %q{kematzy@gmail.com}
15
15
  s.extra_rdoc_files = [
@@ -48,12 +48,21 @@ Gem::Specification.new do |s|
48
48
  s.specification_version = 3
49
49
 
50
50
  if Gem::Version.new(Gem::RubyGemsVersion) >= Gem::Version.new('1.2.0') then
51
- s.add_runtime_dependency(%q<dm-core>, [">= 0.10.2"])
51
+ s.add_runtime_dependency(%q<dm-core>, ["~> 1.0.0.rc3"])
52
+ s.add_development_dependency(%q<rspec>, ["~> 1.3"])
53
+ s.add_development_dependency(%q<dm-migrations>, ["~> 1.0.0.rc3"])
54
+ s.add_development_dependency(%q<dm-validations>, ["~> 1.0.0.rc3"])
52
55
  else
53
- s.add_dependency(%q<dm-core>, [">= 0.10.2"])
56
+ s.add_dependency(%q<dm-core>, ["~> 1.0.0.rc3"])
57
+ s.add_dependency(%q<rspec>, ["~> 1.3"])
58
+ s.add_dependency(%q<dm-migrations>, ["~> 1.0.0.rc3"])
59
+ s.add_dependency(%q<dm-validations>, ["~> 1.0.0.rc3"])
54
60
  end
55
61
  else
56
- s.add_dependency(%q<dm-core>, [">= 0.10.2"])
62
+ s.add_dependency(%q<dm-core>, ["~> 1.0.0.rc3"])
63
+ s.add_dependency(%q<rspec>, ["~> 1.3"])
64
+ s.add_dependency(%q<dm-migrations>, ["~> 1.0.0.rc3"])
65
+ s.add_dependency(%q<dm-validations>, ["~> 1.0.0.rc3"])
57
66
  end
58
67
  end
59
68
 
@@ -35,7 +35,7 @@ module DataMapper
35
35
  #
36
36
  #
37
37
  # @api public
38
- def is_select(select_field = :name, options = {})
38
+ def is_select(select_field = :name, options = {})
39
39
  raise ArgumentError, "The :select_field, must be an existing attribute in the Model. Got [ #{select_field.inspect} ]" unless properties.any?{ |p| p.name == select_field.to_sym }
40
40
 
41
41
  @select_options = {
@@ -54,7 +54,7 @@ module DataMapper
54
54
 
55
55
  end
56
56
 
57
- module ClassMethods
57
+ module ClassMethods
58
58
  attr_reader :select_field, :select_options, :value_field
59
59
 
60
60
  ##
@@ -102,8 +102,6 @@ module DataMapper
102
102
  # clean out the various parts
103
103
  html_options = options.only(:prompt, :divider, :show_root, :root_text)
104
104
  sql_options = options.except(:prompt, :divider, :show_root, :root_text)
105
- # puts "sql_options=[#{sql_options.inspect}] [#{__FILE__}:#{__LINE__}]"
106
- # puts "html_options=[#{html_options.inspect}] [#{__FILE__}:#{__LINE__}]"
107
105
 
108
106
  options = {
109
107
  :prompt => "Select #{self.name}",
@@ -116,9 +114,7 @@ module DataMapper
116
114
  :order => [self.select_field.to_sym],
117
115
  }.merge(sql_options)
118
116
 
119
- mi = self.select_options[:is_tree] ?
120
- all({ :parent_id => 0 }.merge(sql_options) ) :
121
- all(sql_options)
117
+ mi = self.select_options[:is_tree] ? all({ :parent_id => nil }.merge(sql_options) ) : all(sql_options)
122
118
 
123
119
  res = []
124
120
  if options[:prompt]
@@ -1,7 +1,7 @@
1
1
  module DataMapper
2
2
  module Is
3
3
  module Select
4
- VERSION = '0.0.7'
4
+ VERSION = '0.0.8'
5
5
  end
6
6
  end
7
7
  end
data/lib/dm-is-select.rb CHANGED
@@ -3,14 +3,8 @@ require 'rubygems'
3
3
  require 'pathname'
4
4
 
5
5
  # Add all external dependencies for the plugin here
6
- gem 'dm-core', '~> 0.10.0'
7
6
  require 'dm-core'
8
- # gem 'extlib', '~> 0.9.13'
9
- # require 'extlib'
10
- gem 'dm-is-tree', '~> 0.10.0'
11
7
  require 'dm-is-tree'
12
-
13
-
14
8
  # Require plugin-files
15
9
  require Pathname(__FILE__).dirname.expand_path / 'dm-is-select' / 'is' / 'select.rb'
16
10
 
@@ -4,53 +4,45 @@ require Pathname(__FILE__).dirname.expand_path.parent + 'spec_helper'
4
4
  if HAS_SQLITE3 || HAS_MYSQL || HAS_POSTGRES
5
5
  describe 'DataMapper::Is::Select' do
6
6
 
7
- class Category
8
- include DataMapper::Resource
9
- property :id, Serial
10
- property :name, String
11
- property :publish_status, String, :default => "on"
7
+ before(:each) do
12
8
 
13
- is :select, :name
9
+ class Category
10
+ include DataMapper::Resource
11
+ property :id, Serial
12
+ property :name, String
13
+ property :publish_status, String, :default => "on"
14
+
15
+ is :select, :name
16
+ end
14
17
 
15
- auto_migrate!
16
- end
17
-
18
- class TreeCategory
19
- include DataMapper::Resource
20
- property :id, Serial
21
- property :name, String
22
- property :publish_status, String, :default => "on"
18
+ class TreeCategory
19
+ include DataMapper::Resource
20
+ property :id, Serial
21
+ property :name, String
22
+ property :publish_status, String, :default => "on"
23
+ # property :parent_id, Integer
24
+
25
+ is :tree, :order => :name
26
+ is :select, :name, :is_tree => true
27
+ end
23
28
 
24
- is :tree, :order => :name
25
- is :select, :name, :is_tree => true
29
+ class Country
30
+ include DataMapper::Resource
31
+ property :code, String, :key => true
32
+ property :name, String
33
+ is :select, :name, :value_field => :code
34
+ end #/ Country
26
35
 
27
- auto_migrate!
28
- end
29
-
30
-
31
- class Country
32
- include DataMapper::Resource
33
- property :code, String, :key => true
34
- property :name, String
35
- is :select, :name, :value_field => :code
36
+ DataMapper.finalize
37
+
38
+ DataMapper.auto_migrate!
36
39
 
37
- auto_migrate!
38
- end #/ Country
39
-
40
- 5.times do |n|
41
- Category.create(:name => "Category #{n+1}")
42
40
  end
43
41
 
44
- 2.times do |parent_id|
45
- parent_id += 1
46
- parent = TreeCategory.create(:name => "TreeCategory-#{parent_id}" , :parent_id => 0 )
47
- child = TreeCategory.create(:name => "TreeCategory-#{parent_id}-Child" , :parent_id => parent.id )
48
- grandchild = TreeCategory.create(:name => "TreeCategory-#{parent_id}-Child-GrandChild" , :parent_id => child.id )
42
+ it "should use DM-Core 1.0.0.rc3" do
43
+ DataMapper::VERSION.should == '1.0.0.rc3'
49
44
  end
50
45
 
51
- 3.times do |i|
52
- Country.create(:code => "A#{i}", :name => "Country#{i}")
53
- end
54
46
 
55
47
  describe "Class Methods" do
56
48
 
@@ -64,9 +56,10 @@ if HAS_SQLITE3 || HAS_MYSQL || HAS_POSTGRES
64
56
  property :name, String
65
57
 
66
58
  is :select, 'name'
67
- auto_migrate!
68
59
  end
69
60
 
61
+ DataMapper.auto_migrate!
62
+
70
63
  }.should_not raise_error(ArgumentError)
71
64
  end
72
65
 
@@ -78,9 +71,9 @@ if HAS_SQLITE3 || HAS_MYSQL || HAS_POSTGRES
78
71
  property :name, String
79
72
 
80
73
  is :select, :does_not_exist
81
- auto_migrate!
82
74
  end
83
75
 
76
+ DataMapper.auto_migrate!
84
77
  }.should raise_error(ArgumentError)
85
78
  end
86
79
 
@@ -90,6 +83,12 @@ if HAS_SQLITE3 || HAS_MYSQL || HAS_POSTGRES
90
83
 
91
84
  describe "A Normal Model" do
92
85
 
86
+ before(:each) do
87
+ 5.times do |n|
88
+ Category.create(:name => "Category #{n+1}")
89
+ end
90
+ end
91
+
93
92
  it "should return the default select options when given no params" do
94
93
  Category.items_for_select_menu.should == [
95
94
  [nil, "Select Category"],
@@ -175,6 +174,7 @@ if HAS_SQLITE3 || HAS_MYSQL || HAS_POSTGRES
175
174
  # [1, "Category 1"]
176
175
  ]
177
176
  end
177
+
178
178
  it "should handle invalid SQL select options" do
179
179
  Category.items_for_select_menu(:publish_status => "invalid", :order => [ :id.desc ] ).should == [
180
180
  [nil, "Select Category"],
@@ -191,6 +191,16 @@ if HAS_SQLITE3 || HAS_MYSQL || HAS_POSTGRES
191
191
 
192
192
  describe "Tree Model" do
193
193
 
194
+ before(:each) do
195
+ 2.times do |parent_id|
196
+ parent_id += 1
197
+ theparent = TreeCategory.create(:name => "TreeCategory-#{parent_id}") # sets parent_id => nil
198
+ child = TreeCategory.create(:name => "TreeCategory-#{parent_id}-Child" , :parent => theparent )
199
+ grandchild = TreeCategory.create(:name => "TreeCategory-#{parent_id}-Child-GrandChild" , :parent_id => child.id )
200
+ end
201
+
202
+ end
203
+
194
204
  it "should return the default select options when given no params" do
195
205
  TreeCategory.items_for_select_menu.should == [
196
206
  [nil, "Select TreeCategory"],
@@ -287,6 +297,12 @@ if HAS_SQLITE3 || HAS_MYSQL || HAS_POSTGRES
287
297
 
288
298
  describe "A value_field model" do
289
299
 
300
+ before(:each) do
301
+ 3.times do |i|
302
+ Country.create(:code => "A#{i}", :name => "Country#{i}")
303
+ end
304
+ end
305
+
290
306
  it "should return the default select options when given no params" do
291
307
  Country.items_for_select_menu.should == [
292
308
  [nil, "Select Country"],
data/spec/spec_helper.rb CHANGED
@@ -1,8 +1,10 @@
1
1
  require 'pathname'
2
2
  require 'rubygems'
3
3
 
4
- # gem 'rspec', '~>1.2.6'
5
- require 'spec'
4
+ # require 'spec'
5
+ require 'dm-validations'
6
+ require 'dm-migrations'
7
+ require 'dm-is-tree'
6
8
 
7
9
  require Pathname(__FILE__).dirname.expand_path.parent + 'lib/dm-is-select'
8
10
 
metadata CHANGED
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
5
5
  segments:
6
6
  - 0
7
7
  - 0
8
- - 7
9
- version: 0.0.7
8
+ - 8
9
+ version: 0.0.8
10
10
  platform: ruby
11
11
  authors:
12
12
  - kematzy
@@ -14,7 +14,7 @@ autorequire:
14
14
  bindir: bin
15
15
  cert_chain: []
16
16
 
17
- date: 2010-05-20 00:00:00 +08:00
17
+ date: 2010-06-09 00:00:00 +08:00
18
18
  default_executable:
19
19
  dependencies:
20
20
  - !ruby/object:Gem::Dependency
@@ -22,15 +22,59 @@ dependencies:
22
22
  prerelease: false
23
23
  requirement: &id001 !ruby/object:Gem::Requirement
24
24
  requirements:
25
- - - ">="
25
+ - - ~>
26
26
  - !ruby/object:Gem::Version
27
27
  segments:
28
+ - 1
28
29
  - 0
29
- - 10
30
- - 2
31
- version: 0.10.2
30
+ - 0
31
+ - rc3
32
+ version: 1.0.0.rc3
32
33
  type: :runtime
33
34
  version_requirements: *id001
35
+ - !ruby/object:Gem::Dependency
36
+ name: rspec
37
+ prerelease: false
38
+ requirement: &id002 !ruby/object:Gem::Requirement
39
+ requirements:
40
+ - - ~>
41
+ - !ruby/object:Gem::Version
42
+ segments:
43
+ - 1
44
+ - 3
45
+ version: "1.3"
46
+ type: :development
47
+ version_requirements: *id002
48
+ - !ruby/object:Gem::Dependency
49
+ name: dm-migrations
50
+ prerelease: false
51
+ requirement: &id003 !ruby/object:Gem::Requirement
52
+ requirements:
53
+ - - ~>
54
+ - !ruby/object:Gem::Version
55
+ segments:
56
+ - 1
57
+ - 0
58
+ - 0
59
+ - rc3
60
+ version: 1.0.0.rc3
61
+ type: :development
62
+ version_requirements: *id003
63
+ - !ruby/object:Gem::Dependency
64
+ name: dm-validations
65
+ prerelease: false
66
+ requirement: &id004 !ruby/object:Gem::Requirement
67
+ requirements:
68
+ - - ~>
69
+ - !ruby/object:Gem::Version
70
+ segments:
71
+ - 1
72
+ - 0
73
+ - 0
74
+ - rc3
75
+ version: 1.0.0.rc3
76
+ type: :development
77
+ version_requirements: *id004
34
78
  description: A DataMapper plugin that makes getting the <tt>select</tt> options from a Model easier.
35
79
  email: kematzy@gmail.com
36
80
  executables: []