data_fabric 1.2.7 → 1.3.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (118) hide show
  1. data/CHANGELOG +7 -0
  2. data/README.rdoc +9 -8
  3. data/Rakefile +9 -41
  4. data/TESTING.rdoc +3 -3
  5. data/example23/Rakefile +28 -27
  6. data/example23/config/environment.rb +4 -2
  7. data/example30/Gemfile +5 -0
  8. data/example30/Gemfile.lock +79 -0
  9. data/example30/README +256 -0
  10. data/example30/Rakefile +52 -0
  11. data/{example → example30}/app/controllers/accounts_controller.rb +0 -0
  12. data/{example/app/controllers/application.rb → example30/app/controllers/application_controller.rb} +0 -0
  13. data/{example → example30}/app/controllers/figments_controller.rb +0 -0
  14. data/example30/app/helpers/application_helper.rb +2 -0
  15. data/{example → example30}/app/models/account.rb +0 -0
  16. data/{example → example30}/app/models/figment.rb +0 -0
  17. data/{example → example30}/app/views/accounts/index.html.erb +2 -2
  18. data/{example → example30}/app/views/layouts/application.html.erb +0 -0
  19. data/example30/config.ru +4 -0
  20. data/example30/config/application.rb +42 -0
  21. data/example30/config/boot.rb +13 -0
  22. data/{example → example30}/config/database.yml +0 -0
  23. data/example30/config/environment.rb +5 -0
  24. data/example30/config/environments/development.rb +26 -0
  25. data/example30/config/environments/production.rb +49 -0
  26. data/example30/config/environments/test.rb +35 -0
  27. data/example30/config/initializers/backtrace_silencers.rb +7 -0
  28. data/{example → example30}/config/initializers/inflections.rb +2 -2
  29. data/{example → example30}/config/initializers/mime_types.rb +0 -0
  30. data/example30/config/initializers/secret_token.rb +7 -0
  31. data/example30/config/initializers/session_store.rb +8 -0
  32. data/example30/config/locales/en.yml +5 -0
  33. data/example30/config/routes.rb +65 -0
  34. data/example30/db/development.sqlite3 +0 -0
  35. data/{example → example30}/db/migrate/20080702154628_create_accounts.rb +0 -0
  36. data/{example → example30}/db/migrate/20080702154820_create_figments.rb +0 -0
  37. data/example30/db/s0_development.sqlite3 +0 -0
  38. data/example30/db/s0_test.sqlite3 +0 -0
  39. data/example30/db/s1_development.sqlite3 +0 -0
  40. data/example30/db/s1_test.sqlite3 +0 -0
  41. data/{example23 → example30}/db/schema.rb +7 -6
  42. data/example30/db/seeds.rb +7 -0
  43. data/example30/db/test.sqlite3 +0 -0
  44. data/example30/log/development.log +132 -0
  45. data/example30/log/test.log +444 -0
  46. data/example30/script/rails +6 -0
  47. data/{example → example30}/test/fixtures/accounts.yml +0 -0
  48. data/{example → example30}/test/functional/accounts_controller_test.rb +0 -0
  49. data/{example → example30}/test/integration/account_figments_test.rb +0 -0
  50. data/example30/test/performance/browsing_test.rb +9 -0
  51. data/example30/test/test_helper.rb +13 -0
  52. data/lib/data_fabric.rb +14 -21
  53. data/lib/data_fabric/{ar22.rb → connection_proxy.rb} +43 -63
  54. data/lib/data_fabric/extensions.rb +29 -0
  55. data/lib/data_fabric/version.rb +1 -1
  56. data/test/connection_test.rb +17 -12
  57. data/test/database_test.rb +3 -11
  58. data/test/test_helper.rb +3 -8
  59. data/test/thread_test.rb +0 -14
  60. data/test/vr_austin_master.db +0 -0
  61. data/test/vr_austin_slave.db +0 -0
  62. data/test/vr_dallas_master.db +0 -0
  63. data/test/vr_dallas_slave.db +0 -0
  64. metadata +72 -99
  65. data/example/Rakefile +0 -58
  66. data/example/app/helpers/accounts_helper.rb +0 -2
  67. data/example/app/helpers/application_helper.rb +0 -3
  68. data/example/app/helpers/figments_helper.rb +0 -2
  69. data/example/config/boot.rb +0 -109
  70. data/example/config/environment.rb +0 -67
  71. data/example/config/environments/development.rb +0 -17
  72. data/example/config/environments/production.rb +0 -22
  73. data/example/config/environments/test.rb +0 -22
  74. data/example/config/initializers/new_rails_defaults.rb +0 -15
  75. data/example/config/routes.rb +0 -45
  76. data/example/db/schema.rb +0 -28
  77. data/example/public/404.html +0 -30
  78. data/example/public/422.html +0 -30
  79. data/example/public/500.html +0 -30
  80. data/example/public/dispatch.cgi +0 -10
  81. data/example/public/dispatch.fcgi +0 -24
  82. data/example/public/dispatch.rb +0 -10
  83. data/example/public/favicon.ico +0 -0
  84. data/example/public/images/rails.png +0 -0
  85. data/example/public/robots.txt +0 -5
  86. data/example/script/about +0 -3
  87. data/example/script/console +0 -3
  88. data/example/script/dbconsole +0 -3
  89. data/example/script/destroy +0 -3
  90. data/example/script/generate +0 -3
  91. data/example/script/performance/benchmarker +0 -3
  92. data/example/script/performance/profiler +0 -3
  93. data/example/script/performance/request +0 -3
  94. data/example/script/plugin +0 -3
  95. data/example/script/process/inspector +0 -3
  96. data/example/script/process/reaper +0 -3
  97. data/example/script/process/spawner +0 -3
  98. data/example/script/runner +0 -3
  99. data/example/script/server +0 -3
  100. data/example/test/test_helper.rb +0 -41
  101. data/example23/db/development.sqlite3 +0 -0
  102. data/example23/db/s0_development.sqlite3 +0 -0
  103. data/example23/db/s0_test.sqlite3 +0 -0
  104. data/example23/db/s1_development.sqlite3 +0 -0
  105. data/example23/db/s1_test.sqlite3 +0 -0
  106. data/example23/db/test.sqlite3 +0 -0
  107. data/example23/log/development.log +0 -295
  108. data/example23/log/test.log +0 -551
  109. data/example23/vendor/plugins/data_fabric/init.rb +0 -3
  110. data/example23/vendor/plugins/data_fabric/lib/data_fabric.rb +0 -106
  111. data/example23/vendor/plugins/data_fabric/lib/data_fabric/ar20.rb +0 -133
  112. data/example23/vendor/plugins/data_fabric/lib/data_fabric/ar22.rb +0 -181
  113. data/example23/vendor/plugins/data_fabric/lib/data_fabric/dash.rb +0 -20
  114. data/example23/vendor/plugins/data_fabric/lib/data_fabric/version.rb +0 -7
  115. data/init.rb +0 -3
  116. data/lib/data_fabric/ar20.rb +0 -133
  117. data/lib/data_fabric/dash.rb +0 -20
  118. data/rails/init.rb +0 -1
