dm-is-select 0.0.5 → 0.0.7

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/Rakefile CHANGED
@@ -12,8 +12,8 @@ begin
12
12
  gem.homepage = "http://github.com/kematzy/dm-is-select"
13
13
  gem.authors = ["kematzy"]
14
14
  gem.extra_rdoc_files = %w[ README.rdoc LICENSE TODO History.rdoc ]
15
- gem.add_dependency('dm-core', '>= 0.10.0')
16
- gem.add_dependency('dm-more', '>= 0.10.0')
15
+ gem.add_dependency('dm-core', '>= 0.10.2')
16
+ # gem.add_dependency('dm-more', '>= 0.10.0')
17
17
  # gem.add_dependency('dm-validations', '>= 0.10.0')
18
18
 
19
19
  # gem is a Gem::Specification... see http://www.rubygems.org/read/chapter/20 for additional settings
@@ -26,6 +26,7 @@ end
26
26
  require 'spec/rake/spectask'
27
27
  Spec::Rake::SpecTask.new(:spec) do |spec|
28
28
  spec.libs << 'lib' << 'spec'
29
+ spec.spec_opts = ["--color", "--format", "nested", "--require", "spec/spec_helper.rb"]
29
30
  spec.spec_files = FileList['spec/**/*_spec.rb']
30
31
  end
31
32
 
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.0.5
1
+ 0.0.7
data/dm-is-select.gemspec CHANGED
@@ -1,15 +1,15 @@
1
1
  # Generated by jeweler
2
- # DO NOT EDIT THIS FILE
3
- # Instead, edit Jeweler::Tasks in Rakefile, and run `rake gemspec`
2
+ # DO NOT EDIT THIS FILE DIRECTLY
3
+ # Instead, edit Jeweler::Tasks in Rakefile, and run the gemspec command
4
4
  # -*- encoding: utf-8 -*-
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{dm-is-select}
8
- s.version = "0.0.5"
8
+ s.version = "0.0.7"
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{2009-10-30}
12
+ s.date = %q{2010-05-20}
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 = [
@@ -31,13 +31,12 @@ Gem::Specification.new do |s|
31
31
  "lib/dm-is-select/is/select.rb",
32
32
  "lib/dm-is-select/is/version.rb",
33
33
  "spec/integration/select_spec.rb",
34
- "spec/spec.opts",
35
34
  "spec/spec_helper.rb"
36
35
  ]
