sferik-merb-admin 0.3.1 → 0.3.2

Sign up to get free protection for your applications and to get access to all the features.
data/README.markdown CHANGED
@@ -14,7 +14,7 @@ At the command prompt, type:
14
14
 
15
15
  In your app, add the following dependency to `config/dependencies.rb`:
16
16
 
17
- dependency "sferik-merb-admin", "0.3.1", :require_as => "merb-admin"
17
+ dependency "sferik-merb-admin", "0.3.2", :require_as => "merb-admin"
18
18
  dependency "dm-is-paginated", "0.0.1" # if you want pagination support
19
19
 
20
20
  Add the following route to `config/router.rb`:
data/Rakefile CHANGED
@@ -12,7 +12,7 @@ AUTHOR = "Erik Michaels-Ober"
12
12
  EMAIL = "sferik@gmail.com"
13
13
  HOMEPAGE = "http://twitter.com/sferik"
14
14
  SUMMARY = "MerbAdmin is a Merb plugin that provides an easy-to-use interface for managing your data."
15
- GEM_VERSION = "0.3.1"
15
+ GEM_VERSION = "0.3.2"
16
16
 
17
17
  spec = Gem::Specification.new do |s|
18
18
  s.rubyforge_project = "merb"
@@ -1,4 +1,5 @@
1
1
  class MerbAdmin::Application < Merb::Controller
2
+ include Merb::MerbAdmin::MainHelper
2
3
 
3
4
  controller_for_slice
4
5
 
@@ -2,6 +2,7 @@ require File.join( File.dirname(__FILE__), '..', '..', 'lib', 'abstract_model' )
2
2
  require File.join( File.dirname(__FILE__), '..', '..', 'lib', 'metaid' )
3
3
 
4
4
  class MerbAdmin::Main < MerbAdmin::Application
5
+ include Merb::MerbAdmin::MainHelper
5
6
 
6
7
  before :find_models, :only => ['index']
7
8
  before :find_model, :exclude => ['index']
@@ -1,3 +1,10 @@
1
+ <%
2
+ required = false
3
+ @properties.each do |property|
4
+ next unless property[:name] == association[:child_key].first
5
+ required = true unless property[:nullable?]
6
+ end
7
+ %>
1
8
  <fieldset class="module aligned">
2
9
  <h2><%= association[:pretty_name].capitalize %></h2>
3
10
  <div class="<%= @object.errors[association[:child_key].first] ? "form-row errors" : "form-row"%>">
@@ -11,11 +18,6 @@
11
18
  <div>
12
19
  <%= select(association[:child_key].first, :collection => MerbAdmin::AbstractModel.new(association[:parent_model]).find_all.map{|o| [o.id, object_title(o)]}.sort_by{|o| o[1]}, :include_blank => true, :selected => @object.send(association[:child_key].first).to_s, :label => association[:pretty_name].capitalize) %>
13
20
  <p class="help">
14
- <% required = false %>
15
- <% @properties.each do |property| %>
16
- <% next unless property[:name] == association[:child_key].first %>
17
- <% required = true unless property[:nullable?] %>
18
- <% end %>
19
21
  <%= required ? "Required." : "Optional." %>
20
22
  </p>
21
23
  </div>
