enum_column 0.1.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.
Files changed (48) hide show
  1. data/.gitignore +6 -0
  2. data/LICENSE +20 -0
  3. data/Rakefile +57 -0
  4. data/VERSION +1 -0
  5. data/enum_column.gemspec +108 -0
  6. data/lib/enum/active_record_helper.rb +107 -0
  7. data/lib/enum/enum_adapter.rb +76 -0
  8. data/lib/enum/mysql_adapter.rb +33 -0
  9. data/lib/enum/postgresql_adapter.rb +64 -0
  10. data/lib/enum/quoting.rb +17 -0
  11. data/lib/enum/schema_definitions.rb +12 -0
  12. data/lib/enum/schema_statements.rb +32 -0
  13. data/lib/enum/sqlite3_adapter.rb +52 -0
  14. data/lib/enum/validations.rb +40 -0
  15. data/lib/enum_column.rb +9 -0
  16. data/readme.html +18 -0
  17. data/test/db/schema.rb +28 -0
  18. data/test/enum_mysql_test.rb +220 -0
  19. data/test/fixtures/db_definitions/mysql.drop.sql +32 -0
  20. data/test/fixtures/db_definitions/mysql.sql +244 -0
  21. data/test/fixtures/enumeration.rb +20 -0
  22. data/test/mock_app/.gitignore +3 -0
  23. data/test/mock_app/README +243 -0
  24. data/test/mock_app/Rakefile +10 -0
  25. data/test/mock_app/app/controllers/application_controller.rb +10 -0
  26. data/test/mock_app/app/controllers/contents_controller.rb +85 -0
  27. data/test/mock_app/app/models/content.rb +2 -0
  28. data/test/mock_app/config/boot.rb +110 -0
  29. data/test/mock_app/config/database.yml +5 -0
  30. data/test/mock_app/config/environment.rb +41 -0
  31. data/test/mock_app/config/environments/development.rb +17 -0
  32. data/test/mock_app/config/environments/production.rb +28 -0
  33. data/test/mock_app/config/environments/test.rb +28 -0
  34. data/test/mock_app/config/initializers/backtrace_silencers.rb +7 -0
  35. data/test/mock_app/config/initializers/inflections.rb +10 -0
  36. data/test/mock_app/config/initializers/mime_types.rb +5 -0
  37. data/test/mock_app/config/initializers/new_rails_defaults.rb +19 -0
  38. data/test/mock_app/config/initializers/session_store.rb +15 -0
  39. data/test/mock_app/config/locales/en.yml +5 -0
  40. data/test/mock_app/config/routes.rb +45 -0
  41. data/test/mock_app/config/sitemap.rb +13 -0
  42. data/test/mock_app/db/migrate/20090826121911_create_contents.rb +12 -0
  43. data/test/mock_app/db/schema.rb +20 -0
  44. data/test/mock_app/db/test.sqlite3 +0 -0
  45. data/test/mock_app/public/index.html +275 -0
  46. data/test/mock_app/script/console +3 -0
  47. data/test/test_helper.rb +21 -0
  48. metadata +130 -0