37
36
  s.homepage = %q{http://github.com/kematzy/dm-is-select}
38
37
  s.rdoc_options = ["--charset=UTF-8"]
39
38
  s.require_paths = ["lib"]
40
- s.rubygems_version = %q{1.3.5}
39
+ s.rubygems_version = %q{1.3.6}
41
40
  s.summary = %q{A DataMapper plugin that makes getting the <tt>select</tt> options from a Model easier.}
42
41
  s.test_files = [
43
42
  "spec/integration/select_spec.rb",
@@ -49,14 +48,12 @@ Gem::Specification.new do |s|
49
48
  s.specification_version = 3
50
49
 
51
50
  if Gem::Version.new(Gem::RubyGemsVersion) >= Gem::Version.new('1.2.0') then
52
- s.add_runtime_dependency(%q<dm-core>, [">= 0.10.0"])
53
- s.add_runtime_dependency(%q<dm-more>, [">= 0.10.0"])
51
+ s.add_runtime_dependency(%q<dm-core>, [">= 0.10.2"])
54
52
  else
55
- s.add_dependency(%q<dm-core>, [">= 0.10.0"])
56
- s.add_dependency(%q<dm-more>, [">= 0.10.0"])
53
+ s.add_dependency(%q<dm-core>, [">= 0.10.2"])
57
54
  end
58
55
  else
59
- s.add_dependency(%q<dm-core>, [">= 0.10.0"])
60
- s.add_dependency(%q<dm-more>, [">= 0.10.0"])
56
+ s.add_dependency(%q<dm-core>, [">= 0.10.2"])
61
57
  end
62
58
  end
59
+
@@ -29,17 +29,23 @@ module DataMapper
29
29
  # => creates a <select> options array with the results ordered in hierarchical order
30
30
  # parent > child > grandchild for each parent
31
31
  #
32
+ # is :select, :name, :value_field => :code
33
+ # => creates a <select> options array with the results ordered in hierarchical order
34
+ # parent > child > grandchild for each parent
35
+ #
32
36
  #
33
37
  # @api public
34
38
  def is_select(select_field = :name, options = {})
35
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 }
36
40
 
37
41
  @select_options = {
42
+ :value_field => "id",
38
43
  # add specical features if we are working with Tree Model
39
44
  :is_tree => false
40
45
  }.merge(options)
41
46
 
42
47
  @select_field = select_field
48
+ @value_field = @select_options[:value_field]
43
49
 
44
50
 
45
51
  # Add class & Instance methods
@@ -49,7 +55,7 @@ module DataMapper
49
55
  end
50
56
 
51
57
  module ClassMethods
52
- attr_reader :select_field, :select_options
58
+ attr_reader :select_field, :select_options, :value_field
53
59
 
54
60
  ##
55
61
  # Provides the Model content in a ready to use <tt><select></tt> options array
@@ -128,19 +134,19 @@ module DataMapper
128
134
 
129
135
  if self.select_options[:is_tree]
130
136
  mi.each do |x|
131
- res << [x.id, x.send(self.select_field)]
137
+ res << [x.send(self.value_field), x.send(self.select_field)]
132
138
  unless x.children.blank?
133
139
  x.children.each do |child|
134
- res << [child.id, "-- #{child.send(self.select_field)}"]
140
+ res << [child.send(self.value_field), "-- #{child.send(self.select_field)}"]
135
141
  child.children.each do |grand_child|
136
- res << [ grand_child.id, "-- -- #{grand_child.send(self.select_field)}"]
142
+ res << [ grand_child.send(self.value_field), "-- -- #{grand_child.send(self.select_field)}"]
137
143
  end unless child.children.blank?
138
144
  end
139
145
  end
140
146
  end
141
147
  else
142
148
  mi.each do |x|
143
- res << [x.id, x.send(self.select_field)]
149
+ res << [x.send(self.value_field), x.send(self.select_field)]
144
150
  end
145
151
  end
146
152
  res
@@ -1,7 +1,7 @@
1
1
  module DataMapper
2
2
  module Is
3
3
  module Select
4
- VERSION = '0.0.5'
4
+ VERSION = '0.0.7'
5
5
  end
6
6
  end
7
7
  end
@@ -27,6 +27,16 @@ if HAS_SQLITE3 || HAS_MYSQL || HAS_POSTGRES
27
27
  auto_migrate!
28
28
  end
29
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
+
37
+ auto_migrate!
38
+ end #/ Country
39
+
30
40
  5.times do |n|
31
41
  Category.create(:name => "Category #{n+1}")
32
42
  end
@@ -38,6 +48,9 @@ if HAS_SQLITE3 || HAS_MYSQL || HAS_POSTGRES
38
48
  grandchild = TreeCategory.create(:name => "TreeCategory-#{parent_id}-Child-GrandChild" , :parent_id => child.id )
39
49
  end
40
50
 
51
+ 3.times do |i|
52
+ Country.create(:code => "A#{i}", :name => "Country#{i}")
53
+ end
41
54
 
42
55
  describe "Class Methods" do
43
56
 
@@ -272,6 +285,22 @@ if HAS_SQLITE3 || HAS_MYSQL || HAS_POSTGRES
272
285
 
273
286
  end #/ Tree Model
274
287
 
288
+ describe "A value_field model" do
289
+
290
+ it "should return the default select options when given no params" do
291
+ Country.items_for_select_menu.should == [
292
+ [nil, "Select Country"],
293
+ ["nil", " ------ "],
294
+ ['A0', "Country0"],
295
+ ['A1', "Country1"],
296
+ ['A2', "Country2"],
297
+ # [4, "Country3"],
298
+ # [5, "Country4"]
299
+ ]
300
+ end
301
+
302
+ end #/ A value_field model
303
+
275
304
  end #/ #item_for_select_menu
276
305
 
277
306
  end #/ Class Methods
data/spec/spec_helper.rb CHANGED
@@ -1,10 +1,8 @@
1
1
  require 'pathname'
2
2
  require 'rubygems'
3
3
 
4
- gem 'rspec', '~>1.2.6'
4
+ # gem 'rspec', '~>1.2.6'
5
5
  require 'spec'
6
- # gem 'dm-is-tree', '~>0.10.0'
7
- # require 'dm-is-tree'
8
6
 
9
7
  require Pathname(__FILE__).dirname.expand_path.parent + 'lib/dm-is-select'
10
8
 
metadata CHANGED
@@ -1,7 +1,12 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dm-is-select
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.5
4
+ prerelease: false
5
+ segments:
6
+ - 0
7
+ - 0
8
+ - 7
9
+ version: 0.0.7
5
10
  platform: ruby
6
11
  authors:
7
12
  - kematzy
@@ -9,29 +14,23 @@ autorequire:
9
14
  bindir: bin
10
15
  cert_chain: []
11
16
 
12
- date: 2009-10-30 00:00:00 +08:00
17
+ date: 2010-05-20 00:00:00 +08:00
13
18
  default_executable:
14
19
  dependencies:
15
20
  - !ruby/object:Gem::Dependency
16
21
  name: dm-core
17
- type: :runtime
18
- version_requirement:
19
- version_requirements: !ruby/object:Gem::Requirement
22
+ prerelease: false
23
+ requirement: &id001 !ruby/object:Gem::Requirement
20
24
  requirements:
21
25
  - - ">="
22
26
  - !ruby/object:Gem::Version
23
- version: 0.10.0
24
- version:
25
- - !ruby/object:Gem::Dependency
26
- name: dm-more
27
+ segments:
28
+ - 0
29
+ - 10
30
+ - 2
31
+ version: 0.10.2
27
32
  type: :runtime
28
- version_requirement:
29
- version_requirements: !ruby/object:Gem::Requirement
30
- requirements:
31
- - - ">="
32
- - !ruby/object:Gem::Version
33
- version: 0.10.0
34
- version:
33
+ version_requirements: *id001
35
34
  description: A DataMapper plugin that makes getting the <tt>select</tt> options from a Model easier.
36
35
  email: kematzy@gmail.com
37
36
  executables: []
@@ -56,7 +55,6 @@ files:
56
55
  - lib/dm-is-select/is/select.rb
57
56
  - lib/dm-is-select/is/version.rb
58
57
  - spec/integration/select_spec.rb
59
- - spec/spec.opts
60
58
  - spec/spec_helper.rb
61
59
  has_rdoc: true
62
60
  homepage: http://github.com/kematzy/dm-is-select
@@ -71,18 +69,20 @@ required_ruby_version: !ruby/object:Gem::Requirement
71
69
  requirements:
72
70
  - - ">="
73
71
  - !ruby/object:Gem::Version
72
+ segments:
73
+ - 0
74
74
  version: "0"
75
- version:
76
75
  required_rubygems_version: !ruby/object:Gem::Requirement
77
76
  requirements:
78
77
  - - ">="
79
78
  - !ruby/object:Gem::Version
79
+ segments:
80
+ - 0
80
81
  version: "0"
81
- version:
82
82
  requirements: []
83
83
 
84
84
  rubyforge_project:
85
- rubygems_version: 1.3.5
85
+ rubygems_version: 1.3.6
86
86
  signing_key:
87
87
  specification_version: 3
88
88
  summary: A DataMapper plugin that makes getting the <tt>select</tt> options from a Model easier.
data/spec/spec.opts DELETED
@@ -1 +0,0 @@
1
- --colour