presenting 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (89) hide show
  1. data/LICENSE +20 -0
  2. data/README +10 -0
  3. data/Rakefile +22 -0
  4. data/app/assets/javascript/grid.js +0 -0
  5. data/app/assets/javascript/search.js +13 -0
  6. data/app/assets/stylesheets/details-color.css +7 -0
  7. data/app/assets/stylesheets/details.css +10 -0
  8. data/app/assets/stylesheets/form.css +1 -0
  9. data/app/assets/stylesheets/grid-color.css +71 -0
  10. data/app/assets/stylesheets/grid.css +64 -0
  11. data/app/assets/stylesheets/search-color.css +16 -0
  12. data/app/assets/stylesheets/search.css +45 -0
  13. data/app/controllers/presentation/assets_controller.rb +42 -0
  14. data/app/views/presentations/_details.erb +11 -0
  15. data/app/views/presentations/_field_search.erb +14 -0
  16. data/app/views/presentations/_form.erb +20 -0
  17. data/app/views/presentations/_grid.erb +70 -0
  18. data/app/views/presentations/_search.erb +7 -0
  19. data/config/routes.rb +3 -0
  20. data/lib/presentation/base.rb +48 -0
  21. data/lib/presentation/details.rb +19 -0
  22. data/lib/presentation/field_search.rb +65 -0
  23. data/lib/presentation/form.rb +149 -0
  24. data/lib/presentation/grid.rb +160 -0
  25. data/lib/presentation/search.rb +9 -0
  26. data/lib/presenting/attribute.rb +51 -0
  27. data/lib/presenting/configurable.rb +10 -0
  28. data/lib/presenting/defaults.rb +10 -0
  29. data/lib/presenting/field_set.rb +26 -0
  30. data/lib/presenting/form_helpers.rb +51 -0
  31. data/lib/presenting/helpers.rb +110 -0
  32. data/lib/presenting/sanitize.rb +19 -0
  33. data/lib/presenting/search.rb +185 -0
  34. data/lib/presenting/sorting.rb +87 -0
  35. data/lib/presenting/view.rb +3 -0
  36. data/lib/presenting.rb +9 -0
  37. data/rails/init.rb +12 -0
  38. data/test/assets_test.rb +58 -0
  39. data/test/attribute_test.rb +61 -0
  40. data/test/configurable_test.rb +20 -0
  41. data/test/details_test.rb +68 -0
  42. data/test/field_search_test.rb +102 -0
  43. data/test/field_set_test.rb +46 -0
  44. data/test/form_test.rb +287 -0
  45. data/test/grid_test.rb +219 -0
  46. data/test/helpers_test.rb +72 -0
  47. data/test/presenting_test.rb +15 -0
  48. data/test/rails/app/controllers/application_controller.rb +15 -0
  49. data/test/rails/app/controllers/users_controller.rb +36 -0
  50. data/test/rails/app/helpers/application_helper.rb +3 -0
  51. data/test/rails/app/helpers/users_helper.rb +2 -0
  52. data/test/rails/app/models/user.rb +2 -0
  53. data/test/rails/app/views/layouts/application.html.erb +15 -0
  54. data/test/rails/app/views/users/index.html.erb +10 -0
  55. data/test/rails/app/views/users/new.html.erb +2 -0
  56. data/test/rails/app/views/users/show.html.erb +1 -0
  57. data/test/rails/config/boot.rb +109 -0
  58. data/test/rails/config/database.yml +17 -0
  59. data/test/rails/config/environment.rb +13 -0
  60. data/test/rails/config/environments/development.rb +17 -0
  61. data/test/rails/config/environments/production.rb +24 -0
  62. data/test/rails/config/environments/test.rb +22 -0
  63. data/test/rails/config/locales/en.yml +5 -0
  64. data/test/rails/config/routes.rb +5 -0
  65. data/test/rails/db/development.sqlite3 +0 -0
  66. data/test/rails/db/migrate/20090213085444_create_users.rb +13 -0
  67. data/test/rails/db/migrate/20090213085607_populate_users.rb +13 -0
  68. data/test/rails/db/schema.rb +23 -0
  69. data/test/rails/db/test.sqlite3 +0 -0
  70. data/test/rails/log/development.log +858 -0
  71. data/test/rails/public/404.html +30 -0
  72. data/test/rails/public/422.html +30 -0
  73. data/test/rails/public/500.html +33 -0
  74. data/test/rails/public/javascripts/application.js +2 -0
  75. data/test/rails/public/javascripts/jquery.livequery.min.js +11 -0
  76. data/test/rails/public/javascripts/prototype.js +4320 -0
  77. data/test/rails/script/console +3 -0
  78. data/test/rails/script/dbconsole +3 -0
  79. data/test/rails/script/destroy +3 -0
  80. data/test/rails/script/generate +3 -0
  81. data/test/rails/script/plugin +3 -0
  82. data/test/rails/script/runner +3 -0
  83. data/test/rails/script/server +3 -0
  84. data/test/sanitize_test.rb +15 -0
  85. data/test/search_conditions_test.rb +137 -0
  86. data/test/search_test.rb +30 -0
  87. data/test/sorting_test.rb +63 -0
  88. data/test/test_helper.rb +66 -0
  89. metadata +217 -0
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env ruby
2
+ require File.dirname(__FILE__) + '/../config/boot'
3
+ require 'commands/console'
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env ruby
2
+ require File.dirname(__FILE__) + '/../config/boot'
3
+ require 'commands/dbconsole'
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env ruby
2
+ require File.dirname(__FILE__) + '/../config/boot'
3
+ require 'commands/destroy'
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env ruby
2
+ require File.dirname(__FILE__) + '/../config/boot'
3
+ require 'commands/generate'
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env ruby
2
+ require File.dirname(__FILE__) + '/../config/boot'
3
+ require 'commands/plugin'
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env ruby
2
+ require File.dirname(__FILE__) + '/../config/boot'
3
+ require 'commands/runner'
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env ruby
2
+ require File.dirname(__FILE__) + '/../config/boot'
3
+ require 'commands/server'
@@ -0,0 +1,15 @@
1
+ require File.dirname(__FILE__) + '/test_helper'
2
+
3
+ class Presenting::SanitizeTest < Presenting::Test
4
+ def test_sanitizing_an_array
5
+ assert_equal ['&amp;'], Presenting::Sanitize.h(['&'])
6
+ end
7
+
8
+ def test_sanitizing_a_hash
9
+ assert_equal({'<' => '>'}, Presenting::Sanitize.h({'<' => '>'}))
10
+ end
11
+
12
+ def test_sanitizing_a_string
13
+ assert_equal '&amp;', Presenting::Sanitize.h('&')
14
+ end
15
+ end
@@ -0,0 +1,137 @@
1
+ require File.dirname(__FILE__) + '/test_helper'
2
+
3
+ class SearchConditionsTest < Presenting::Test
4
+ def setup
5
+ @c = Presenting::Search.new
6
+ end
7
+
8
+ def test_assigning_a_simple_set_of_fields
9
+ @c.fields = [:a]
10
+ assert_equal 1, @c.fields.size
11
+
12
+ assert_equal 'a', @c.fields[0].name
13
+ assert_equal 'a', @c.fields[0].sql
14
+ assert_equal '= ?', @c.fields[0].operator
15
+ assert_equal '?', @c.fields[0].bind_pattern
16
+ end
17
+
18
+ def test_assigning_fields_with_custom_patterns
19
+ @c.fields = {:a => :begins_with}
20
+ assert_equal 1, @c.fields.size
21
+
22
+ assert_equal 'a', @c.fields[0].name
23
+ assert_equal 'a', @c.fields[0].sql
24
+ assert_equal 'LIKE ?', @c.fields[0].operator
25
+ assert_equal '?%', @c.fields[0].bind_pattern
26
+ end
27
+
28
+ def test_assigning_fields_with_full_options
29
+ @c.fields = {:a => {:sql => 'foo', :pattern => :begins_with}}
30
+ assert_equal 1, @c.fields.size
31
+
32
+ assert_equal 'a', @c.fields[0].name
33
+ assert_equal 'foo', @c.fields[0].sql
34
+ assert_equal 'LIKE ?', @c.fields[0].operator
35
+ assert_equal '?%', @c.fields[0].bind_pattern
36
+ end
37
+
38
+ def test_conditions_with_no_term
39
+ @c.fields = [:a, :b]
40
+ assert_nil @c.to_sql(nil)
41
+ assert_nil @c.to_sql('')
42
+ end
43
+
44
+ def test_simple_conditions
45
+ @c.fields << :a
46
+ @c.fields << {:b => :begins_with}
47
+ assert_equal ["a = ? OR b LIKE ?", 'foo', 'foo%'], @c.to_sql('foo', :simple)
48
+ end
49
+
50
+ def test_field_conditions
51
+ @c.fields << :a
52
+ @c.fields << {:b => :begins_with}
53
+ assert_equal ["a = ? AND b LIKE ?", 'foo', 'bar%'], @c.to_sql({'a' => {:value => 'foo'}, 'b' => {:value => 'bar'}}, :field)
54
+ end
55
+
56
+ def test_field_conditions_with_a_blank_term
57
+ @c.fields = [:a, :b]
58
+ assert_equal ["a = ?", 'foo'], @c.to_sql({'a' => {:value => 'foo'}, 'b' => {:value => ''}}, :field)
59
+ end
60
+
61
+ def test_field_conditions_with_space_padded_term
62
+ @c.fields = [:a]
63
+ assert_equal ["a = ?", 'foo'], @c.to_sql({'a' => {:value => ' foo '}}, :field)
64
+ end
65
+
66
+ def test_field_conditions_with_only_blank_terms
67
+ @c.fields = [:a]
68
+ assert_nil @c.to_sql({'a' => {:value => ''}}, :field)
69
+ end
70
+
71
+ def test_field_conditions_with_null_field
72
+ @c.fields << :a
73
+ @c.fields << {:b => :null}
74
+ assert_equal ["a = ? AND b IS NULL", 'foo'], @c.to_sql({'a' => {:value => 'foo'}, 'b' => {:value => '1'}}, :field)
75
+ end
76
+
77
+ def test_field_conditions_without_null_field
78
+ @c.fields << :a
79
+ @c.fields << {:b => :null}
80
+ assert_equal ["a = ?", 'foo'], @c.to_sql({'a' => {:value => 'foo'}}, :field)
81
+ end
82
+
83
+ def test_field_conditions_with_true_field
84
+ @c.fields << {:a => :true}
85
+ assert_equal ["a = ?", true], @c.to_sql({'a' => {:value => '1'}}, :field)
86
+ end
87
+ end
88
+
89
+ class SearchConditionsFieldTest < Presenting::Test
90
+ def setup
91
+ @f = Presenting::Search::Field.new
92
+ end
93
+
94
+ def test_assigning_a_symbol_name
95
+ @f.name = :foo
96
+ assert_equal 'foo', @f.name
97
+ end
98
+
99
+ def test_sql_defaults_to_name
100
+ @f.name = :foo
101
+ assert_equal 'foo', @f.sql
102
+ end
103
+
104
+ def test_default_operator
105
+ assert_equal '= ?', @f.operator
106
+ end
107
+
108
+ def test_default_bind_pattern
109
+ assert_equal '?', @f.bind_pattern
110
+ end
111
+
112
+ def test_fragment_joins_sql_and_operator
113
+ @f.sql = 'foo'
114
+ @f.operator = 'bar'
115
+ assert_equal "foo bar", @f.fragment
116
+ end
117
+
118
+ def test_bind_returns_nil_if_operator_has_no_place
119
+ @f.operator = 'is null'
120
+ assert_equal nil, @f.bind('foo')
121
+ end
122
+
123
+ def test_bind_returns_term_applied_to_bind_pattern
124
+ @f.bind_pattern = '%?%'
125
+ assert_equal '%foo%', @f.bind('foo')
126
+ end
127
+
128
+ def test_bind_with_typecast_to_date
129
+ @f.type = :date
130
+ assert_equal Time.parse('Apr 20, 2009').to_date, @f.bind('Apr 20, 2009')
131
+ end
132
+
133
+ def test_bind_with_typecast_to_time
134
+ @f.type = :time
135
+ assert_equal Time.parse('Apr 20, 2009 11:00am'), @f.bind('Apr 20, 2009 11:00am')
136
+ end
137
+ end
@@ -0,0 +1,30 @@
1
+ require File.dirname(__FILE__) + '/test_helper'
2
+
3
+ class SearchTest < Presenting::Test
4
+ def setup
5
+ @s = Presentation::Search.new
6
+ end
7
+
8
+ # there's no configuration yet
9
+ end
10
+
11
+ class SearchRenderTest < Presentation::RenderTest
12
+ def setup
13
+ @presentation = Presentation::Search.new
14
+ @presentation.controller = TestController.new
15
+ @presentation.controller.request.path = '/users'
16
+ end
17
+
18
+ def test_rendering_a_form_reuses_current_path
19
+ assert_select 'form[action=/users?][method=get]'
20
+ end
21
+
22
+ def test_rendering_a_search_box
23
+ assert_select 'form input[type=text][name=search]'
24
+ end
25
+
26
+ def test_rendering_a_search_box_with_a_existing_search
27
+ @presentation.controller.params[:search] = 'foo'
28
+ assert_select 'form input[type=text][name=search][value=foo]'
29
+ end
30
+ end
@@ -0,0 +1,63 @@
1
+ require File.dirname(__FILE__) + '/test_helper'
2
+
3
+ class SortingTest < Presenting::Test
4
+ def setup
5
+ @s = Presenting::Sorting.new
6
+ end
7
+
8
+ def test_assigning_a_simple_set_of_fields
9
+ @s.fields = [:a]
10
+ assert_equal 1, @s.fields.size
11
+
12
+ assert_equal 'a', @s.fields[0].name
13
+ assert_equal 'a', @s.fields[0].sql
14
+ end
15
+
16
+ def test_assigning_fields_with_custom_sql
17
+ @s.fields = {:a => 'users.a'}
18
+ assert_equal 1, @s.fields.size
19
+
20
+ assert_equal 'a', @s.fields[0].name
21
+ assert_equal 'users.a', @s.fields[0].sql
22
+ end
23
+
24
+ def test_assigning_default_sql
25
+ @s.fields = {:a => 'users.a'}
26
+ @s.default = [:a, 'desc']
27
+ assert_equal "users.a DESC", @s.default
28
+ end
29
+
30
+ def test_the_default_default
31
+ @s.fields = {:a => 'users.a'}
32
+ assert_equal 'users.a ASC', @s.default
33
+ end
34
+
35
+ def test_generating_sorting_sql
36
+ @s.fields = {:a => 'users.a', :b => 'users.b'}
37
+
38
+ assert_equal 'users.a DESC', @s.to_sql({'a' => 'desc'})
39
+ end
40
+
41
+ def test_generating_sort_sql_with_no_known_fields
42
+ @s.fields = {:a => 'users.a', :b => 'users.b'}
43
+ @s.default = [:b, 'desc']
44
+
45
+ assert_equal 'users.b DESC', @s.to_sql(nil)
46
+ end
47
+ end
48
+
49
+ class SortingFieldTest < Presenting::Test
50
+ def setup
51
+ @f = Presenting::Sorting::Field.new
52
+ end
53
+
54
+ def test_assigning_a_symbol_name
55
+ @f.name = :foo
56
+ assert_equal 'foo', @f.name
57
+ end
58
+
59
+ def test_sql_defaults_to_name
60
+ @f.name = :foo
61
+ assert_equal 'foo', @f.sql
62
+ end
63
+ end
@@ -0,0 +1,66 @@
1
+ ENV["RAILS_ENV"] = "test"
2
+
3
+ # load the support libraries
4
+ require 'test/unit'
5
+ require 'rubygems'
6
+ gem 'rails', '2.3.11'
7
+ require 'active_support'
8
+ require 'action_pack'
9
+ require 'action_controller'
10
+ require 'action_view'
11
+ require 'mocha'
12
+ require 'will_paginate'
13
+ WillPaginate.enable_actionpack
14
+
15
+ PLUGIN_ROOT = File.join(File.dirname(__FILE__), '..')
16
+
17
+ # prepare for autoloading
18
+ ActiveSupport::Dependencies.autoload_paths << File.join(PLUGIN_ROOT, 'lib')
19
+ $LOAD_PATH.unshift File.join(PLUGIN_ROOT, 'lib')
20
+ ActionController::Base.view_paths << File.join(PLUGIN_ROOT, 'app', 'views')
21
+ ActiveSupport::Dependencies.autoload_paths << File.join(PLUGIN_ROOT, 'app', 'controllers')
22
+ $LOAD_PATH.unshift File.join(PLUGIN_ROOT, 'app', 'controllers')
23
+
24
+ # set up the asset routes, and an extra resource for tests that generate normal routes
25
+ require File.join(PLUGIN_ROOT, 'config', 'routes')
26
+ ActionController::Routing::Routes.draw do |map| map.resources :users end
27
+
28
+ # load the code
29
+ require 'rails/init'
30
+
31
+ class TestController < ActionController::Base
32
+ attr_accessor :request, :response, :params
33
+
34
+ def initialize
35
+ @request = ActionController::TestRequest.new
36
+ @response = ActionController::TestResponse.new
37
+
38
+ @params = {}
39
+ send(:initialize_current_url)
40
+ end
41
+ end
42
+
43
+ # a way to customize syntax for our tests
44
+ class Presenting::Test < Test::Unit::TestCase
45
+ # TODO: create a shoulda-like context/setup/should syntax
46
+ def default_test; end # to quiet Test::Unit
47
+ end
48
+
49
+ # inheriting tests should target rendering behavior given certain configurations
50
+ class Presentation::RenderTest < Presenting::Test
51
+ include ActionController::Assertions::SelectorAssertions
52
+
53
+ protected
54
+
55
+ def render
56
+ @render ||= @presentation.render
57
+ end
58
+
59
+ def response_from_page_or_rjs
60
+ html_document.root
61
+ end
62
+
63
+ def html_document
64
+ HTML::Document.new(render)
65
+ end
66
+ end
metadata ADDED
@@ -0,0 +1,217 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: presenting
3
+ version: !ruby/object:Gem::Version
4
+ hash: 23
5
+ prerelease: false
6
+ segments:
7
+ - 1
8
+ - 0
9
+ - 0
10
+ version: 1.0.0
11
+ platform: ruby
12
+ authors:
13
+ - Lance Ivy
14
+ autorequire:
15
+ bindir: bin
16
+ cert_chain: []
17
+
18
+ date: 2011-08-05 00:00:00 -07:00
19
+ default_executable:
20
+ dependencies:
21
+ - !ruby/object:Gem::Dependency
22
+ name: mocha
23
+ prerelease: false
24
+ requirement: &id001 !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - ">="
28
+ - !ruby/object:Gem::Version
29
+ hash: 3
30
+ segments:
31
+ - 0
32
+ version: "0"
33
+ type: :development
34
+ version_requirements: *id001
35
+ description: Provides view components to quickly render tables, forms, etc., typically for an admin interface.
36
+ email: lance@cainlevy.net
37
+ executables: []
38
+
39
+ extensions: []
40
+
41
+ extra_rdoc_files: []
42
+
43
+ files:
44
+ - lib/presenting/sorting.rb
45
+ - lib/presenting/helpers.rb
46
+ - lib/presenting/form_helpers.rb
47
+ - lib/presenting/view.rb
48
+ - lib/presenting/search.rb
49
+ - lib/presenting/field_set.rb
50
+ - lib/presenting/sanitize.rb
51
+ - lib/presenting/configurable.rb
52
+ - lib/presenting/defaults.rb
53
+ - lib/presenting/attribute.rb
54
+ - lib/presentation/form.rb
55
+ - lib/presentation/base.rb
56
+ - lib/presentation/details.rb
57
+ - lib/presentation/search.rb
58
+ - lib/presentation/field_search.rb
59
+ - lib/presentation/grid.rb
60
+ - lib/presenting.rb
61
+ - app/views/presentations/_details.erb
62
+ - app/views/presentations/_grid.erb
63
+ - app/views/presentations/_form.erb
64
+ - app/views/presentations/_search.erb
65
+ - app/views/presentations/_field_search.erb
66
+ - app/assets/javascript/search.js
67
+ - app/assets/javascript/grid.js
68
+ - app/assets/stylesheets/search-color.css
69
+ - app/assets/stylesheets/grid.css
70
+ - app/assets/stylesheets/grid-color.css
71
+ - app/assets/stylesheets/search.css
72
+ - app/assets/stylesheets/details.css
73
+ - app/assets/stylesheets/details-color.css
74
+ - app/assets/stylesheets/form.css
75
+ - app/controllers/presentation/assets_controller.rb
76
+ - LICENSE
77
+ - README
78
+ - Rakefile
79
+ - rails/init.rb
80
+ - config/routes.rb
81
+ - test/test_helper.rb
82
+ - test/field_set_test.rb
83
+ - test/sorting_test.rb
84
+ - test/grid_test.rb
85
+ - test/assets_test.rb
86
+ - test/details_test.rb
87
+ - test/field_search_test.rb
88
+ - test/attribute_test.rb
89
+ - test/sanitize_test.rb
90
+ - test/search_conditions_test.rb
91
+ - test/rails/script/generate
92
+ - test/rails/script/console
93
+ - test/rails/script/destroy
94
+ - test/rails/script/dbconsole
95
+ - test/rails/script/plugin
96
+ - test/rails/script/server
97
+ - test/rails/script/runner
98
+ - test/rails/app/views/layouts/application.html.erb
99
+ - test/rails/app/views/users/new.html.erb
100
+ - test/rails/app/views/users/index.html.erb
101
+ - test/rails/app/views/users/show.html.erb
102
+ - test/rails/app/helpers/users_helper.rb
103
+ - test/rails/app/helpers/application_helper.rb
104
+ - test/rails/app/controllers/users_controller.rb
105
+ - test/rails/app/controllers/application_controller.rb
106
+ - test/rails/app/models/user.rb
107
+ - test/rails/log/development.log
108
+ - test/rails/db/schema.rb
109
+ - test/rails/db/development.sqlite3
110
+ - test/rails/db/migrate/20090213085444_create_users.rb
111
+ - test/rails/db/migrate/20090213085607_populate_users.rb
112
+ - test/rails/db/test.sqlite3
113
+ - test/rails/config/environment.rb
114
+ - test/rails/config/locales/en.yml
115
+ - test/rails/config/database.yml
116
+ - test/rails/config/boot.rb
117
+ - test/rails/config/environments/production.rb
118
+ - test/rails/config/environments/development.rb
119
+ - test/rails/config/environments/test.rb
120
+ - test/rails/config/routes.rb
121
+ - test/rails/public/javascripts/application.js
122
+ - test/rails/public/javascripts/jquery.livequery.min.js
123
+ - test/rails/public/javascripts/prototype.js
124
+ - test/rails/public/422.html
125
+ - test/rails/public/404.html
126
+ - test/rails/public/500.html
127
+ - test/form_test.rb
128
+ - test/configurable_test.rb
129
+ - test/presenting_test.rb
130
+ - test/helpers_test.rb
131
+ - test/search_test.rb
132
+ has_rdoc: true
133
+ homepage: http://github.com/cainlevy/presenting
134
+ licenses: []
135
+
136
+ post_install_message:
137
+ rdoc_options: []
138
+
139
+ require_paths:
140
+ - lib
141
+ required_ruby_version: !ruby/object:Gem::Requirement
142
+ none: false
143
+ requirements:
144
+ - - ">="
145
+ - !ruby/object:Gem::Version
146
+ hash: 3
147
+ segments:
148
+ - 0
149
+ version: "0"
150
+ required_rubygems_version: !ruby/object:Gem::Requirement
151
+ none: false
152
+ requirements:
153
+ - - ">="
154
+ - !ruby/object:Gem::Version
155
+ hash: 3
156
+ segments:
157
+ - 0
158
+ version: "0"
159
+ requirements: []
160
+
161
+ rubyforge_project:
162
+ rubygems_version: 1.3.7
163
+ signing_key:
164
+ specification_version: 3
165
+ summary: component-style scaffolding helpers
166
+ test_files:
167
+ - test/test_helper.rb
168
+ - test/field_set_test.rb
169
+ - test/sorting_test.rb
170
+ - test/grid_test.rb
171
+ - test/assets_test.rb
172
+ - test/details_test.rb
173
+ - test/field_search_test.rb
174
+ - test/attribute_test.rb
175
+ - test/sanitize_test.rb
176
+ - test/search_conditions_test.rb
177
+ - test/rails/script/generate
178
+ - test/rails/script/console
179
+ - test/rails/script/destroy
180
+ - test/rails/script/dbconsole
181
+ - test/rails/script/plugin
182
+ - test/rails/script/server
183
+ - test/rails/script/runner
184
+ - test/rails/app/views/layouts/application.html.erb
185
+ - test/rails/app/views/users/new.html.erb
186
+ - test/rails/app/views/users/index.html.erb
187
+ - test/rails/app/views/users/show.html.erb
188
+ - test/rails/app/helpers/users_helper.rb
189
+ - test/rails/app/helpers/application_helper.rb
190
+ - test/rails/app/controllers/users_controller.rb
191
+ - test/rails/app/controllers/application_controller.rb
192
+ - test/rails/app/models/user.rb
193
+ - test/rails/log/development.log
194
+ - test/rails/db/schema.rb
195
+ - test/rails/db/development.sqlite3
196
+ - test/rails/db/migrate/20090213085444_create_users.rb
197
+ - test/rails/db/migrate/20090213085607_populate_users.rb
198
+ - test/rails/db/test.sqlite3
199
+ - test/rails/config/environment.rb
200
+ - test/rails/config/locales/en.yml
201
+ - test/rails/config/database.yml
202
+ - test/rails/config/boot.rb
203
+ - test/rails/config/environments/production.rb
204
+ - test/rails/config/environments/development.rb
205
+ - test/rails/config/environments/test.rb
206
+ - test/rails/config/routes.rb
207
+ - test/rails/public/javascripts/application.js
208
+ - test/rails/public/javascripts/jquery.livequery.min.js
209
+ - test/rails/public/javascripts/prototype.js
210
+ - test/rails/public/422.html
211
+ - test/rails/public/404.html
212
+ - test/rails/public/500.html
213
+ - test/form_test.rb
214
+ - test/configurable_test.rb
215
+ - test/presenting_test.rb
216
+ - test/helpers_test.rb
217
+ - test/search_test.rb