@@ -0,0 +1,45 @@
1
+ ActionController::Routing::Routes.draw do |map|
2
+ map.resources :contents
3
+
4
+ # The priority is based upon order of creation: first created -> highest priority.
5
+
6
+ # Sample of regular route:
7
+ # map.connect 'products/:id', :controller => 'catalog', :action => 'view'
8
+ # Keep in mind you can assign values other than :controller and :action
9
+
10
+ # Sample of named route:
11
+ # map.purchase 'products/:id/purchase', :controller => 'catalog', :action => 'purchase'
12
+ # This route can be invoked with purchase_url(:id => product.id)
13
+
14
+ # Sample resource route (maps HTTP verbs to controller actions automatically):
15
+ # map.resources :products
16
+
17
+ # Sample resource route with options:
18
+ # map.resources :products, :member => { :short => :get, :toggle => :post }, :collection => { :sold => :get }
19
+
20
+ # Sample resource route with sub-resources:
21
+ # map.resources :products, :has_many => [ :comments, :sales ], :has_one => :seller
22
+
23
+ # Sample resource route with more complex sub-resources
24
+ # map.resources :products do |products|
25
+ # products.resources :comments
26
+ # products.resources :sales, :collection => { :recent => :get }
27
+ # end
28
+
29
+ # Sample resource route within a namespace:
30
+ # map.namespace :admin do |admin|
31
+ # # Directs /admin/products/* to Admin::ProductsController (app/controllers/admin/products_controller.rb)
32
+ # admin.resources :products
33
+ # end
34
+
35
+ # You can have the root of your site routed with map.root -- just remember to delete public/index.html.
36
+ # map.root :controller => "welcome"
37
+
38
+ # See how all your routes lay out with "rake routes"
39
+
40
+ # Install the default routes as the lowest priority.
41
+ # Note: These default routes make all actions in every controller accessible via GET requests. You should
42
+ # consider removing or commenting them out if you're using named routes and resources.
43
+ map.connect ':controller/:action/:id'
44
+ map.connect ':controller/:action/:id.:format'
45
+ end
@@ -0,0 +1,13 @@
1
+ SitemapGenerator::Sitemap.default_host = "http://www.example.com"
2
+ SitemapGenerator::Sitemap.yahoo_app_id = false
3
+
4
+ SitemapGenerator::Sitemap.add_links do |sitemap|
5
+ sitemap.add contents_path, :priority => 0.7, :changefreq => 'daily'
6
+
7
+ # add all individual articles
8
+ Content.find(:all).each do |c|
9
+ sitemap.add content_path(c), :lastmod => c.updated_at
10
+ end
11
+
12
+ sitemap.add "/merchant_path", :host => "https://www.example.com"
13
+ end
@@ -0,0 +1,12 @@
1
+ class CreateContents < ActiveRecord::Migration
2
+ def self.up
3
+ create_table :contents do |t|
4
+ t.string :title
5
+ t.timestamps
6
+ end
7
+ end
8
+
9
+ def self.down
10
+ drop_table :contents
11
+ end
12
+ end
@@ -0,0 +1,20 @@
1
+ # This file is auto-generated from the current state of the database. Instead of editing this file,
2
+ # please use the migrations feature of Active Record to incrementally modify your database, and
3
+ # then regenerate this schema definition.
4
+ #
5
+ # Note that this schema.rb definition is the authoritative source for your database schema. If you need
6
+ # to create the application database on another system, you should be using db:schema:load, not running
7
+ # all the migrations from scratch. The latter is a flawed and unsustainable approach (the more migrations
8
+ # you'll amass, the slower it'll run and the greater likelihood for issues).
9
+ #
10
+ # It's strongly recommended to check this file into your version control system.
11
+
12
+ ActiveRecord::Schema.define(:version => 20090826121911) do
13
+
14
+ create_table "contents", :force => true do |t|
15
+ t.string "title"
16
+ t.datetime "created_at"
17
+ t.datetime "updated_at"
18
+ end
19
+
20
+ end
Binary file
@@ -0,0 +1,275 @@
1
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
2
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
3
+ <html>
4
+ <head>
5
+ <meta http-equiv="Content-type" content="text/html; charset=utf-8" />
6
+ <title>Ruby on Rails: Welcome aboard</title>
7
+ <style type="text/css" media="screen">
8
+ body {
9
+ margin: 0;
10
+ margin-bottom: 25px;
11
+ padding: 0;
12
+ background-color: #f0f0f0;
13
+ font-family: "Lucida Grande", "Bitstream Vera Sans", "Verdana";
14
+ font-size: 13px;
15
+ color: #333;
16
+ }
17
+
18
+ h1 {
19
+ font-size: 28px;
20
+ color: #000;
21
+ }
22
+
23
+ a {color: #03c}
24
+ a:hover {
25
+ background-color: #03c;
26
+ color: white;
27
+ text-decoration: none;
28
+ }
29
+
30
+
31
+ #page {
32
+ background-color: #f0f0f0;
33
+ width: 750px;
34
+ margin: 0;
35
+ margin-left: auto;
36
+ margin-right: auto;
37
+ }
38
+
39
+ #content {
40
+ float: left;
41
+ background-color: white;
42
+ border: 3px solid #aaa;
43
+ border-top: none;
44
+ padding: 25px;
45
+ width: 500px;
46
+ }
47
+
48
+ #sidebar {
49
+ float: right;
50
+ width: 175px;
51
+ }
52
+
53
+ #footer {
54
+ clear: both;
55
+ }
56
+
57
+
58
+ #header, #about, #getting-started {
59
+ padding-left: 75px;
60
+ padding-right: 30px;
61
+ }
62
+
63
+
64
+ #header {
65
+ background-image: url("images/rails.png");
66
+ background-repeat: no-repeat;
67
+ background-position: top left;
68
+ height: 64px;
69
+ }
70
+ #header h1, #header h2 {margin: 0}
71
+ #header h2 {
72
+ color: #888;
73
+ font-weight: normal;
74
+ font-size: 16px;
75
+ }
76
+
77
+
78
+ #about h3 {
79
+ margin: 0;
80
+ margin-bottom: 10px;
81
+ font-size: 14px;
82
+ }
83
+
84
+ #about-content {
85
+ background-color: #ffd;
86
+ border: 1px solid #fc0;
87
+ margin-left: -11px;
88
+ }
89
+ #about-content table {
90
+ margin-top: 10px;
91
+ margin-bottom: 10px;
92
+ font-size: 11px;
93
+ border-collapse: collapse;
94
+ }
95
+ #about-content td {
96
+ padding: 10px;
97
+ padding-top: 3px;
98
+ padding-bottom: 3px;
99
+ }
100
+ #about-content td.name {color: #555}
101
+ #about-content td.value {color: #000}
102
+
103
+ #about-content.failure {
104
+ background-color: #fcc;
105
+ border: 1px solid #f00;
106
+ }
107
+ #about-content.failure p {
108
+ margin: 0;
109
+ padding: 10px;
110
+ }
111
+
112
+
113
+ #getting-started {
114
+ border-top: 1px solid #ccc;
115
+ margin-top: 25px;
116
+ padding-top: 15px;
117
+ }
118
+ #getting-started h1 {
119
+ margin: 0;
120
+ font-size: 20px;
121
+ }
122
+ #getting-started h2 {
123
+ margin: 0;
124
+ font-size: 14px;
125
+ font-weight: normal;
126
+ color: #333;
127
+ margin-bottom: 25px;
128
+ }
129
+ #getting-started ol {
130
+ margin-left: 0;
131
+ padding-left: 0;
132
+ }
133
+ #getting-started li {
134
+ font-size: 18px;
135
+ color: #888;
136
+ margin-bottom: 25px;
137
+ }
138
+ #getting-started li h2 {
139
+ margin: 0;
140
+ font-weight: normal;
141
+ font-size: 18px;
142
+ color: #333;
143
+ }
144
+ #getting-started li p {
145
+ color: #555;
146
+ font-size: 13px;
147
+ }
148
+
149
+
150
+ #search {
151
+ margin: 0;
152
+ padding-top: 10px;
153
+ padding-bottom: 10px;
154
+ font-size: 11px;
155
+ }
156
+ #search input {
157
+ font-size: 11px;
158
+ margin: 2px;
159
+ }
160
+ #search-text {width: 170px}
161
+
162
+
163
+ #sidebar ul {
164
+ margin-left: 0;
165
+ padding-left: 0;
166
+ }
167
+ #sidebar ul h3 {
168
+ margin-top: 25px;
169
+ font-size: 16px;
170
+ padding-bottom: 10px;
171
+ border-bottom: 1px solid #ccc;
172
+ }
173
+ #sidebar li {
174
+ list-style-type: none;
175
+ }
176
+ #sidebar ul.links li {
177
+ margin-bottom: 5px;
178
+ }
179
+
180
+ </style>
181
+ <script type="text/javascript" src="javascripts/prototype.js"></script>
182
+ <script type="text/javascript" src="javascripts/effects.js"></script>
183
+ <script type="text/javascript">
184
+ function about() {
185
+ if (Element.empty('about-content')) {
186
+ new Ajax.Updater('about-content', 'rails/info/properties', {
187
+ method: 'get',
188
+ onFailure: function() {Element.classNames('about-content').add('failure')},
189
+ onComplete: function() {new Effect.BlindDown('about-content', {duration: 0.25})}
190
+ });
191
+ } else {
192
+ new Effect[Element.visible('about-content') ?
193
+ 'BlindUp' : 'BlindDown']('about-content', {duration: 0.25});
194
+ }
195
+ }
196
+
197
+ window.onload = function() {
198
+ $('search-text').value = '';
199
+ $('search').onsubmit = function() {
200
+ $('search-text').value = 'site:rubyonrails.org ' + $F('search-text');
201
+ }
202
+ }
203
+ </script>
204
+ </head>
205
+ <body>
206
+ <div id="page">
207
+ <div id="sidebar">
208
+ <ul id="sidebar-items">
209
+ <li>
210
+ <form id="search" action="http://www.google.com/search" method="get">
211
+ <input type="hidden" name="hl" value="en" />
212
+ <input type="text" id="search-text" name="q" value="site:rubyonrails.org " />
213
+ <input type="submit" value="Search" /> the Rails site
214
+ </form>
215
+ </li>
216
+
217
+ <li>
218
+ <h3>Join the community</h3>
219
+ <ul class="links">
220
+ <li><a href="http://www.rubyonrails.org/">Ruby on Rails</a></li>
221
+ <li><a href="http://weblog.rubyonrails.org/">Official weblog</a></li>
222
+ <li><a href="http://wiki.rubyonrails.org/">Wiki</a></li>
223
+ </ul>
224
+ </li>
225
+
226
+ <li>
227
+ <h3>Browse the documentation</h3>
228
+ <ul class="links">
229
+ <li><a href="http://api.rubyonrails.org/">Rails API</a></li>
230
+ <li><a href="http://stdlib.rubyonrails.org/">Ruby standard library</a></li>
231
+ <li><a href="http://corelib.rubyonrails.org/">Ruby core</a></li>
232
+ <li><a href="http://guides.rubyonrails.org/">Rails Guides</a></li>
233
+ </ul>
234
+ </li>
235
+ </ul>
236
+ </div>
237
+
238
+ <div id="content">
239
+ <div id="header">
240
+ <h1>Welcome aboard</h1>
241
+ <h2>You&rsquo;re riding Ruby on Rails!</h2>
242
+ </div>
243
+
244
+ <div id="about">
245
+ <h3><a href="rails/info/properties" onclick="about(); return false">About your application&rsquo;s environment</a></h3>
246
+ <div id="about-content" style="display: none"></div>
247
+ </div>
248
+
249
+ <div id="getting-started">
250
+ <h1>Getting started</h1>
251
+ <h2>Here&rsquo;s how to get rolling:</h2>
252
+
253
+ <ol>
254
+ <li>
255
+ <h2>Use <tt>script/generate</tt> to create your models and controllers</h2>
256
+ <p>To see all available options, run it without parameters.</p>
257
+ </li>
258
+
259
+ <li>
260
+ <h2>Set up a default route and remove or rename this file</h2>
261
+ <p>Routes are set up in config/routes.rb.</p>
262
+ </li>
263
+
264
+ <li>
265
+ <h2>Create your database</h2>
266
+ <p>Run <tt>rake db:migrate</tt> to create your database. If you're not using SQLite (the default), edit <tt>config/database.yml</tt> with your username and password.</p>
267
+ </li>
268
+ </ol>
269
+ </div>
270
+ </div>
271
+
272
+ <div id="footer">&nbsp;</div>
273
+ </div>
274
+ </body>
275
+ </html>
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env ruby
2
+ require File.dirname(__FILE__) + '/../config/boot'
3
+ require 'commands/console'
@@ -0,0 +1,21 @@
1
+ ENV['RAILS_ENV'] = 'test'
2
+ ENV['RAILS_ROOT'] ||= File.join(File.dirname(__FILE__), 'mock_app')
3
+
4
+ require File.expand_path(File.join(ENV['RAILS_ROOT'], 'config', 'environment.rb'))
5
+ require 'test_help'
6
+
7
+ # =============================================================================
8
+ # Include the files required to test Engines.
9
+
10
+ plugin_path = File::dirname(__FILE__) + '/..'
11
+ schema_file = plugin_path + "/test/db/schema.rb"
12
+ load(schema_file) if File.exist?(schema_file)
13
+
14
+ # set up the fixtures location to use your engine's fixtures
15
+ fixture_path = File.dirname(__FILE__) + "/fixtures/"
16
+ Test::Unit::TestCase.fixture_path = fixture_path
17
+ $LOAD_PATH.unshift(Test::Unit::TestCase.fixture_path)
18
+ $LOAD_PATH.unshift(File.dirname(__FILE__))
19
+ # =============================================================================
20
+
21
+
metadata ADDED
@@ -0,0 +1,130 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: enum_column
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ platform: ruby
6
+ authors:
7
+ - Stephan Kaag
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+
12
+ date: 2009-10-14 00:00:00 +02:00
13
+ default_executable:
14
+ dependencies:
15
+ - !ruby/object:Gem::Dependency
16
+ name: thoughtbot-shoulda
17
+ type: :development
18
+ version_requirement:
19
+ version_requirements: !ruby/object:Gem::Requirement
20
+ requirements:
21
+ - - ">="
22
+ - !ruby/object:Gem::Version
23
+ version: "0"
24
+ version:
25
+ description: Ruby on Rails Enumerated Column Constraints
26
+ email: stephan.kaag@gmail.com
27
+ executables: []
28
+
29
+ extensions: []
30
+
31
+ extra_rdoc_files:
32
+ - LICENSE
33
+ files:
34
+ - .gitignore
35
+ - LICENSE
36
+ - Rakefile
37
+ - VERSION
38
+ - enum_column.gemspec
39
+ - lib/enum/active_record_helper.rb
40
+ - lib/enum/enum_adapter.rb
41
+ - lib/enum/mysql_adapter.rb
42
+ - lib/enum/postgresql_adapter.rb
43
+ - lib/enum/quoting.rb
44
+ - lib/enum/schema_definitions.rb
45
+ - lib/enum/schema_statements.rb
46
+ - lib/enum/sqlite3_adapter.rb
47
+ - lib/enum/validations.rb
48
+ - lib/enum_column.rb
49
+ - readme.html
50
+ - test/db/schema.rb
51
+ - test/enum_mysql_test.rb
52
+ - test/fixtures/db_definitions/mysql.drop.sql
53
+ - test/fixtures/db_definitions/mysql.sql
54
+ - test/fixtures/enumeration.rb
55
+ - test/mock_app/.gitignore
56
+ - test/mock_app/README
57
+ - test/mock_app/Rakefile
58
+ - test/mock_app/app/controllers/application_controller.rb
59
+ - test/mock_app/app/controllers/contents_controller.rb
60
+ - test/mock_app/app/models/content.rb
61
+ - test/mock_app/config/boot.rb
62
+ - test/mock_app/config/database.yml
63
+ - test/mock_app/config/environment.rb
64
+ - test/mock_app/config/environments/development.rb
65
+ - test/mock_app/config/environments/production.rb
66
+ - test/mock_app/config/environments/test.rb
67
+ - test/mock_app/config/initializers/backtrace_silencers.rb
68
+ - test/mock_app/config/initializers/inflections.rb
69
+ - test/mock_app/config/initializers/mime_types.rb
70
+ - test/mock_app/config/initializers/new_rails_defaults.rb
71
+ - test/mock_app/config/initializers/session_store.rb
72
+ - test/mock_app/config/locales/en.yml
73
+ - test/mock_app/config/routes.rb
74
+ - test/mock_app/config/sitemap.rb
75
+ - test/mock_app/db/migrate/20090826121911_create_contents.rb
76
+ - test/mock_app/db/schema.rb
77
+ - test/mock_app/db/test.sqlite3
78
+ - test/mock_app/public/index.html
79
+ - test/mock_app/script/console
80
+ - test/test_helper.rb
81
+ has_rdoc: true
82
+ homepage: http://github.com/stephankaag/enum_column
83
+ licenses: []
84
+
85
+ post_install_message:
86
+ rdoc_options:
87
+ - --charset=UTF-8
88
+ require_paths:
89
+ - lib
90
+ required_ruby_version: !ruby/object:Gem::Requirement
91
+ requirements:
92
+ - - ">="
93
+ - !ruby/object:Gem::Version
94
+ version: "0"
95
+ version:
96
+ required_rubygems_version: !ruby/object:Gem::Requirement
97
+ requirements:
98
+ - - ">="
99
+ - !ruby/object:Gem::Version
100
+ version: "0"
101
+ version:
102
+ requirements: []
103
+
104
+ rubyforge_project:
105
+ rubygems_version: 1.3.5
106
+ signing_key:
107
+ specification_version: 3
108
+ summary: Ruby on Rails Enumerated Column Constraints
109
+ test_files:
110
+ - test/db/schema.rb
111
+ - test/enum_mysql_test.rb
112
+ - test/fixtures/enumeration.rb
113
+ - test/mock_app/app/controllers/application_controller.rb
114
+ - test/mock_app/app/controllers/contents_controller.rb
115
+ - test/mock_app/app/models/content.rb
116
+ - test/mock_app/config/boot.rb
117
+ - test/mock_app/config/environment.rb
118
+ - test/mock_app/config/environments/development.rb
119
+ - test/mock_app/config/environments/production.rb
120
+ - test/mock_app/config/environments/test.rb
121
+ - test/mock_app/config/initializers/backtrace_silencers.rb
122
+ - test/mock_app/config/initializers/inflections.rb
123
+ - test/mock_app/config/initializers/mime_types.rb
124
+ - test/mock_app/config/initializers/new_rails_defaults.rb
125
+ - test/mock_app/config/initializers/session_store.rb
126
+ - test/mock_app/config/routes.rb
127
+ - test/mock_app/config/sitemap.rb
128
+ - test/mock_app/db/migrate/20090826121911_create_contents.rb
129
+ - test/mock_app/db/schema.rb
130
+ - test/test_helper.rb