@@ -0,0 +1,25 @@
1
+ <%
2
+ required = false
3
+ @properties.each do |property|
4
+ next unless property[:name] == association[:child_key].first
5
+ required = true unless property[:nullable?]
6
+ end
7
+ %>
8
+ <fieldset class="module aligned">
9
+ <h2><%= association[:pretty_name].capitalize %></h2>
10
+ <div class="<%= @object.errors[association[:child_key].first] ? "form-row errors" : "form-row"%>">
11
+ <% if @object.errors[association[:child_key].first] %>
12
+ <ul class="errorlist">
13
+ <% @object.errors[association[:child_key].first].each do |error| %>
14
+ <li><%= error %></li>
15
+ <% end %>
16
+ </ul>
17
+ <% end %>
18
+ <div>
19
+ <%= select(:name => "associations[#{association[:name]}][]", :id => association[:name], :collection => MerbAdmin::AbstractModel.new(association[:child_model]).find_all.map{|o| [o.id, object_title(o)]}.sort_by{|o| o[1]}, :include_blank => true, :selected => @object.send(association[:parent_key].first).to_s, :label => association[:pretty_name].capitalize) %>
20
+ <p class="help">
21
+ <%= required ? "Required." : "Optional." %>
22
+ </p>
23
+ </div>
24
+ </div>
25
+ </fieldset>
@@ -0,0 +1,17 @@
1
+ <fieldset class="module aligned">
2
+ <% belongs_to_keys = @abstract_model.belongs_to_associations.map{|b| b[:child_key].first} %>
3
+ <% properties.each do |property| %>
4
+ <% next if [:id, :created_at, :created_on, :deleted_at, :updated_at, :updated_on, :deleted_on].include?(property[:name]) %>
5
+ <% next if belongs_to_keys.include?(property[:name]) %>
6
+ <div class="<%= @object.errors[property[:name]] ? "form-row errors" : "form-row" %>">
7
+ <% if @object.errors[property[:name]] %>
8
+ <ul class="errorlist">
9
+ <% @object.errors[property[:name]].each do |error| %>
10
+ <li><%= error %></li>
11
+ <% end %>
12
+ </ul>
13
+ <% end %>
14
+ <%= partial(property[:type].to_s, :property => property) -%>
15
+ </div>
16
+ <% end %>
17
+ </fieldset>
@@ -6,25 +6,12 @@
6
6
  </ul>
7
7
  <%= form_for(@object, :action => slice_url(:admin_update, :model_name => @abstract_model.singular_name, :id => @object.id)) do %>
8
8
  <div>
9
- <fieldset class="module aligned">
10
- <% belongs_to_keys = @abstract_model.belongs_to_associations.map{|b| b[:child_key].first} %>
11
- <% @properties.each do |property| %>
12
- <% next if [:id, :created_at, :created_on, :deleted_at, :updated_at, :updated_on, :deleted_on].include?(property[:name]) %>
13
- <% next if belongs_to_keys.include?(property[:name]) %>
14
- <div class="<%= @object.errors[property[:name]] ? "form-row errors" : "form-row"%>">
15
- <% if @object.errors[property[:name]] %>
16
- <ul class="errorlist">
17
- <% @object.errors[property[:name]].each do |error| %>
18
- <li><%= error %></li>
19
- <% end %>
20
- </ul>
21
- <% end %>
22
- <%= partial(property[:type].to_s, :property => property) -%>
23
- </div>
24
- <% end %>
25
- </fieldset>
9
+ <%= partial('properties', :properties => @properties) -%>
26
10
  <% @abstract_model.belongs_to_associations.each do |association| %>
27
11
  <%= partial('belongs_to', :association => association) -%>
12
+ <% end %>
13
+ <% @abstract_model.has_one_associations.each do |association| %>
14
+ <%= partial('has_one', :association => association) -%>
28
15
  <% end %>
29
16
  <% @abstract_model.has_many_associations.each do |association| %>
30
17
  <%= partial('has_many', :association => association) -%>
@@ -1,25 +1,12 @@
1
1
  <div id="content-main">
2
2
  <%= form_for(@object, :action => slice_url(:admin_create, :model_name => @abstract_model.singular_name)) do %>
3
3
  <div>
