ultrasphinx 1.5.2 → 1.5.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (127) hide show
  1. data.tar.gz.sig +2 -3
  2. data/CHANGELOG +2 -0
  3. data/Manifest +134 -28
  4. data/TODO +0 -1
  5. data/examples/{app.multi → ap.multi} +1 -1
  6. data/examples/default.base +2 -0
  7. data/lib/ultrasphinx.rb +19 -17
  8. data/lib/ultrasphinx/configure.rb +36 -28
  9. data/lib/ultrasphinx/core_extensions.rb +11 -1
  10. data/lib/ultrasphinx/fields.rb +16 -9
  11. data/lib/ultrasphinx/hex_to_int.sql +15 -0
  12. data/lib/ultrasphinx/is_indexed.rb +9 -7
  13. data/lib/ultrasphinx/search.rb +27 -13
  14. data/lib/ultrasphinx/search/internals.rb +36 -16
  15. data/lib/ultrasphinx/spell.rb +13 -4
  16. data/lib/ultrasphinx/ultrasphinx.rb +30 -20
  17. data/tasks/ultrasphinx.rake +31 -6
  18. data/test/integration/app/README +182 -0
  19. data/test/integration/app/Rakefile +10 -0
  20. data/test/integration/app/app/controllers/addresses_controller.rb +85 -0
  21. data/test/integration/app/app/controllers/application.rb +7 -0
  22. data/test/integration/app/app/controllers/sellers_controller.rb +85 -0
  23. data/test/integration/app/app/controllers/states_controller.rb +85 -0
  24. data/test/integration/app/app/controllers/users_controller.rb +85 -0
  25. data/test/integration/app/app/helpers/addresses_helper.rb +2 -0
  26. data/test/integration/app/app/helpers/application_helper.rb +3 -0
  27. data/test/integration/app/app/helpers/sellers_helper.rb +28 -0
  28. data/test/integration/app/app/helpers/states_helper.rb +2 -0
  29. data/test/integration/app/app/helpers/users_helper.rb +2 -0
  30. data/test/integration/app/app/models/geo/address.rb +8 -0
  31. data/test/integration/app/app/models/geo/state.rb +5 -0
  32. data/test/integration/app/app/models/person/user.rb +9 -0
  33. data/test/integration/app/app/models/seller.rb +20 -0
  34. data/test/integration/app/app/views/addresses/edit.html.erb +12 -0
  35. data/test/integration/app/app/views/addresses/index.html.erb +18 -0
  36. data/test/integration/app/app/views/addresses/new.html.erb +11 -0
  37. data/test/integration/app/app/views/addresses/show.html.erb +3 -0
  38. data/test/integration/app/app/views/layouts/addresses.html.erb +17 -0
  39. data/test/integration/app/app/views/layouts/sellers.html.erb +17 -0
  40. data/test/integration/app/app/views/layouts/states.html.erb +17 -0
  41. data/test/integration/app/app/views/layouts/users.html.erb +17 -0
  42. data/test/integration/app/app/views/sellers/edit.html.erb +12 -0
  43. data/test/integration/app/app/views/sellers/index.html.erb +20 -0
  44. data/test/integration/app/app/views/sellers/new.html.erb +11 -0
  45. data/test/integration/app/app/views/sellers/show.html.erb +3 -0
  46. data/test/integration/app/app/views/states/edit.html.erb +12 -0
  47. data/test/integration/app/app/views/states/index.html.erb +19 -0
  48. data/test/integration/app/app/views/states/new.html.erb +11 -0
  49. data/test/integration/app/app/views/states/show.html.erb +3 -0
  50. data/test/integration/app/app/views/users/edit.html.erb +12 -0
  51. data/test/integration/app/app/views/users/index.html.erb +22 -0
  52. data/test/integration/app/app/views/users/new.html.erb +11 -0
  53. data/test/integration/app/app/views/users/show.html.erb +3 -0
  54. data/test/integration/app/config/boot.rb +45 -0
  55. data/test/integration/app/config/database.yml +21 -0
  56. data/test/integration/app/config/environment.rb +11 -0
  57. data/test/integration/app/config/environments/development.rb +7 -0
  58. data/test/integration/app/config/environments/production.rb +18 -0
  59. data/test/integration/app/config/environments/test.rb +19 -0
  60. data/test/integration/app/config/locomotive.yml +6 -0
  61. data/test/integration/app/config/routes.rb +33 -0
  62. data/test/integration/app/config/ultrasphinx/default.base +56 -0
  63. data/test/integration/app/config/ultrasphinx/development.conf +159 -0
  64. data/test/integration/app/config/ultrasphinx/development.conf.canonical +159 -0
  65. data/test/integration/app/db/migrate/001_create_users.rb +16 -0
  66. data/test/integration/app/db/migrate/002_create_sellers.rb +14 -0
  67. data/test/integration/app/db/migrate/003_create_addresses.rb +19 -0
  68. data/test/integration/app/db/migrate/004_create_states.rb +12 -0
  69. data/test/integration/app/db/migrate/005_add_capitalization_to_seller.rb +9 -0
  70. data/test/integration/app/db/migrate/006_add_deleted_to_user.rb +9 -0
  71. data/test/integration/app/db/migrate/007_add_lat_and_long_to_address.rb +11 -0
  72. data/test/integration/app/db/migrate/008_add_mission_statement_to_seller.rb +9 -0
  73. data/test/integration/app/db/schema.rb +45 -0
  74. data/test/integration/app/doc/README_FOR_APP +2 -0
  75. data/test/integration/app/public/404.html +30 -0
  76. data/test/integration/app/public/500.html +30 -0
  77. data/test/integration/app/public/dispatch.cgi +10 -0
  78. data/test/integration/app/public/dispatch.fcgi +24 -0
  79. data/test/integration/app/public/dispatch.rb +10 -0
  80. data/test/integration/app/public/favicon.ico +0 -0
  81. data/test/integration/app/public/images/rails.png +0 -0
  82. data/test/integration/app/public/index.html +277 -0
  83. data/test/integration/app/public/javascripts/application.js +2 -0
  84. data/test/integration/app/public/javascripts/controls.js +833 -0
  85. data/test/integration/app/public/javascripts/dragdrop.js +942 -0
  86. data/test/integration/app/public/javascripts/effects.js +1088 -0
  87. data/test/integration/app/public/javascripts/prototype.js +2515 -0
  88. data/test/integration/app/public/robots.txt +1 -0
  89. data/test/integration/app/public/stylesheets/scaffold.css +74 -0
  90. data/test/integration/app/script/about +3 -0
  91. data/test/integration/app/script/breakpointer +3 -0
  92. data/test/integration/app/script/console +3 -0
  93. data/test/integration/app/script/destroy +3 -0
  94. data/test/integration/app/script/generate +3 -0
  95. data/test/integration/app/script/performance/benchmarker +3 -0
  96. data/test/integration/app/script/performance/profiler +3 -0
  97. data/test/integration/app/script/plugin +3 -0
  98. data/test/integration/app/script/process/inspector +3 -0
  99. data/test/integration/app/script/process/reaper +3 -0
  100. data/test/integration/app/script/process/spawner +3 -0
  101. data/test/integration/app/script/runner +3 -0
  102. data/test/integration/app/script/server +3 -0
  103. data/test/integration/app/test/fixtures/addresses.yml +13 -0
  104. data/test/integration/app/test/fixtures/sellers.yml +11 -0
  105. data/test/integration/app/test/fixtures/states.yml +216 -0
  106. data/test/integration/app/test/fixtures/users.yml +11 -0
  107. data/test/integration/app/test/functional/addresses_controller_test.rb +57 -0
  108. data/test/integration/app/test/functional/sellers_controller_test.rb +57 -0
  109. data/test/integration/app/test/functional/states_controller_test.rb +57 -0
  110. data/test/integration/app/test/functional/users_controller_test.rb +57 -0
  111. data/test/integration/app/test/test_helper.rb +28 -0
  112. data/test/integration/app/test/unit/address_test.rb +10 -0
  113. data/test/integration/app/test/unit/seller_test.rb +10 -0
  114. data/test/integration/app/test/unit/state_test.rb +10 -0
  115. data/test/integration/app/test/unit/user_test.rb +10 -0
  116. data/test/integration/configure_test.rb +23 -0
  117. data/test/integration/search_test.rb +221 -0
  118. data/test/integration/server_test.rb +38 -0
  119. data/test/integration/spell_test.rb +15 -0
  120. data/test/setup.rb +12 -0
  121. data/test/test_all.rb +1 -0
  122. data/test/test_helper.rb +13 -24
  123. data/test/ts.multi +2 -0
  124. data/test/unit/parser_test.rb +86 -86
  125. data/ultrasphinx.gemspec +12 -5
  126. metadata +136 -30
  127. metadata.gz.sig +0 -0
