merb-admin 0.4.6 → 0.4.7
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.markdown +1 -1
- data/Rakefile +1 -1
- data/app/controllers/main.rb +2 -1
- data/app/views/main/list.html.erb +1 -1
- data/lib/merb-admin.rb +1 -1
- data/schema/migrations/004_create_players_migration.rb +1 -1
- data/spec/models/datamapper/player.rb +1 -1
- data/spec/requests/main_spec.rb +66 -18
- metadata +1 -1
data/README.markdown
CHANGED
data/Rakefile
CHANGED
@@ -9,7 +9,7 @@ AUTHOR = "Erik Michaels-Ober"
|
|
9
9
|
EMAIL = "sferik@gmail.com"
|
10
10
|
HOMEPAGE = "http://twitter.com/sferik"
|
11
11
|
SUMMARY = "MerbAdmin is a Merb plugin that provides an easy-to-use interface for managing your data."
|
12
|
-
GEM_VERSION = "0.4.
|
12
|
+
GEM_VERSION = "0.4.7"
|
13
13
|
|
14
14
|
spec = Gem::Specification.new do |s|
|
15
15
|
s.rubyforge_project = "merb"
|
data/app/controllers/main.rb
CHANGED
@@ -137,6 +137,7 @@ class MerbAdmin::Main < MerbAdmin::Application
|
|
137
137
|
statements << "#{property[:name]} LIKE ?"
|
138
138
|
values << "%#{params[:query]}%"
|
139
139
|
end
|
140
|
+
conditions[0] += " AND " unless conditions == [""]
|
140
141
|
conditions[0] += statements.join(" OR ")
|
141
142
|
conditions += values
|
142
143
|
options.merge!(:conditions => conditions) unless conditions == [""]
|
@@ -155,10 +156,10 @@ class MerbAdmin::Main < MerbAdmin::Application
|
|
155
156
|
values << (value == "true")
|
156
157
|
end
|
157
158
|
end
|
159
|
+
conditions[0] += " AND " unless conditions == [""]
|
158
160
|
conditions[0] += statements.join(" AND ")
|
159
161
|
conditions += values
|
160
162
|
options.merge!(:conditions => conditions) unless conditions == [""]
|
161
|
-
puts options.inspect
|
162
163
|
end
|
163
164
|
|
164
165
|
def merge_sort!(options)
|
@@ -16,7 +16,7 @@
|
|
16
16
|
<form id="changelist-search" action="" method="get">
|
17
17
|
<div>
|
18
18
|
<label for="searchbar"><img src="<%= image_path("icon_searchbox.png") %>" alt="Search" /></label>
|
19
|
-
<input type="text" size="40" name="query" value="" id="searchbar" />
|
19
|
+
<input type="text" size="40" name="query" value="<%= query %>" id="searchbar" />
|
20
20
|
<input type="submit" value="Search" />
|
21
21
|
<% if query || filter %>
|
22
22
|
<span class="small quiet"><%= @record_count %> <%= @record_count == 1 ? "result" : "results" %> (<a href="?"><%= @abstract_model.count %> total</a>)</span>
|
data/lib/merb-admin.rb
CHANGED
@@ -23,7 +23,7 @@ if defined?(Merb::Plugins)
|
|
23
23
|
|
24
24
|
# Slice metadata
|
25
25
|
self.description = "MerbAdmin is a Merb plugin that provides an easy-to-use interface for managing your data."
|
26
|
-
self.version = "0.4.
|
26
|
+
self.version = "0.4.7"
|
27
27
|
self.author = "Erik Michaels-Ober"
|
28
28
|
|
29
29
|
# Stub classes loaded hook - runs before LoadClasses BootLoader
|
@@ -8,7 +8,7 @@ class CreatePlayersMigration < ActiveRecord::Migration
|
|
8
8
|
t.string :position, :limit => 50
|
9
9
|
t.integer :number
|
10
10
|
t.float :batting_average, :default => 0.0
|
11
|
-
t.boolean :
|
11
|
+
t.boolean :retired, :default => false
|
12
12
|
t.boolean :injured, :default => false
|
13
13
|
t.date :born_on
|
14
14
|
t.timestamp :wake_at
|
@@ -10,7 +10,7 @@ class Player
|
|
10
10
|
property :position, String
|
11
11
|
property :number, Integer, :nullable => false
|
12
12
|
property :batting_average, Float, :default => 0.0, :precision => 4, :scale => 3
|
13
|
-
property :
|
13
|
+
property :retired, Boolean, :default => false
|
14
14
|
property :injured, Boolean, :default => false
|
15
15
|
property :born_on, Date
|
16
16
|
property :wake_at, Time
|
data/spec/requests/main_spec.rb
CHANGED
@@ -89,10 +89,42 @@ describe "MerbAdmin" do
|
|
89
89
|
end
|
90
90
|
end
|
91
91
|
|
92
|
-
describe "list with
|
92
|
+
describe "list with sort" do
|
93
93
|
before(:each) do
|
94
|
+
MerbAdmin::AbstractModel.new("Player").create(:team_id => rand(99999), :number => 32, :name => "Sandy Koufax", :position => "pitcher")
|
94
95
|
MerbAdmin::AbstractModel.new("Player").create(:team_id => rand(99999), :number => 42, :name => "Jackie Robinson", :position => "second")
|
96
|
+
@response = request(url(:admin_list, :model_name => "player"), :params => {:sort => "name"})
|
97
|
+
end
|
98
|
+
|
99
|
+
it "should respond sucessfully" do
|
100
|
+
@response.should be_successful
|
101
|
+
end
|
102
|
+
|
103
|
+
it "should be sorted correctly" do
|
104
|
+
@response.body.should contain(/Jackie Robinson.*Sandy Koufax/m)
|
105
|
+
end
|
106
|
+
end
|
107
|
+
|
108
|
+
describe "list with reverse sort" do
|
109
|
+
before(:each) do
|
110
|
+
MerbAdmin::AbstractModel.new("Player").create(:team_id => rand(99999), :number => 32, :name => "Sandy Koufax", :position => "pitcher")
|
111
|
+
MerbAdmin::AbstractModel.new("Player").create(:team_id => rand(99999), :number => 42, :name => "Jackie Robinson", :position => "second")
|
112
|
+
@response = request(url(:admin_list, :model_name => "player"), :params => {:sort => "name", :sort_reverse => "true"})
|
113
|
+
end
|
114
|
+
|
115
|
+
it "should respond sucessfully" do
|
116
|
+
@response.should be_successful
|
117
|
+
end
|
118
|
+
|
119
|
+
it "should be sorted correctly" do
|
120
|
+
@response.body.should contain(/Sandy Koufax.*Jackie Robinson/m)
|
121
|
+
end
|
122
|
+
end
|
123
|
+
|
124
|
+
describe "list with query" do
|
125
|
+
before(:each) do
|
95
126
|
MerbAdmin::AbstractModel.new("Player").create(:team_id => rand(99999), :number => 32, :name => "Sandy Koufax", :position => "pitcher")
|
127
|
+
MerbAdmin::AbstractModel.new("Player").create(:team_id => rand(99999), :number => 42, :name => "Jackie Robinson", :position => "second")
|
96
128
|
@response = request(url(:admin_list, :model_name => "player"), :params => {:query => "Jackie Robinson"})
|
97
129
|
end
|
98
130
|
|
@@ -109,43 +141,58 @@ describe "MerbAdmin" do
|
|
109
141
|
end
|
110
142
|
end
|
111
143
|
|
112
|
-
describe "list with
|
144
|
+
describe "list with query and boolean filter" do
|
113
145
|
before(:each) do
|
114
|
-
MerbAdmin::AbstractModel.new("Player").create(:team_id => rand(99999), :number =>
|
115
|
-
MerbAdmin::AbstractModel.new("Player").create(:team_id => rand(99999), :number =>
|
116
|
-
|
146
|
+
MerbAdmin::AbstractModel.new("Player").create(:team_id => rand(99999), :number => 32, :name => "Sandy Koufax", :position => "pitcher", :retired => true, :injured => true)
|
147
|
+
MerbAdmin::AbstractModel.new("Player").create(:team_id => rand(99999), :number => 42, :name => "Jackie Robinson", :position => "second", :retired => true, :injured => false)
|
148
|
+
MerbAdmin::AbstractModel.new("Player").create(:team_id => rand(99999), :number => 18, :name => "Moises Alou", :position => "left", :retired => false, :injured => true)
|
149
|
+
MerbAdmin::AbstractModel.new("Player").create(:team_id => rand(99999), :number => 5, :name => "David Wright", :position => "third", :retired => false, :injured => false)
|
150
|
+
@response = request(url(:admin_list, :model_name => "player"), :params => {:query => "Sandy Koufax", :filter => {:injured => "true"}})
|
117
151
|
end
|
118
152
|
|
119
153
|
it "should respond sucessfully" do
|
120
154
|
@response.should be_successful
|
121
155
|
end
|
122
156
|
|
123
|
-
it "should
|
124
|
-
@response.body.should contain(
|
157
|
+
it "should contain a correct result" do
|
158
|
+
@response.body.should contain("Sandy Koufax")
|
159
|
+
end
|
160
|
+
|
161
|
+
it "should not contain an incorrect result" do
|
162
|
+
@response.body.should_not contain("Jackie Robinson")
|
163
|
+
@response.body.should_not contain("Moises Alou")
|
164
|
+
@response.body.should_not contain("David Wright")
|
125
165
|
end
|
126
166
|
end
|
127
167
|
|
128
|
-
|
168
|
+
|
169
|
+
describe "list with boolean filter" do
|
129
170
|
before(:each) do
|
130
|
-
MerbAdmin::AbstractModel.new("Player").create(:team_id => rand(99999), :number =>
|
131
|
-
MerbAdmin::AbstractModel.new("Player").create(:team_id => rand(99999), :number =>
|
132
|
-
@response = request(url(:admin_list, :model_name => "player"), :params => {:
|
171
|
+
MerbAdmin::AbstractModel.new("Player").create(:team_id => rand(99999), :number => 18, :name => "Moises Alou", :position => "left", :injured => true)
|
172
|
+
MerbAdmin::AbstractModel.new("Player").create(:team_id => rand(99999), :number => 5, :name => "David Wright", :position => "third", :injured => false)
|
173
|
+
@response = request(url(:admin_list, :model_name => "player"), :params => {:filter => {:injured => "true"}})
|
133
174
|
end
|
134
175
|
|
135
176
|
it "should respond sucessfully" do
|
136
177
|
@response.should be_successful
|
137
178
|
end
|
138
179
|
|
139
|
-
it "should
|
140
|
-
@response.body.should contain(
|
180
|
+
it "should contain a correct result" do
|
181
|
+
@response.body.should contain("Moises Alou")
|
182
|
+
end
|
183
|
+
|
184
|
+
it "should not contain an incorrect result" do
|
185
|
+
@response.body.should_not contain("David Wright")
|
141
186
|
end
|
142
187
|
end
|
143
188
|
|
144
|
-
describe "list with boolean
|
189
|
+
describe "list with boolean filters" do
|
145
190
|
before(:each) do
|
146
|
-
MerbAdmin::AbstractModel.new("Player").create(:team_id => rand(99999), :number =>
|
147
|
-
MerbAdmin::AbstractModel.new("Player").create(:team_id => rand(99999), :number =>
|
148
|
-
|
191
|
+
MerbAdmin::AbstractModel.new("Player").create(:team_id => rand(99999), :number => 32, :name => "Sandy Koufax", :position => "pitcher", :retired => true, :injured => true)
|
192
|
+
MerbAdmin::AbstractModel.new("Player").create(:team_id => rand(99999), :number => 42, :name => "Jackie Robinson", :position => "second", :retired => true, :injured => false)
|
193
|
+
MerbAdmin::AbstractModel.new("Player").create(:team_id => rand(99999), :number => 18, :name => "Moises Alou", :position => "left", :retired => false, :injured => true)
|
194
|
+
MerbAdmin::AbstractModel.new("Player").create(:team_id => rand(99999), :number => 5, :name => "David Wright", :position => "third", :retired => false, :injured => false)
|
195
|
+
@response = request(url(:admin_list, :model_name => "player"), :params => {:filter => {:retired => "true", :injured => "true"}})
|
149
196
|
end
|
150
197
|
|
151
198
|
it "should respond sucessfully" do
|
@@ -153,10 +200,11 @@ describe "MerbAdmin" do
|
|
153
200
|
end
|
154
201
|
|
155
202
|
it "should contain a correct result" do
|
156
|
-
@response.body.should contain("Moises Alou")
|
157
203
|
end
|
158
204
|
|
159
205
|
it "should not contain an incorrect result" do
|
206
|
+
@response.body.should_not contain("Jackie Robinson")
|
207
|
+
@response.body.should_not contain("Moises Alou")
|
160
208
|
@response.body.should_not contain("David Wright")
|
161
209
|
end
|
162
210
|
end
|