4
- <fieldset class="module aligned">
5
- <% belongs_to_keys = @abstract_model.belongs_to_associations.map{|b| b[:child_key].first} %>
6
- <% @properties.each do |property| %>
7
- <% next if [:id, :created_at, :created_on, :deleted_at, :updated_at, :updated_on, :deleted_on].include?(property[:name]) %>
8
- <% next if belongs_to_keys.include?(property[:name]) %>
9
- <div class="<%= @object.errors[property[:name]] ? "form-row errors" : "form-row"%>">
10
- <% if @object.errors[property[:name]] %>
11
- <ul class="errorlist">
12
- <% @object.errors[property[:name]].each do |error| %>
13
- <li><%= error %></li>
14
- <% end %>
15
- </ul>
16
- <% end %>
17
- <%= partial(property[:type].to_s, :property => property) -%>
18
- </div>
19
- <% end %>
20
- </fieldset>
4
+ <%= partial('properties', :properties => @properties) -%>
21
5
  <% @abstract_model.belongs_to_associations.each do |association| %>
22
6
  <%= partial('belongs_to', :association => association) -%>
7
+ <% end %>
8
+ <% @abstract_model.has_one_associations.each do |association| %>
9
+ <%= partial('has_one', :association => association) -%>
23
10
  <% end %>
24
11
  <% @abstract_model.has_many_associations.each do |association| %>
25
12
  <%= partial('has_many', :association => association) -%>
@@ -15,7 +15,7 @@ module MerbAdmin
15
15
  model = lookup(m.to_s.to_sym)
16
16
  @models << new(model) if model
17
17
  end
18
- @models.sort{|a, b| a.to_s <=> b.to_s}
18
+ @models.sort!{|a, b| a.model.to_s <=> b.model.to_s}
19
19
  else
20
20
  raise "MerbAdmin does not currently support the #{Merb.orm} ORM"
21
21
  end
@@ -51,12 +51,6 @@ module MerbAdmin
51
51
  end
52
52
  end
53
53
 
54
- def association_names
55
- associations.map do |association|
56
- association[:type] == :belongs_to ? association[:parent_name] : association[:child_name]
57
- end
58
- end
59
-
60
54
  def properties
61
55
  model.properties.map do |property|
