us_states_select 1.0.0
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 +32 -0
- data/Rakefile +36 -0
- data/VERSION +1 -0
- data/init.rb +1 -0
- data/lib/us_states_select.rb +78 -0
- data/us_states_select.gemspec +41 -0
- metadata +67 -0
data/README
ADDED
@@ -0,0 +1,32 @@
|
|
1
|
+
UsStates
|
2
|
+
========
|
3
|
+
|
4
|
+
From http://svn.techno-weenie.net/projects/plugins/us_states/, updated
|
5
|
+
to run under rails 2.2.
|
6
|
+
|
7
|
+
To select "priority" states that show up at the top of the list, call
|
8
|
+
like so:
|
9
|
+
|
10
|
+
<%= us_state_select 'child', 'state', :priority => %w(TX CA) %>
|
11
|
+
|
12
|
+
To select the way states display option and value:
|
13
|
+
|
14
|
+
this (default):
|
15
|
+
<%= us_state_select 'child', 'state'%>
|
16
|
+
|
17
|
+
will yield this:
|
18
|
+
<option value="AK">Alaska</option>
|
19
|
+
______
|
20
|
+
this:
|
21
|
+
<%= us_state_select 'child', 'state', :show => :full %>
|
22
|
+
|
23
|
+
will yield this:
|
24
|
+
<option value="Alaska">Alaska</option>
|
25
|
+
|
26
|
+
______
|
27
|
+
Options are:
|
28
|
+
|
29
|
+
:full = <option value="Alaska">Alaska</option>
|
30
|
+
:full_abb = <option value="AK">Alaska</option>
|
31
|
+
:abbreviations = <option value="AK">AK</option>
|
32
|
+
::abb_full_abb = <option value="AK">AK - Alaska</option>
|
data/Rakefile
ADDED
@@ -0,0 +1,36 @@
|
|
1
|
+
require 'rake'
|
2
|
+
require 'rake/testtask'
|
3
|
+
require 'rake/rdoctask'
|
4
|
+
|
5
|
+
begin
|
6
|
+
require 'jeweler'
|
7
|
+
Jeweler::Tasks.new do |s|
|
8
|
+
s.name = "us_states_select"
|
9
|
+
s.summary = %Q{US State select Rails plugin}
|
10
|
+
s.homepage = "http://github.com/thincloud/us-state-select-plugin"
|
11
|
+
s.description = "US State select Rails plugin"
|
12
|
+
s.authors = ["Larry Sprock"]
|
13
|
+
end
|
14
|
+
rescue LoadError
|
15
|
+
puts "Jeweler not available. Install it with: sudo gem install technicalpickles-jeweler -s http://gems.github.com"
|
16
|
+
end
|
17
|
+
|
18
|
+
require 'rake/testtask'
|
19
|
+
Rake::TestTask.new(:test) do |t|
|
20
|
+
t.libs << 'lib' << 'test'
|
21
|
+
t.pattern = 'test/**/*_test.rb'
|
22
|
+
t.verbose = false
|
23
|
+
end
|
24
|
+
|
25
|
+
begin
|
26
|
+
require 'rcov/rcovtask'
|
27
|
+
Rcov::RcovTask.new do |t|
|
28
|
+
t.libs << 'test'
|
29
|
+
t.test_files = FileList['test/**/*_test.rb']
|
30
|
+
t.verbose = true
|
31
|
+
end
|
32
|
+
rescue LoadError
|
33
|
+
puts "RCov is not available. In order to run rcov, you must: sudo gem install spicycode-rcov"
|
34
|
+
end
|
35
|
+
|
36
|
+
task :default => :test
|
data/VERSION
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
1.0.0
|
data/init.rb
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
require 'us_states_select'
|
@@ -0,0 +1,78 @@
|
|
1
|
+
module ActionView
|
2
|
+
module Helpers
|
3
|
+
module FormOptionsHelper
|
4
|
+
def us_state_options_for_select(selected = nil, us_state_options = {})
|
5
|
+
state_options = ""
|
6
|
+
priority_states = lambda { |state| us_state_options[:priority].include?(state.last) }
|
7
|
+
us_state_options[:show] = :full if us_state_options[:with_abbreviation]
|
8
|
+
states_label = case us_state_options[:show]
|
9
|
+
when :full_abb then lambda { |state| [state.first, state.last] }
|
10
|
+
when :full then lambda { |state| [state.first, state.first] }
|
11
|
+
when :abbreviations then lambda { |state| [state.last, state.last] }
|
12
|
+
when :abb_full_abb then lambda { |state| ["#{state.last} - #{state.first}", state.last] }
|
13
|
+
else lambda { |state| state }
|
14
|
+
end
|
15
|
+
|
16
|
+
if us_state_options[:include_blank]
|
17
|
+
state_options += "<option value=\"\">--</option>\n"
|
18
|
+
end
|
19
|
+
|
20
|
+
if us_state_options[:priority]
|
21
|
+
state_options += options_for_select(US_STATES.select(&priority_states).collect(&states_label), selected)
|
22
|
+
state_options += "<option value=\"\">--</option>\n"
|
23
|
+
end
|
24
|
+
|
25
|
+
if us_state_options[:priority] && us_state_options[:priority].include?(selected)
|
26
|
+
state_options += options_for_select(US_STATES.reject(&priority_states).collect(&states_label), selected)
|
27
|
+
else
|
28
|
+
state_options += options_for_select(US_STATES.collect(&states_label), selected)
|
29
|
+
end
|
30
|
+
|
31
|
+
return state_options
|
32
|
+
end
|
33
|
+
|
34
|
+
def us_state_select(object, method, us_state_options = {}, options = {}, html_options = {})
|
35
|
+
InstanceTag.new(object, method, self, options.delete(:object)).to_us_state_select_tag(us_state_options, options, html_options)
|
36
|
+
end
|
37
|
+
|
38
|
+
private
|
39
|
+
US_STATES = [["Alaska", "AK"], ["Alabama", "AL"], ["Arkansas", "AR"], ["Arizona", "AZ"],
|
40
|
+
["California", "CA"], ["Colorado", "CO"], ["Connecticut", "CT"], ["District of Columbia", "DC"],
|
41
|
+
["Delaware", "DE"], ["Florida", "FL"], ["Georgia", "GA"], ["Hawaii", "HI"], ["Iowa", "IA"],
|
42
|
+
["Idaho", "ID"], ["Illinois", "IL"], ["Indiana", "IN"], ["Kansas", "KS"], ["Kentucky", "KY"],
|
43
|
+
["Louisiana", "LA"], ["Massachusetts", "MA"], ["Maryland", "MD"], ["Maine", "ME"], ["Michigan", "MI"],
|
44
|
+
["Minnesota", "MN"], ["Missouri", "MO"], ["Mississippi", "MS"], ["Montana", "MT"], ["North Carolina", "NC"],
|
45
|
+
["North Dakota", "ND"], ["Nebraska", "NE"], ["New Hampshire", "NH"], ["New Jersey", "NJ"],
|
46
|
+
["New Mexico", "NM"], ["Nevada", "NV"], ["New York", "NY"], ["Ohio", "OH"], ["Oklahoma", "OK"],
|
47
|
+
["Oregon", "OR"], ["Pennsylvania", "PA"], ["Rhode Island", "RI"], ["South Carolina", "SC"], ["South Dakota", "SD"],
|
48
|
+
["Tennessee", "TN"], ["Texas", "TX"], ["Utah", "UT"], ["Virginia", "VA"], ["Vermont", "VT"],
|
49
|
+
["Washington", "WA"], ["Wisconsin", "WI"], ["West Virginia", "WV"], ["Wyoming", "WY"]] unless const_defined?("US_STATES")
|
50
|
+
|
51
|
+
end
|
52
|
+
|
53
|
+
class InstanceTag #:nodoc:
|
54
|
+
# lets the us_states plugin handle Rails 1.1.2 AND trunk
|
55
|
+
def value_with_compat(object=nil)
|
56
|
+
if method(:value_without_compat).arity == 1
|
57
|
+
value_without_compat(object)
|
58
|
+
else
|
59
|
+
value_without_compat
|
60
|
+
end
|
61
|
+
end
|
62
|
+
alias_method :value_without_compat, :value
|
63
|
+
alias_method :value, :value_with_compat
|
64
|
+
|
65
|
+
def to_us_state_select_tag(us_state_options, options, html_options)
|
66
|
+
html_options = html_options.stringify_keys
|
67
|
+
add_default_name_and_id(html_options)
|
68
|
+
content_tag("select", add_options(us_state_options_for_select(value(object), us_state_options), options, value(object)), html_options)
|
69
|
+
end
|
70
|
+
end
|
71
|
+
|
72
|
+
class FormBuilder
|
73
|
+
def us_state_select(method, us_state_options = {}, options = {}, html_options = {})
|
74
|
+
@template.us_state_select(@object_name, method, us_state_options, options.merge(:object => @object), html_options)
|
75
|
+
end
|
76
|
+
end
|
77
|
+
end
|
78
|
+
end
|
@@ -0,0 +1,41 @@
|
|
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{us_states_select}
|
8
|
+
s.version = "1.0.0"
|
9
|
+
|
10
|
+
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
|
+
s.authors = ["Larry Sprock"]
|
12
|
+
s.date = %q{2010-03-23}
|
13
|
+
s.description = %q{US State select Rails plugin}
|
14
|
+
s.extra_rdoc_files = [
|
15
|
+
"README"
|
16
|
+
]
|
17
|
+
s.files = [
|
18
|
+
"README",
|
19
|
+
"Rakefile",
|
20
|
+
"VERSION",
|
21
|
+
"init.rb",
|
22
|
+
"lib/us_states_select.rb",
|
23
|
+
"us_states_select.gemspec"
|
24
|
+
]
|
25
|
+
s.homepage = %q{http://github.com/thincloud/us-state-select-plugin}
|
26
|
+
s.rdoc_options = ["--charset=UTF-8"]
|
27
|
+
s.require_paths = ["lib"]
|
28
|
+
s.rubygems_version = %q{1.3.6}
|
29
|
+
s.summary = %q{US State select Rails plugin}
|
30
|
+
|
31
|
+
if s.respond_to? :specification_version then
|
32
|
+
current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
|
33
|
+
s.specification_version = 3
|
34
|
+
|
35
|
+
if Gem::Version.new(Gem::RubyGemsVersion) >= Gem::Version.new('1.2.0') then
|
36
|
+
else
|
37
|
+
end
|
38
|
+
else
|
39
|
+
end
|
40
|
+
end
|
41
|
+
|
metadata
ADDED
@@ -0,0 +1,67 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: us_states_select
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
prerelease: false
|
5
|
+
segments:
|
6
|
+
- 1
|
7
|
+
- 0
|
8
|
+
- 0
|
9
|
+
version: 1.0.0
|
10
|
+
platform: ruby
|
11
|
+
authors:
|
12
|
+
- Larry Sprock
|
13
|
+
autorequire:
|
14
|
+
bindir: bin
|
15
|
+
cert_chain: []
|
16
|
+
|
17
|
+
date: 2010-03-23 00:00:00 -04:00
|
18
|
+
default_executable:
|
19
|
+
dependencies: []
|
20
|
+
|
21
|
+
description: US State select Rails plugin
|
22
|
+
email:
|
23
|
+
executables: []
|
24
|
+
|
25
|
+
extensions: []
|
26
|
+
|
27
|
+
extra_rdoc_files:
|
28
|
+
- README
|
29
|
+
files:
|
30
|
+
- README
|
31
|
+
- Rakefile
|
32
|
+
- VERSION
|
33
|
+
- init.rb
|
34
|
+
- lib/us_states_select.rb
|
35
|
+
- us_states_select.gemspec
|
36
|
+
has_rdoc: true
|
37
|
+
homepage: http://github.com/thincloud/us-state-select-plugin
|
38
|
+
licenses: []
|
39
|
+
|
40
|
+
post_install_message:
|
41
|
+
rdoc_options:
|
42
|
+
- --charset=UTF-8
|
43
|
+
require_paths:
|
44
|
+
- lib
|
45
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
46
|
+
requirements:
|
47
|
+
- - ">="
|
48
|
+
- !ruby/object:Gem::Version
|
49
|
+
segments:
|
50
|
+
- 0
|
51
|
+
version: "0"
|
52
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
53
|
+
requirements:
|
54
|
+
- - ">="
|
55
|
+
- !ruby/object:Gem::Version
|
56
|
+
segments:
|
57
|
+
- 0
|
58
|
+
version: "0"
|
59
|
+
requirements: []
|
60
|
+
|
61
|
+
rubyforge_project:
|
62
|
+
rubygems_version: 1.3.6
|
63
|
+
signing_key:
|
64
|
+
specification_version: 3
|
65
|
+
summary: US State select Rails plugin
|
66
|
+
test_files: []
|
67
|
+
|