@@ -0,0 +1,182 @@
1
+ == Welcome to Rails
2
+
3
+ Rails is a web-application and persistence framework that includes everything
4
+ needed to create database-backed web-applications according to the
5
+ Model-View-Control pattern of separation. This pattern splits the view (also
6
+ called the presentation) into "dumb" templates that are primarily responsible
7
+ for inserting pre-built data in between HTML tags. The model contains the
8
+ "smart" domain objects (such as Account, Product, Person, Post) that holds all
9
+ the business logic and knows how to persist themselves to a database. The
10
+ controller handles the incoming requests (such as Save New Account, Update
11
+ Product, Show Post) by manipulating the model and directing data to the view.
12
+
13
+ In Rails, the model is handled by what's called an object-relational mapping
14
+ layer entitled Active Record. This layer allows you to present the data from
15
+ database rows as objects and embellish these data objects with business logic
16
+ methods. You can read more about Active Record in
17
+ link:files/vendor/rails/activerecord/README.html.
18
+
19
+ The controller and view are handled by the Action Pack, which handles both
20
+ layers by its two parts: Action View and Action Controller. These two layers
21
+ are bundled in a single package due to their heavy interdependence. This is
22
+ unlike the relationship between the Active Record and Action Pack that is much
23
+ more separate. Each of these packages can be used independently outside of
24
+ Rails. You can read more about Action Pack in
25
+ link:files/vendor/rails/actionpack/README.html.
26
+
27
+
28
+ == Getting started
29
+
30
+ 1. At the command prompt, start a new rails application using the rails command
31
+ and your application name. Ex: rails myapp
32
+ (If you've downloaded rails in a complete tgz or zip, this step is already done)
33
+ 2. Change directory into myapp and start the web server: <tt>script/server</tt> (run with --help for options)
34
+ 3. Go to http://localhost:3000/ and get "Welcome aboard: You’re riding the Rails!"
35
+ 4. Follow the guidelines to start developing your application
36
+
37
+
38
+ == Web Servers
39
+
40
+ By default, Rails will try to use Mongrel and lighttpd if they are installed, otherwise
41
+ Rails will use the WEBrick, the webserver that ships with Ruby. When you run script/server,
42
+ Rails will check if Mongrel exists, then lighttpd and finally fall back to WEBrick. This ensures
43
+ that you can always get up and running quickly.
44
+
45
+ Mongrel is a Ruby-based webserver with a C-component (which requires compilation) that is
46
+ suitable for development and deployment of Rails applications. If you have Ruby Gems installed,
47
+ getting up and running with mongrel is as easy as: <tt>gem install mongrel</tt>.
48
+ More info at: http://mongrel.rubyforge.org
49
+
50
+ If Mongrel is not installed, Rails will look for lighttpd. It's considerably faster than
51
+ Mongrel and WEBrick and also suited for production use, but requires additional
52
+ installation and currently only works well on OS X/Unix (Windows users are encouraged
53
+ to start with Mongrel). We recommend version 1.4.11 and higher. You can download it from
54
+ http://www.lighttpd.net.
55
+
56
+ And finally, if neither Mongrel or lighttpd are installed, Rails will use the built-in Ruby
57
+ web server, WEBrick. WEBrick is a small Ruby web server suitable for development, but not
58
+ for production.
59
+
60
+ But of course its also possible to run Rails on any platform that supports FCGI.
61
+ Apache, LiteSpeed, IIS are just a few. For more information on FCGI,
62
+ please visit: http://wiki.rubyonrails.com/rails/pages/FastCGI
63
+
64
+
65
+ == Debugging Rails
66
+
67
+ Have "tail -f" commands running on the server.log and development.log. Rails will
68
+ automatically display debugging and runtime information to these files. Debugging
69
+ info will also be shown in the browser on requests from 127.0.0.1.
70
+
71
+
72
+ == Breakpoints
73
+
74
+ Breakpoint support is available through the script/breakpointer client. This
75
+ means that you can break out of execution at any point in the code, investigate
76
+ and change the model, AND then resume execution! Example:
77
+
78
+ class WeblogController < ActionController::Base
79
+ def index
80
+ @posts = Post.find(:all)
81
+ breakpoint "Breaking out from the list"
82
+ end
83
+ end
84
+
85
+ So the controller will accept the action, run the first line, then present you
86
+ with a IRB prompt in the breakpointer window. Here you can do things like:
87
+
88
+ Executing breakpoint "Breaking out from the list" at .../webrick_server.rb:16 in 'breakpoint'
89
+
90
+ >> @posts.inspect
91
+ => "[#<Post:0x14a6be8 @attributes={\"title\"=>nil, \"body\"=>nil, \"id\"=>\"1\"}>,
92
+ #<Post:0x14a6620 @attributes={\"title\"=>\"Rails you know!\", \"body\"=>\"Only ten..\", \"id\"=>\"2\"}>]"
93
+ >> @posts.first.title = "hello from a breakpoint"
94
+ => "hello from a breakpoint"
95
+
96
+ ...and even better is that you can examine how your runtime objects actually work:
97
+
98
+ >> f = @posts.first
99
+ => #<Post:0x13630c4 @attributes={"title"=>nil, "body"=>nil, "id"=>"1"}>
100
+ >> f.
101
+ Display all 152 possibilities? (y or n)
102
+
103
+ Finally, when you're ready to resume execution, you press CTRL-D
104
+
105
+
106
+ == Console
107
+
108
+ You can interact with the domain model by starting the console through <tt>script/console</tt>.
109
+ Here you'll have all parts of the application configured, just like it is when the
110
+ application is running. You can inspect domain models, change values, and save to the
111
+ database. Starting the script without arguments will launch it in the development environment.
112
+ Passing an argument will specify a different environment, like <tt>script/console production</tt>.
113
+
114
+ To reload your controllers and models after launching the console run <tt>reload!</tt>
115
+
116
+ To reload your controllers and models after launching the console run <tt>reload!</tt>
117
+
118
+
119
+
120
+ == Description of contents
121
+
122
+ app
123
+ Holds all the code that's specific to this particular application.
124
+
125
+ app/controllers
126
+ Holds controllers that should be named like weblogs_controller.rb for
127
+ automated URL mapping. All controllers should descend from ApplicationController
128
+ which itself descends from ActionController::Base.
129
+
130
+ app/models
131
+ Holds models that should be named like post.rb.
132
+ Most models will descend from ActiveRecord::Base.
133
+
134
+ app/views
135
+ Holds the template files for the view that should be named like
136
+ weblogs/index.rhtml for the WeblogsController#index action. All views use eRuby
137
+ syntax.
138
+
139
+ app/views/layouts
140
+ Holds the template files for layouts to be used with views. This models the common
141
+ header/footer method of wrapping views. In your views, define a layout using the
142
+ <tt>layout :default</tt> and create a file named default.rhtml. Inside default.rhtml,
143
+ call <% yield %> to render the view using this layout.
144
+
145
+ app/helpers
146
+ Holds view helpers that should be named like weblogs_helper.rb. These are generated
147
+ for you automatically when using script/generate for controllers. Helpers can be used to
148
+ wrap functionality for your views into methods.
149
+
150
+ config
151
+ Configuration files for the Rails environment, the routing map, the database, and other dependencies.
152
+
153
+ components
154
+ Self-contained mini-applications that can bundle together controllers, models, and views.
155
+
156
+ db
157
+ Contains the database schema in schema.rb. db/migrate contains all
158
+ the sequence of Migrations for your schema.
159
+
160
+ doc
161
+ This directory is where your application documentation will be stored when generated
162
+ using <tt>rake doc:app</tt>
163
+
164
+ lib
165
+ Application specific libraries. Basically, any kind of custom code that doesn't
166
+ belong under controllers, models, or helpers. This directory is in the load path.
167
+
168
+ public
169
+ The directory available for the web server. Contains subdirectories for images, stylesheets,
170
+ and javascripts. Also contains the dispatchers and the default HTML files. This should be
171
+ set as the DOCUMENT_ROOT of your web server.
172
+
173
+ script
174
+ Helper scripts for automation and generation.
175
+
176
+ test
177
+ Unit and functional tests along with fixtures. When using the script/generate scripts, template
178
+ test files will be generated for you and placed in this directory.
179
+
180
+ vendor
181
+ External libraries that the application depends on. Also includes the plugins subdirectory.
182
+ This directory is in the load path.
@@ -0,0 +1,10 @@
1
+ # Add your own tasks in files placed in lib/tasks ending in .rake,
2
+ # for example lib/tasks/capistrano.rake, and they will automatically be available to Rake.
3
+
4
+ require(File.join(File.dirname(__FILE__), 'config', 'boot'))
5
+
6
+ require 'rake'
7
+ require 'rake/testtask'
8
+ require 'rake/rdoctask'
9
+
10
+ require 'tasks/rails'
@@ -0,0 +1,85 @@
1
+ class AddressesController < ApplicationController
2
+ # GET /addresses
3
+ # GET /addresses.xml
4
+ def index
5
+ @addresses = Address.find(:all)
6
+
7
+ respond_to do |format|
8
+ format.html # index.html.erb
9
+ format.xml { render :xml => @addresses }
10
+ end
11
+ end
12
+
13
+ # GET /addresses/1
14
+ # GET /addresses/1.xml
15
+ def show
16
+ @address = Address.find(params[:id])
17
+
18
+ respond_to do |format|
19
+ format.html # show.html.erb
20
+ format.xml { render :xml => @address }
21
+ end
22
+ end
23
+
24
+ # GET /addresses/new
25
+ # GET /addresses/new.xml
26
+ def new
27
+ @address = Address.new
28
+
29
+ respond_to do |format|
30
+ format.html # new.html.erb
31
+ format.xml { render :xml => @address }
32
+ end
33
+ end
34
+
35
+ # GET /addresses/1/edit
36
+ def edit
37
+ @address = Address.find(params[:id])
38
+ end
39
+
40
+ # POST /addresses
41
+ # POST /addresses.xml
42
+ def create
43
+ @address = Address.new(params[:address])
44
+
45
+ respond_to do |format|
46
+ if @address.save
47
+ flash[:notice] = 'Address was successfully created.'
48
+ format.html { redirect_to(@address) }
49
+ format.xml { render :xml => @address, :status => :created, :location => @address }
50
+ else
51
+ format.html { render :action => "new" }
52
+ format.xml { render :xml => @address.errors, :status => :unprocessable_entity }
53
+ end
54
+ end
55
+ end
56
+
57
+ # PUT /addresses/1
58
+ # PUT /addresses/1.xml
59
+ def update
60
+ @address = Address.find(params[:id])
61
+
62
+ respond_to do |format|
63
+ if @address.update_attributes(params[:address])
64
+ flash[:notice] = 'Address was successfully updated.'
65
+ format.html { redirect_to(@address) }
66
+ format.xml { head :ok }
67
+ else
68
+ format.html { render :action => "edit" }
69
+ format.xml { render :xml => @address.errors, :status => :unprocessable_entity }
70
+ end
71
+ end
72
+ end
73
+
74
+ # DELETE /addresses/1
75
+ # DELETE /addresses/1.xml
76
+ def destroy
77
+ @address = Address.find(params[:id])
78
+ @address.destroy
79
+
80
+ respond_to do |format|
81
+ format.html { redirect_to(addresses_url) }
82
+ format.xml { head :ok }
83
+ end
84
+ end
85
+ end
@@ -0,0 +1,7 @@
1
+ # Filters added to this controller apply to all controllers in the application.
2
+ # Likewise, all the methods added will be available for all controllers.
3
+
4
+ class ApplicationController < ActionController::Base
5
+ # Pick a unique cookie name to distinguish our session data from others'
6
+ session :session_key => '_testapp_session_id'
7
+ end
@@ -0,0 +1,85 @@
1
+ class SellersController < ApplicationController
2
+ # GET /sellers
3
+ # GET /sellers.xml
4
+ def index
5
+ @sellers = Seller.find(:all)
6
+
7
+ respond_to do |format|
8
+ format.html # index.html.erb
9
+ format.xml { render :xml => @sellers }
10
+ end
11
+ end
12
+
13
+ # GET /sellers/1
14
+ # GET /sellers/1.xml
15
+ def show
16
+ @seller = Seller.find(params[:id])
17
+
18
+ respond_to do |format|
19
+ format.html # show.html.erb
20
+ format.xml { render :xml => @seller }
21
+ end
22
+ end
23
+
24
+ # GET /sellers/new
25
+ # GET /sellers/new.xml
26
+ def new
27
+ @seller = Seller.new
28
+
29
+ respond_to do |format|
30
+ format.html # new.html.erb
31
+ format.xml { render :xml => @seller }
32
+ end
33
+ end
34
+
35
+ # GET /sellers/1/edit
36
+ def edit
37
+ @seller = Seller.find(params[:id])
38
+ end
39
+
40
+ # POST /sellers
41
+ # POST /sellers.xml
42
+ def create
43
+ @seller = Seller.new(params[:seller])
44
+
45
+ respond_to do |format|
46
+ if @seller.save
47
+ flash[:notice] = 'Seller was successfully created.'
48
+ format.html { redirect_to(@seller) }
49
+ format.xml { render :xml => @seller, :status => :created, :location => @seller }
50
+ else
51
+ format.html { render :action => "new" }
52
+ format.xml { render :xml => @seller.errors, :status => :unprocessable_entity }
53
+ end
54
+ end
55
+ end
56
+
57
+ # PUT /sellers/1
58
+ # PUT /sellers/1.xml
59
+ def update
60
+ @seller = Seller.find(params[:id])
61
+
62
+ respond_to do |format|
63
+ if @seller.update_attributes(params[:seller])
64
+ flash[:notice] = 'Seller was successfully updated.'
65
+ format.html { redirect_to(@seller) }
66
+ format.xml { head :ok }
67
+ else
68
+ format.html { render :action => "edit" }
69
+ format.xml { render :xml => @seller.errors, :status => :unprocessable_entity }
70
+ end
71
+ end
72
+ end
73
+
74
+ # DELETE /sellers/1
75
+ # DELETE /sellers/1.xml
76
+ def destroy
77
+ @seller = Seller.find(params[:id])
78
+ @seller.destroy
79
+
80
+ respond_to do |format|
81
+ format.html { redirect_to(sellers_url) }
82
+ format.xml { head :ok }
83
+ end
84
+ end
85
+ end
@@ -0,0 +1,85 @@
1
+ class StatesController < ApplicationController
2
+ # GET /states
3
+ # GET /states.xml
4
+ def index
5
+ @states = State.find(:all)
6
+
7
+ respond_to do |format|
8
+ format.html # index.html.erb
9
+ format.xml { render :xml => @states }
10
+ end
11
+ end
12
+
13
+ # GET /states/1
14
+ # GET /states/1.xml
15
+ def show
16
+ @state = State.find(params[:id])
17
+
18
+ respond_to do |format|
19
+ format.html # show.html.erb
20
+ format.xml { render :xml => @state }
21
+ end
22
+ end
23
+
24
+ # GET /states/new
25
+ # GET /states/new.xml
26
+ def new
27
+ @state = State.new
28
+
29
+ respond_to do |format|
30
+ format.html # new.html.erb
31
+ format.xml { render :xml => @state }
32
+ end
33
+ end
34
+
35
+ # GET /states/1/edit
36
+ def edit
37
+ @state = State.find(params[:id])
38
+ end
39
+
40
+ # POST /states
41
+ # POST /states.xml
42
+ def create
43
+ @state = State.new(params[:state])
44
+
45
+ respond_to do |format|
46
+ if @state.save
47
+ flash[:notice] = 'State was successfully created.'
48
+ format.html { redirect_to(@state) }
49
+ format.xml { render :xml => @state, :status => :created, :location => @state }
50
+ else
51
+ format.html { render :action => "new" }
52
+ format.xml { render :xml => @state.errors, :status => :unprocessable_entity }
53
+ end
54
+ end
55
+ end
56
+
57
+ # PUT /states/1
58
+ # PUT /states/1.xml
59
+ def update
60
+ @state = State.find(params[:id])
61
+
62
+ respond_to do |format|
63
+ if @state.update_attributes(params[:state])
64
+ flash[:notice] = 'State was successfully updated.'
65
+ format.html { redirect_to(@state) }
66
+ format.xml { head :ok }
67
+ else
68
+ format.html { render :action => "edit" }
69
+ format.xml { render :xml => @state.errors, :status => :unprocessable_entity }
70
+ end
71
+ end
72
+ end
73
+
74
+ # DELETE /states/1
75
+ # DELETE /states/1.xml
76
+ def destroy
77
+ @state = State.find(params[:id])
78
+ @state.destroy
79
+
80
+ respond_to do |format|
81
+ format.html { redirect_to(states_url) }
82
+ format.xml { head :ok }
83
+ end
84
+ end
85
+ end