62
56
  {
@@ -86,19 +80,20 @@ module MerbAdmin
86
80
 
87
81
  def type_lookup(property)
88
82
  type = {
89
- DataMapper::Types::Serial => :integer,
83
+ BigDecimal => :big_decimal,
90
84
  DataMapper::Types::Boolean => :boolean,
91
- DataMapper::Types::Text => :text,
85
+ DataMapper::Types::ParanoidBoolean => :boolean,
92
86
  DataMapper::Types::ParanoidDateTime => :date_time,
93
- Integer => :integer,
87
+ DataMapper::Types::Serial => :integer,
88
+ DataMapper::Types::Text => :text,
89
+ Date => :date,
90
+ DateTime => :date_time,
94
91
  Fixnum => :integer,
95
92
  Float => :float,
96
- BigDecimal => :big_decimal,
97
- TrueClass => :boolean,
93
+ Integer => :integer,
98
94
  String => :string,
99
- DateTime => :date_time,
100
- Date => :date,
101
95
  Time => :time,
96
+ TrueClass => :boolean,
102
97
  }
103
98
  type[property.type] || type[property.primitive]
104
99
  end
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.3.1"
26
+ self.version = "0.3.2"
27
27
  self.author = "Erik Michaels-Ober"
28
28
 
29
29
  # Stub classes loaded hook - runs before LoadClasses BootLoader
@@ -12,6 +12,6 @@ class Division
12
12
  end
13
13
 
14
14
  Division.fixture {{
15
- :league_id => /\d{1,2}/.gen,
15
+ :league_id => /\d{1,5}/.gen,
16
16
  :name => /\w{5,10}/.gen.capitalize,
17
17
  }}
@@ -0,0 +1,29 @@
1
+ class Draft
2
+ include DataMapper::Resource
3
+
4
+ property :id, Serial
5
+ property :created_at, DateTime
6
+ property :updated_at, DateTime
7
+ property :player_id, Integer, :nullable => false, :index => true
8
+ property :team_id, Integer, :nullable => false, :index => true
9
+ property :date, Date, :nullable => false
10
+ property :round, Integer, :nullable => false
11
+ property :pick, Integer, :nullable => false
12
+ property :overall, Integer, :nullable => false
13
+ property :college, String, :length => 100
14
+ property :notes, Text
15
+
16
+ belongs_to :team
17
+ belongs_to :player
18
+ end
19
+
20
+ Draft.fixture {{
21
+ :player_id => /\d{1,5}/.gen,
22
+ :team_id => /\d{1,5}/.gen,
23
+ :date => Date.today,
24
+ :round => /\d/.gen,
25
+ :pick => /\d{1,2}/.gen,
26
+ :overall => /\d{1,3}/.gen,
27
+ :college => "#{/\w{5,10}/.gen.capitalize} University",
28
+ :notes => /[:sentence:]/.gen,
29
+ }}
@@ -11,5 +11,5 @@ class League
11
11
  end
12
12
 
13
13
  League.fixture {{
14
- :name => /\w{5,10}/.gen.capitalize,
14
+ :name => "#{/\w{5,10}/.gen.capitalize} League",
15
15
  }}
@@ -18,10 +18,11 @@ class Player
18
18
  property :notes, Text
19
19
 
20
20
  belongs_to :team
21
+ has 1, :draft
21
22
  end
22
23
 
23
24
  Player.fixture {{
24
- :team_id => /\d{1,2}/.gen,
25
+ :team_id => /\d{1,5}/.gen,
25
26
  :number => /\d{1,2}/.gen,
26
27
  :name => "#{/\w{3,10}/.gen.capitalize} #{/\w{5,10}/.gen.capitalize}",
27
28
  :position => Player.properties[:position].type.flag_map.values[rand(Player.properties[:position].type.flag_map.length)],
@@ -14,7 +14,7 @@ class Team
14
14
  end
15
15
 
16
16
  Team.fixture {{
17
- :league_id => /\d{1,2}/.gen,
18
- :division_id => /\d{1,2}/.gen,
19
- :name => /\w{5,10}/.gen.capitalize,
17
+ :league_id => /\d{1,5}/.gen,
18
+ :division_id => /\d{1,5}/.gen,
19
+ :name => "The #{/\w{5,10}/.gen.pluralize.capitalize}",
20
20
  }}
@@ -1,22 +1,54 @@
1
1
  require File.join(File.dirname(__FILE__), '..', 'spec_helper.rb')
2
2
 
3
- given "an object exists" do
3
+ given "a player exists" do
4
4
  @player = Player.gen
5
5
  end
6
6
 
7
7
  given "two players exist" do
8
- @players = 2.times{Player.gen}
8
+ @players = []
9
+ 2.times do
10
+ @players << Player.gen
11
+ end
12
+ end
13
+
14
+ given "three teams exists" do
15
+ @teams = []
16
+ 3.times do
17
+ @teams << Team.gen
18
+ end
19
+ end
20
+
21
+ given "a player exists and three teams exist" do
22
+ @player = Player.gen
23
+ @teams = []
24
+ 3.times do
25
+ @teams << Team.gen
26
+ end
27
+ end
28
+
29
+ given "a league exists and three teams exist" do
30
+ @league = League.gen
31
+ @teams = []
32
+ 3.times do
33
+ @teams << Team.gen
34
+ end
9
35
  end
10
36
 
11
37
  given "twenty players exist" do
12
- @players = 20.times{Player.gen}
38
+ @players = []
39
+ 20.times do
40
+ @players << Player.gen
41
+ end
13
42
  end
14
43
 
15
44
  describe "MerbAdmin" do
16
45
 
17
46
  before(:each) do
18
47
  mount_slice
48
+ Division.all.destroy!
49
+ League.all.destroy!
19
50
  Player.all.destroy!
51
+ Team.all.destroy!
20
52
  end
21
53
 
22
54
  describe "dashboard" do
@@ -31,6 +63,10 @@ describe "MerbAdmin" do
31
63
  it "should contain \"Site administration\"" do
32
64
  @response.body.should contain("Site administration")
33
65
  end
66
+
67
+ it "should be ordered correctly" do
68
+ @response.body.should contain(/Division.*League.*Player.*Team/m)
69
+ end
34
70
  end
35
71
 
36
72
  describe "list" do
@@ -58,11 +94,11 @@ describe "MerbAdmin" do
58
94
  @response.should be_successful
59
95
  end
60
96
 
61
- it "should contain matching results" do
97
+ it "should contain correct results" do
62
98
  @response.body.should contain("Jackie Robinson")
63
99
  end
64
100
 
65
- it "should not contain non-matching results" do
101
+ it "should not contain incorrect results" do
66
102
  @response.body.should_not contain("Sandy Koufax")
67
103
  end
68
104
  end
@@ -110,15 +146,35 @@ describe "MerbAdmin" do
110
146
  @response.should be_successful
111
147
  end
112
148
 
113
- it "should contain matching results" do
149
+ it "should contain correct results" do
114
150
  @response.body.should contain("Jackie Robinson")
115
151
  end
116
152
 
117
- it "should not contain non-matching results" do
153
+ it "should not contain incorrect results" do
118
154
  @response.body.should_not contain("David Wright")
119
155
  end
120
156
  end
121
157
 
158
+ describe "list with enum filter" do
159
+ before(:each) do
160
+ Player.gen(:name => "Jackie Robinson", :sex => :male)
161
+ Player.gen(:name => "Dottie Hinson", :sex => :female)
162
+ @response = request(url(:admin_list, :model_name => "player"), :params => {:filter => {:sex => :male}})
163
+ end
164
+
165
+ it "should respond sucessfully" do
166
+ @response.should be_successful
167
+ end
168
+
169
+ it "should contain correct results" do
170
+ @response.body.should contain("Jackie Robinson")
171
+ end
172
+
173
+ it "should not contain incorrect results" do
174
+ @response.body.should_not contain("Dottie Hinson")
175
+ end
176
+ end
177
+
122
178
  describe "list with 2 objects", :given => "two players exist" do
123
179
  before(:each) do
124
180
  MerbAdmin[:paginate] = true
@@ -209,7 +265,18 @@ describe "MerbAdmin" do
209
265
  end
210
266
  end
211
267
 
212
- describe "edit", :given => "an object exists" do
268
+ describe "new with has-many association", :given => "three teams exists" do
269
+ before(:each) do
270
+ @response = request(url(:admin_new, :model_name => "player"))
271
+ end
272
+
273
+ it "should respond sucessfully" do
274
+ @response.should be_successful
275
+ end
276
+ end
277
+
278
+
279
+ describe "edit", :given => "a player exists" do
213
280
  before(:each) do
214
281
  @response = request(url(:admin_edit, :model_name => "player", :id => @player.id))
215
282
  end
@@ -223,6 +290,17 @@ describe "MerbAdmin" do
223
290
  end
224
291
  end
225
292
 
293
+ describe "edit with has-many association", :given => "a player exists and three teams exist" do
294
+ before(:each) do
295
+ @response = request(url(:admin_edit, :model_name => "player", :id => @player.id))
296
+ end
297
+
298
+ it "should respond sucessfully" do
299
+ @response.should be_successful
300
+ end
301
+ end
302
+
303
+
226
304
  describe "edit with missing object" do
227
305
  before(:each) do
228
306
  @response = request(url(:admin_edit, :model_name => "player", :id => 1))
@@ -242,7 +320,7 @@ describe "MerbAdmin" do
242
320
  @response.should redirect_to(url(:admin_list, :model_name => "player"))
243
321
  end
244
322
 
245
- it "should create a new player" do
323
+ it "should create a new object" do
246
324
  Player.first.should_not be_nil
247
325
  end
248
326
  end
@@ -256,7 +334,7 @@ describe "MerbAdmin" do
256
334
  @response.should redirect_to(url(:admin_edit, :model_name => "player", :id => Player.first.id))
257
335
  end
258
336
 
259
- it "should create a new player" do
337
+ it "should create a new object" do
260
338
  Player.first.should_not be_nil
261
339
  end
262
340
  end
@@ -270,11 +348,30 @@ describe "MerbAdmin" do
270
348
  @response.should redirect_to(url(:admin_new, :model_name => "player"))
271
349
  end
272
350
 
273
- it "should create a new player" do
351
+ it "should create a new object" do
274
352
  Player.first.should_not be_nil
275
353
  end
276
354
  end
277
355
 
356
+ describe "create with has-many association", :given => "three teams exists" do
357
+ before(:each) do
358
+ @response = request(url(:admin_create, :model_name => "league"), :method => "post", :params => {:league => {:name => "National League"}, :associations => {:teams => [@teams[0].id, @teams[1].id]}})
359
+ end
360
+
361
+ it "should create a new object" do
362
+ League.first.should_not be_nil
363
+ end
364
+
365
+ it "should include correct associations" do
366
+ League.first.teams.should include(@teams[0])
367
+ League.first.teams.should include(@teams[1])
368
+ end
369
+
370
+ it "should not include incorrect associations" do
371
+ League.first.teams.should_not include(@teams[2])
372
+ end
373
+ end
374
+
278
375
  describe "create with invalid object" do
279
376
  before(:each) do
280
377
  @response = request(url(:admin_create, :model_name => "player"), :method => "post", :params => {:player => {}})
@@ -285,7 +382,7 @@ describe "MerbAdmin" do
285
382
  end
286
383
  end
287
384
 
288
- describe "update", :given => "an object exists" do
385
+ describe "update", :given => "a player exists" do
289
386
  before(:each) do
290
387
  @response = request(url(:admin_update, :model_name => "player", :id => @player.id), :method => "put", :params => {:player => {:name => "Jackie Robinson", :number => 42, :team_id => 1, :sex => :male}})
291
388
  end
@@ -299,7 +396,7 @@ describe "MerbAdmin" do
299
396
  end
300
397
  end
301
398
 
302
- describe "update and edit", :given => "an object exists" do
399
+ describe "update and edit", :given => "a player exists" do
303
400
  before(:each) do
304
401
  @response = request(url(:admin_update, :model_name => "player", :id => @player.id), :method => "put", :params => {:player => {:name => "Jackie Robinson", :number => 42, :team_id => 1, :sex => :male}, :_continue => true})
305
402
  end
@@ -313,7 +410,7 @@ describe "MerbAdmin" do
313
410
  end
314
411
  end
315
412
 
316
- describe "update and add another", :given => "an object exists" do
413
+ describe "update and add another", :given => "a player exists" do
317
414
  before(:each) do
318
415
  @response = request(url(:admin_update, :model_name => "player", :id => @player.id), :method => "put", :params => {:player => {:name => "Jackie Robinson", :number => 42, :team_id => 1, :sex => :male}, :_add_another => true})
319
416
  end
@@ -327,6 +424,25 @@ describe "MerbAdmin" do
327
424
  end
328
425
  end
329
426
 
427
+ describe "update with has-many association", :given => "a league exists and three teams exist" do
428
+ before(:each) do
429
+ @response = request(url(:admin_update, :model_name => "league", :id => @league.id), :method => "put", :params => {:league => {:name => "National League"}, :associations => {:teams => [@teams[0].id, @teams[1].id]}})
430
+ end
431
+
432
+ it "should update an object that already exists" do
433
+ League.first(:id => @league.id).name.should eql("National League")
434
+ end
435
+
436
+ it "should include correct associations" do
437
+ League.first.teams.should include(@teams[0])
438
+ League.first.teams.should include(@teams[1])
439
+ end
440
+
441
+ it "should not include incorrect associations" do
442
+ League.first.teams.should_not include(@teams[2])
443
+ end
444
+ end
445
+
330
446
  describe "update with missing object" do
331
447
  before(:each) do
332
448
  @response = request(url(:admin_update, :model_name => "player", :id => 1), :method => "put", :params => {:player => {:name => "Jackie Robinson", :number => 42, :team_id => 1, :sex => :male}})
@@ -337,7 +453,7 @@ describe "MerbAdmin" do
337
453
  end
338
454
  end
339
455
 
340
- describe "update with invalid object", :given => "an object exists" do
456
+ describe "update with invalid object", :given => "a player exists" do
341
457
  before(:each) do
342
458
  @response = request(url(:admin_update, :model_name => "player", :id => @player.id), :method => "put", :params => {:player => {:number => "a"}})
343
459
  end
@@ -347,7 +463,7 @@ describe "MerbAdmin" do
347
463
  end
348
464
  end
349
465
 
350
- describe "delete", :given => "an object exists" do
466
+ describe "delete", :given => "a player exists" do
351
467
  before(:each) do
352
468
  @response = request(url(:admin_delete, :model_name => "player", :id => @player.id))
353
469
  end
@@ -371,7 +487,7 @@ describe "MerbAdmin" do
371
487
  end
372
488
  end
373
489
 
374
- describe "destroy", :given => "an object exists" do
490
+ describe "destroy", :given => "a player exists" do
375
491
  before(:each) do
376
492
  @response = request(url(:admin_destroy, :model_name => "player", :id => @player.id), :method => "delete")
377
493
  end
data/spec/spec_helper.rb CHANGED
@@ -24,8 +24,7 @@ Merb.start_environment(
24
24
  :session_store => 'memory'
25
25
  )
26
26
 
27
- # DataMapper.setup(:default, 'sqlite3::memory:') && DataMapper.auto_migrate!
28
- DataMapper.setup(:default, 'sqlite3:test.db')
27
+ DataMapper.setup(:default, 'sqlite3::memory:') && DataMapper.auto_migrate!
29
28
 
30
29
  module Merb
31
30
  module Test
@@ -58,8 +57,7 @@ Merb::Test.add_helpers do
58
57
  def mount_slice
59
58
  if standalone?
60
59
  Merb::Router.reset!
61
- Merb::Router.prepare { add_slice(:MerbAdmin, :name_prefix => nil, :path_prefix => "", :default_routes => false) }
60
+ Merb::Router.prepare{add_slice(:MerbAdmin, :name_prefix => nil, :path_prefix => "admin", :default_routes => false)}
62
61
  end
63
62
  end
64
-
65
63
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sferik-merb-admin
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.1
4
+ version: 0.3.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Erik Michaels-Ober
@@ -9,7 +9,7 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2009-08-24 00:00:00 -07:00
12
+ date: 2009-08-31 00:00:00 -07:00
13
13
  default_executable:
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
@@ -68,6 +68,7 @@ files:
68
68
  - spec/controllers/main_spec.rb
69
69
  - spec/fixtures
70
70
  - spec/fixtures/division_fixture.rb
71
+ - spec/fixtures/draft_fixture.rb
71
72
  - spec/fixtures/league_fixture.rb
72
73
  - spec/fixtures/player_fixture.rb
73
74
  - spec/fixtures/team_fixture.rb
@@ -95,7 +96,9 @@ files:
95
96
  - app/views/main/_date_time.html.erb
96
97
  - app/views/main/_float.html.erb
97
98
  - app/views/main/_has_many.html.erb
99
+ - app/views/main/_has_one.html.erb
98
100
  - app/views/main/_integer.html.erb
101
+ - app/views/main/_properties.html.erb
99
102
  - app/views/main/_string.html.erb
100
103
  - app/views/main/_text.html.erb
101
104
  - app/views/main/_time.html.erb