data/example/Rakefile DELETED
@@ -1,58 +0,0 @@
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
- require 'tasks/rails'
10
-
11
- require 'fileutils'
12
- include FileUtils::Verbose
13
-
14
- namespace :db do
15
- task :migrate do
16
- require 'erb'
17
- require 'logger'
18
- require 'active_record'
19
- reference = YAML::load(ERB.new(IO.read("config/database.yml")).result)
20
- env = RAILS_ENV = ENV['RAILS_ENV'] || 'development'
21
- ActiveRecord::Base.logger = Logger.new(STDOUT)
22
- ActiveRecord::Base.logger.level = Logger::WARN
23
- ActiveRecord::Base.configurations = reference.dup
24
- old_config = reference[env]
25
- reference.each_key do |name|
26
- next unless name.include? env
27
- next if name.include? 'slave' # Replicated databases should not be touched directly
28
-
29
- puts "Migrating #{name}"
30
- ActiveRecord::Base.clear_active_connections!
31
- ActiveRecord::Base.configurations[env] = reference[name]
32
- ActiveRecord::Base.establish_connection RAILS_ENV
33
- ActiveRecord::Migration.verbose = ENV["VERBOSE"] ? ENV["VERBOSE"] == "true" : true
34
- ActiveRecord::Migrator.migrate("db/migrate/", ENV["VERSION"] ? ENV["VERSION"].to_i : nil)
35
- end
36
- end
37
- end
38
-
39
- namespace :app do
40
- task :prepare => [:clean, :copy_plugin, :migrate]
41
-
42
- task :copy_plugin do
43
- mkdir_p 'vendor/plugins/data_fabric'
44
- cp_r '../lib', 'vendor/plugins/data_fabric'
45
- cp '../init.rb', 'vendor/plugins/data_fabric'
46
- end
47
-
48
- task :clean do
49
- rm_rf 'vendor/plugins/data_fabric'
50
- rm_f 'db/*.sqlite3'
51
- end
52
-
53
- task :migrate do
54
- sh "rake db:migrate"
55
- sh "rake RAILS_ENV=test db:migrate"
56
- end
57
- end
58
-
@@ -1,2 +0,0 @@
1
- module AccountsHelper
2
- end
@@ -1,3 +0,0 @@
1
- # Methods added to this helper will be available to all templates in the application.
2
- module ApplicationHelper
3
- end
@@ -1,2 +0,0 @@
1
- module FigmentsHelper
2
- end
@@ -1,109 +0,0 @@
1
- # Don't change this file!
2
- # Configure your app in config/environment.rb and config/environments/*.rb
3
-
4
- RAILS_ROOT = "#{File.dirname(__FILE__)}/.." unless defined?(RAILS_ROOT)
5
-
6
- module Rails
7
- class << self
8
- def boot!
9
- unless booted?
10
- preinitialize
11
- pick_boot.run
12
- end
13
- end
14
-
15
- def booted?
16
- defined? Rails::Initializer
17
- end
18
-
19
- def pick_boot
20
- (vendor_rails? ? VendorBoot : GemBoot).new
21
- end
22
-
23
- def vendor_rails?
24
- File.exist?("#{RAILS_ROOT}/vendor/rails")
25
- end
26
-
27
- def preinitialize
28
- load(preinitializer_path) if File.exist?(preinitializer_path)
29
- end
30
-
31
- def preinitializer_path
32
- "#{RAILS_ROOT}/config/preinitializer.rb"
33
- end
34
- end
35
-
36
- class Boot
37
- def run
38
- load_initializer
39
- Rails::Initializer.run(:set_load_path)
40
- end
41
- end
42
-
43
- class VendorBoot < Boot
44
- def load_initializer
45
- require "#{RAILS_ROOT}/vendor/rails/railties/lib/initializer"
46
- Rails::Initializer.run(:install_gem_spec_stubs)
47
- end
48
- end
49
-
50
- class GemBoot < Boot
51
- def load_initializer
52
- self.class.load_rubygems
53
- load_rails_gem
54
- require 'initializer'
55
- end
56
-
57
- def load_rails_gem
58
- if version = self.class.gem_version
59
- gem 'rails', version
60
- else
61
- gem 'rails'
62
- end
63
- rescue Gem::LoadError => load_error
64
- $stderr.puts %(Missing the Rails #{version} gem. Please `gem install -v=#{version} rails`, update your RAILS_GEM_VERSION setting in config/environment.rb for the Rails version you do have installed, or comment out RAILS_GEM_VERSION to use the latest version installed.)
65
- exit 1
66
- end
67
-
68
- class << self
69
- def rubygems_version
70
- Gem::RubyGemsVersion if defined? Gem::RubyGemsVersion
71
- end
72
-
73
- def gem_version
74
- if defined? RAILS_GEM_VERSION
75
- RAILS_GEM_VERSION
76
- elsif ENV.include?('RAILS_GEM_VERSION')
77
- ENV['RAILS_GEM_VERSION']
78
- else
79
- parse_gem_version(read_environment_rb)
80
- end
81
- end
82
-
83
- def load_rubygems
84
- require 'rubygems'
85
-
86
- unless rubygems_version >= '0.9.4'
87
- $stderr.puts %(Rails requires RubyGems >= 0.9.4 (you have #{rubygems_version}). Please `gem update --system` and try again.)
88
- exit 1
89
- end
90
-
91
- rescue LoadError
92
- $stderr.puts %(Rails requires RubyGems >= 0.9.4. Please install RubyGems and try again: http://rubygems.rubyforge.org)
93
- exit 1
94
- end
95
-
96
- def parse_gem_version(text)
97
- $1 if text =~ /^[^#]*RAILS_GEM_VERSION\s*=\s*["']([!~<>=]*\s*[\d.]+)["']/
98
- end
99
-
100
- private
101
- def read_environment_rb
102
- File.read("#{RAILS_ROOT}/config/environment.rb")
103
- end
104
- end
105
- end
106
- end
107
-
108
- # All that for this:
109
- Rails.boot!
@@ -1,67 +0,0 @@
1
- # Be sure to restart your server when you modify this file
2
-
3
- # Uncomment below to force Rails into production mode when
4
- # you don't control web/app server and can't set it the proper way
5
- # ENV['RAILS_ENV'] ||= 'production'
6
-
7
- # Specifies gem version of Rails to use when vendor/rails is not present
8
- RAILS_GEM_VERSION = '2.1.0' unless defined? RAILS_GEM_VERSION
9
-
10
- # Bootstrap the Rails environment, frameworks, and default configuration
11
- require File.join(File.dirname(__FILE__), 'boot')
12
-
13
- Rails::Initializer.run do |config|
14
- # Settings in config/environments/* take precedence over those specified here.
15
- # Application configuration should go into files in config/initializers
16
- # -- all .rb files in that directory are automatically loaded.
17
- # See Rails::Configuration for more options.
18
-
19
- # Skip frameworks you're not going to use. To use Rails without a database
20
- # you must remove the Active Record framework.
21
- # config.frameworks -= [ :active_record, :active_resource, :action_mailer ]
22
-
23
- # Specify gems that this application depends on.
24
- # They can then be installed with "rake gems:install" on new installations.
25
- # config.gem "bj"
26
- # config.gem "hpricot", :version => '0.6', :source => "http://code.whytheluckystiff.net"
27
- # config.gem "aws-s3", :lib => "aws/s3"
28
-
29
- # Only load the plugins named here, in the order given. By default, all plugins
30
- # in vendor/plugins are loaded in alphabetical order.
31
- # :all can be used as a placeholder for all plugins not explicitly named
32
- # config.plugins = [ :exception_notification, :ssl_requirement, :all ]
33
-
34
- # Add additional load paths for your own custom dirs
35
- # config.load_paths += %W( #{RAILS_ROOT}/extras )
36
-
37
- # Force all environments to use the same logger level
38
- # (by default production uses :info, the others :debug)
39
- # config.log_level = :debug
40
-
41
- # Make Time.zone default to the specified zone, and make Active Record store time values
42
- # in the database in UTC, and return them converted to the specified local zone.
43
- # Run "rake -D time" for a list of tasks for finding time zone names. Uncomment to use default local time.
44
- config.time_zone = 'UTC'
45
-
46
- # Your secret key for verifying cookie session data integrity.
47
- # If you change this key, all old sessions will become invalid!
48
- # Make sure the secret is at least 30 characters and all random,
49
- # no regular words or you'll be exposed to dictionary attacks.
50
- config.action_controller.session = {
51
- :session_key => '_example_session',
52
- :secret => 'fa331d8ca4b067b31008ae157b6785319b76f59e202d9e917a9aa79a1c5f8a87c1dbb1d20bd242a5dc598b66e255e02f8c8516b2d0b64f1f7e6e60ce90205f77'
53
- }
54
-
55
- # Use the database for sessions instead of the cookie-based default,
56
- # which shouldn't be used to store highly confidential information
57
- # (create the session table with "rake db:sessions:create")
58
- # config.action_controller.session_store = :active_record_store
59
-
60
- # Use SQL instead of Active Record's schema dumper when creating the test database.
61
- # This is necessary if your schema can't be completely dumped by the schema dumper,
62
- # like if you have constraints or database-specific column types
63
- # config.active_record.schema_format = :sql
64
-
65
- # Activate observers that should always be running
66
- # config.active_record.observers = :cacher, :garbage_collector
67
- end
@@ -1,17 +0,0 @@
1
- # Settings specified here will take precedence over those in config/environment.rb
2
-
3
- # In the development environment your application's code is reloaded on
4
- # every request. This slows down response time but is perfect for development
5
- # since you don't have to restart the webserver when you make code changes.
6
- config.cache_classes = false
7
-
8
- # Log error messages when you accidentally call methods on nil.
9
- config.whiny_nils = true
10
-
11
- # Show full error reports and disable caching
12
- config.action_controller.consider_all_requests_local = true
13
- config.action_view.debug_rjs = true
14
- config.action_controller.perform_caching = false
15
-
16
- # Don't care if the mailer can't send
17
- config.action_mailer.raise_delivery_errors = false
@@ -1,22 +0,0 @@
1
- # Settings specified here will take precedence over those in config/environment.rb
2
-
3
- # The production environment is meant for finished, "live" apps.
4
- # Code is not reloaded between requests
5
- config.cache_classes = true
6
-
7
- # Use a different logger for distributed setups
8
- # config.logger = SyslogLogger.new
9
-
10
- # Full error reports are disabled and caching is turned on
11
- config.action_controller.consider_all_requests_local = false
12
- config.action_controller.perform_caching = true
13
- config.action_view.cache_template_loading = true
14
-
15
- # Use a different cache store in production
16
- # config.cache_store = :mem_cache_store
17
-
18
- # Enable serving of images, stylesheets, and javascripts from an asset server
19
- # config.action_controller.asset_host = "http://assets.example.com"
20
-
21
- # Disable delivery errors, bad email addresses will be ignored
22
- # config.action_mailer.raise_delivery_errors = false
@@ -1,22 +0,0 @@
1
- # Settings specified here will take precedence over those in config/environment.rb
2
-
3
- # The test environment is used exclusively to run your application's
4
- # test suite. You never need to work with it otherwise. Remember that
5
- # your test database is "scratch space" for the test suite and is wiped
6
- # and recreated between test runs. Don't rely on the data there!
7
- config.cache_classes = true
8
-
9
- # Log error messages when you accidentally call methods on nil.
10
- config.whiny_nils = true
11
-
12
- # Show full error reports and disable caching
13
- config.action_controller.consider_all_requests_local = true
14
- config.action_controller.perform_caching = false
15
-
16
- # Disable request forgery protection in test environment
17
- config.action_controller.allow_forgery_protection = false
18
-
19
- # Tell Action Mailer not to deliver emails to the real world.
20
- # The :test delivery method accumulates sent emails in the
21
- # ActionMailer::Base.deliveries array.
22
- config.action_mailer.delivery_method = :test
@@ -1,15 +0,0 @@
1
- # These settings change the behavior of Rails 2 apps and will be defaults
2
- # for Rails 3. You can remove this initializer when Rails 3 is released.
3
-
4
- # Include Active Record class name as root for JSON serialized output.
5
- ActiveRecord::Base.include_root_in_json = true
6
-
7
- # Store the full class name (including module namespace) in STI type column.
8
- ActiveRecord::Base.store_full_sti_class = true
9
-
10
- # Use ISO 8601 format for JSON serialized times and dates.
11
- ActiveSupport.use_standard_json_time_format = true
12
-
13
- # Don't escape HTML entities in JSON, leave that for the #json_escape helper.
14
- # if you're including raw json in an HTML page.
15
- ActiveSupport.escape_html_entities_in_json = false
@@ -1,45 +0,0 @@
1
- ActionController::Routing::Routes.draw do |map|
2
- map.resources :figments
3
- map.resources :accounts, :member => {:choose => :get}
4
- map.root :controller => 'accounts'
5
-
6
- # The priority is based upon order of creation: first created -> highest priority.
7
-
8
- # Sample of regular route:
9
- # map.connect 'products/:id', :controller => 'catalog', :action => 'view'
10
- # Keep in mind you can assign values other than :controller and :action
11
-
12
- # Sample of named route:
13
- # map.purchase 'products/:id/purchase', :controller => 'catalog', :action => 'purchase'
14
- # This route can be invoked with purchase_url(:id => product.id)
15
-
16
- # Sample resource route (maps HTTP verbs to controller actions automatically):
17
- # map.resources :products
18
-
19
- # Sample resource route with options:
20
- # map.resources :products, :member => { :short => :get, :toggle => :post }, :collection => { :sold => :get }
21
-
22
- # Sample resource route with sub-resources:
23
- # map.resources :products, :has_many => [ :comments, :sales ], :has_one => :seller
24
-
25
- # Sample resource route with more complex sub-resources
26
- # map.resources :products do |products|
27
- # products.resources :comments
28
- # products.resources :sales, :collection => { :recent => :get }
29
- # end
30
-
31
- # Sample resource route within a namespace:
32
- # map.namespace :admin do |admin|
33
- # # Directs /admin/products/* to Admin::ProductsController (app/controllers/admin/products_controller.rb)
34
- # admin.resources :products
35
- # end
36
-
37
- # You can have the root of your site routed with map.root -- just remember to delete public/index.html.
38
- # map.root :controller => "welcome"
39
-
40
- # See how all your routes lay out with "rake routes"
41
-
42
- # Install the default routes as the lowest priority.
43
- map.connect ':controller/:action/:id'
44
- map.connect ':controller/:action/:id.:format'
45
- end
data/example/db/schema.rb DELETED
@@ -1,28 +0,0 @@
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 => 20080702154820) do
13
-
14
- create_table "accounts", :force => true do |t|
15
- t.string "name"
16
- t.string "shard"
17
- t.datetime "created_at"
18
- t.datetime "updated_at"
19
- end
20
-
21
- create_table "figments", :force => true do |t|
22
- t.integer "account_id"
23
- t.integer "value"
24
- t.datetime "created_at"
25
- t.datetime "updated_at"
26
- end
27
-
28
- end
@@ -1,30 +0,0 @@
1
- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
2
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
3
-
4
- <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
5
-
6
- <head>
7
- <meta http-equiv="content-type" content="text/html; charset=UTF-8" />
8
- <title>The page you were looking for doesn't exist (404)</title>
9
- <style type="text/css">
10
- body { background-color: #fff; color: #666; text-align: center; font-family: arial, sans-serif; }
11
- div.dialog {
12
- width: 25em;
13
- padding: 0 4em;
14
- margin: 4em auto 0 auto;
15
- border: 1px solid #ccc;
16
- border-right-color: #999;
17
- border-bottom-color: #999;
18
- }
19
- h1 { font-size: 100%; color: #f00; line-height: 1.5em; }
20
- </style>
21
- </head>
22
-
23
- <body>
24
- <!-- This file lives in public/404.html -->
25
- <div class="dialog">
26
- <h1>The page you were looking for doesn't exist.</h1>
27
- <p>You may have mistyped the address or the page may have moved.</p>
28
- </div>
29
- </body>
30
- </html>
@@ -1,30 +0,0 @@
1
- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
2
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
3
-
4
- <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
5
-
6
- <head>
7
- <meta http-equiv="content-type" content="text/html; charset=UTF-8" />
8
- <title>The change you wanted was rejected (422)</title>
9
- <style type="text/css">
10
- body { background-color: #fff; color: #666; text-align: center; font-family: arial, sans-serif; }
11
- div.dialog {
12
- width: 25em;
13
- padding: 0 4em;
14
- margin: 4em auto 0 auto;
15
- border: 1px solid #ccc;
16
- border-right-color: #999;
17
- border-bottom-color: #999;
18
- }
19
- h1 { font-size: 100%; color: #f00; line-height: 1.5em; }
20
- </style>
21
- </head>
22
-
23
- <body>
24
- <!-- This file lives in public/422.html -->
25
- <div class="dialog">
26
- <h1>The change you wanted was rejected.</h1>
27
- <p>Maybe you tried to change something you didn't have access to.</p>
28
- </div>
29
- </body>
30
- </html>