merb-admin 0.7.6 → 0.8.0
Sign up to get free protection for your applications and to get access to all the features.
- data/Gemfile +21 -0
- data/README.rdoc +1 -1
- data/Rakefile +1 -1
- data/VERSION +1 -1
- data/app/controllers/main.rb +5 -13
- data/lib/merb-admin.rb +1 -2
- data/merb-admin.gemspec +13 -12
- data/spec/requests/main_spec.rb +11 -29
- metadata +57 -32
data/Gemfile
ADDED
@@ -0,0 +1,21 @@
|
|
1
|
+
# dependencies are generated using a strict version, don't forget to edit the dependency versions when upgrading.
|
2
|
+
merb_gems_version = "1.1.0"
|
3
|
+
|
4
|
+
# If you did disable json for Merb, comment out this line.
|
5
|
+
# If you want use json gem just change it.
|
6
|
+
# Don't use json gem version lower than 1.1.7! Older versions has security bug!
|
7
|
+
gem "json_pure", ">= 1.1.7", :require => "json"
|
8
|
+
gem "merb-core", merb_gems_version
|
9
|
+
gem "builder", "~> 2.1.2"
|
10
|
+
|
11
|
+
group :test do
|
12
|
+
gem "activerecord", "~> 2.3.5", :require => "active_record"
|
13
|
+
gem "dm-core", "~> 0.10.2"
|
14
|
+
gem "dm-aggregates", "~> 0.10.2"
|
15
|
+
gem "dm-validations", "~> 0.10.2"
|
16
|
+
gem "data_objects", "~> 0.10.1"
|
17
|
+
gem "do_sqlite3", "~> 0.10.1.1"
|
18
|
+
gem "sequel", "~> 3.10.0"
|
19
|
+
gem "sqlite3-ruby", "~> 1.2.5", :require => "sqlite3"
|
20
|
+
gem "webrat", "~> 0.7.0"
|
21
|
+
end
|
data/README.rdoc
CHANGED
@@ -13,7 +13,7 @@ http://github.com/sferik/merb-admin/raw/master/screenshots/edit.png
|
|
13
13
|
== Installation
|
14
14
|
$ gem install merb-admin -s http://gemcutter.org
|
15
15
|
In your app, add the following dependency to <tt>config/dependencies.rb</tt>:
|
16
|
-
dependency "merb-admin", "0.
|
16
|
+
dependency "merb-admin", "0.8.0"
|
17
17
|
Add the following route to <tt>config/router.rb</tt>:
|
18
18
|
add_slice(:merb_admin, :path_prefix => "admin")
|
19
19
|
Then, run the following rake task:
|
data/Rakefile
CHANGED
@@ -7,7 +7,7 @@ AUTHOR = "Erik Michaels-Ober"
|
|
7
7
|
EMAIL = "sferik@gmail.com"
|
8
8
|
HOMEPAGE = "http://github.com/sferik/merb-admin"
|
9
9
|
SUMMARY = "MerbAdmin is a Merb plugin that provides an easy-to-use interface for managing your data."
|
10
|
-
MERB_GEM_VERSION = "1.
|
10
|
+
MERB_GEM_VERSION = "1.1"
|
11
11
|
|
12
12
|
begin
|
13
13
|
require 'jeweler'
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.
|
1
|
+
0.8.0
|
data/app/controllers/main.rb
CHANGED
@@ -3,12 +3,12 @@ require File.join( File.dirname(__FILE__), '..', '..', 'lib', 'abstract_model' )
|
|
3
3
|
class MerbAdmin::Main < MerbAdmin::Application
|
4
4
|
include Merb::MerbAdmin::MainHelper
|
5
5
|
|
6
|
-
before :get_models, :only => ['index']
|
7
6
|
before :get_model, :exclude => ['index']
|
8
7
|
before :get_object, :only => ['edit', 'update', 'delete', 'destroy']
|
9
8
|
before :get_attributes, :only => ['create', 'update']
|
10
9
|
|
11
10
|
def index
|
11
|
+
@abstract_models = MerbAdmin::AbstractModel.all
|
12
12
|
render(:layout => 'dashboard')
|
13
13
|
end
|
14
14
|
|
@@ -45,7 +45,7 @@ class MerbAdmin::Main < MerbAdmin::Application
|
|
45
45
|
if @object.save && update_all_associations
|
46
46
|
redirect_on_success
|
47
47
|
else
|
48
|
-
render_error
|
48
|
+
render_error(:new)
|
49
49
|
end
|
50
50
|
end
|
51
51
|
|
@@ -57,7 +57,7 @@ class MerbAdmin::Main < MerbAdmin::Application
|
|
57
57
|
if @object.update_attributes(@attributes) && update_all_associations
|
58
58
|
redirect_on_success
|
59
59
|
else
|
60
|
-
render_error
|
60
|
+
render_error(:edit)
|
61
61
|
end
|
62
62
|
end
|
63
63
|
|
@@ -75,17 +75,9 @@ class MerbAdmin::Main < MerbAdmin::Application
|
|
75
75
|
|
76
76
|
private
|
77
77
|
|
78
|
-
def get_models
|
79
|
-
@abstract_models = MerbAdmin::AbstractModel.all
|
80
|
-
end
|
81
|
-
|
82
78
|
def get_model
|
83
79
|
model_name = to_model_name(params[:model_name])
|
84
80
|
@abstract_model = MerbAdmin::AbstractModel.new(model_name)
|
85
|
-
get_properties
|
86
|
-
end
|
87
|
-
|
88
|
-
def get_properties
|
89
81
|
@properties = @abstract_model.properties
|
90
82
|
end
|
91
83
|
|
@@ -190,10 +182,10 @@ class MerbAdmin::Main < MerbAdmin::Application
|
|
190
182
|
end
|
191
183
|
end
|
192
184
|
|
193
|
-
def render_error
|
185
|
+
def render_error(template)
|
194
186
|
action = params[:action]
|
195
187
|
message[:error] = "#{@abstract_model.pretty_name} failed to be #{action}d"
|
196
|
-
render(
|
188
|
+
render(template, :layout => 'form')
|
197
189
|
end
|
198
190
|
|
199
191
|
end
|
data/lib/merb-admin.rb
CHANGED
@@ -2,7 +2,6 @@ if defined?(Merb::Plugins)
|
|
2
2
|
|
3
3
|
$:.unshift File.dirname(__FILE__)
|
4
4
|
|
5
|
-
dependency 'merb-slices', :immediate => true
|
6
5
|
Merb::Plugins.add_rakefiles "merb-admin/merbtasks", "merb-admin/slicetasks", "merb-admin/spectasks"
|
7
6
|
|
8
7
|
# Register the Slice for the current host application
|
@@ -24,7 +23,7 @@ if defined?(Merb::Plugins)
|
|
24
23
|
|
25
24
|
# Slice metadata
|
26
25
|
self.description = "MerbAdmin is a Merb plugin that provides an easy-to-use interface for managing your data."
|
27
|
-
self.version = "0.
|
26
|
+
self.version = "0.8.0"
|
28
27
|
self.author = "Erik Michaels-Ober"
|
29
28
|
|
30
29
|
# Stub classes loaded hook - runs before LoadClasses BootLoader
|
data/merb-admin.gemspec
CHANGED
@@ -5,11 +5,11 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = %q{merb-admin}
|
8
|
-
s.version = "0.
|
8
|
+
s.version = "0.8.0"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Erik Michaels-Ober"]
|
12
|
-
s.date = %q{
|
12
|
+
s.date = %q{2010-04-20}
|
13
13
|
s.description = %q{MerbAdmin is a Merb plugin that provides an easy-to-use interface for managing your data.}
|
14
14
|
s.email = %q{sferik@gmail.com}
|
15
15
|
s.extra_rdoc_files = [
|
@@ -18,6 +18,7 @@ Gem::Specification.new do |s|
|
|
18
18
|
]
|
19
19
|
s.files = [
|
20
20
|
".gitignore",
|
21
|
+
"Gemfile",
|
21
22
|
"LICENSE",
|
22
23
|
"README.rdoc",
|
23
24
|
"Rakefile",
|
@@ -170,7 +171,7 @@ Gem::Specification.new do |s|
|
|
170
171
|
}
|
171
172
|
s.rdoc_options = ["--charset=UTF-8"]
|
172
173
|
s.require_paths = ["lib"]
|
173
|
-
s.rubygems_version = %q{1.3.
|
174
|
+
s.rubygems_version = %q{1.3.6}
|
174
175
|
s.summary = %q{MerbAdmin is a Merb plugin that provides an easy-to-use interface for managing your data.}
|
175
176
|
s.test_files = [
|
176
177
|
"spec/controllers/main_spec.rb",
|
@@ -208,22 +209,22 @@ Gem::Specification.new do |s|
|
|
208
209
|
s.specification_version = 3
|
209
210
|
|
210
211
|
if Gem::Version.new(Gem::RubyGemsVersion) >= Gem::Version.new('1.2.0') then
|
211
|
-
s.add_runtime_dependency(%q<merb-slices>, [">= 1.
|
212
|
-
s.add_runtime_dependency(%q<merb-assets>, [">= 1.
|
213
|
-
s.add_runtime_dependency(%q<merb-helpers>, [">= 1.
|
212
|
+
s.add_runtime_dependency(%q<merb-slices>, [">= 1.1"])
|
213
|
+
s.add_runtime_dependency(%q<merb-assets>, [">= 1.1"])
|
214
|
+
s.add_runtime_dependency(%q<merb-helpers>, [">= 1.1"])
|
214
215
|
s.add_runtime_dependency(%q<builder>, [">= 2.1.2"])
|
215
216
|
s.add_development_dependency(%q<rspec>, [">= 1.2.9"])
|
216
217
|
else
|
217
|
-
s.add_dependency(%q<merb-slices>, [">= 1.
|
218
|
-
s.add_dependency(%q<merb-assets>, [">= 1.
|
219
|
-
s.add_dependency(%q<merb-helpers>, [">= 1.
|
218
|
+
s.add_dependency(%q<merb-slices>, [">= 1.1"])
|
219
|
+
s.add_dependency(%q<merb-assets>, [">= 1.1"])
|
220
|
+
s.add_dependency(%q<merb-helpers>, [">= 1.1"])
|
220
221
|
s.add_dependency(%q<builder>, [">= 2.1.2"])
|
221
222
|
s.add_dependency(%q<rspec>, [">= 1.2.9"])
|
222
223
|
end
|
223
224
|
else
|
224
|
-
s.add_dependency(%q<merb-slices>, [">= 1.
|
225
|
-
s.add_dependency(%q<merb-assets>, [">= 1.
|
226
|
-
s.add_dependency(%q<merb-helpers>, [">= 1.
|
225
|
+
s.add_dependency(%q<merb-slices>, [">= 1.1"])
|
226
|
+
s.add_dependency(%q<merb-assets>, [">= 1.1"])
|
227
|
+
s.add_dependency(%q<merb-helpers>, [">= 1.1"])
|
227
228
|
s.add_dependency(%q<builder>, [">= 2.1.2"])
|
228
229
|
s.add_dependency(%q<rspec>, [">= 1.2.9"])
|
229
230
|
end
|
data/spec/requests/main_spec.rb
CHANGED
@@ -8,6 +8,10 @@ given "a draft exists" do
|
|
8
8
|
@draft = MerbAdmin::AbstractModel.new("Draft").create(:player_id => rand(99999), :team_id => rand(99999), :date => Date.today, :round => rand(50), :pick => rand(30), :overall => rand(1500))
|
9
9
|
end
|
10
10
|
|
11
|
+
given "a league exists" do
|
12
|
+
@league = MerbAdmin::AbstractModel.new("League").create(:name => "League 1")
|
13
|
+
end
|
14
|
+
|
11
15
|
given "two players exist" do
|
12
16
|
@players = []
|
13
17
|
(1..2).each do |number|
|
@@ -22,35 +26,13 @@ given "three teams exist" do
|
|
22
26
|
end
|
23
27
|
end
|
24
28
|
|
25
|
-
given "
|
26
|
-
@player = MerbAdmin::AbstractModel.new("Player").create(:team_id => rand(99999), :number => 1, :name => "Player 1")
|
27
|
-
@draft = MerbAdmin::AbstractModel.new("Draft").create(:player_id => rand(99999), :team_id => rand(99999), :date => Date.today, :round => rand(50), :pick => rand(30), :overall => rand(1500))
|
28
|
-
end
|
29
|
-
|
30
|
-
given "a player exists and three teams exist" do
|
31
|
-
@player = MerbAdmin::AbstractModel.new("Player").create(:team_id => rand(99999), :number => 1, :name => "Player 1")
|
32
|
-
@teams = []
|
33
|
-
(1..3).each do |number|
|
34
|
-
@teams << MerbAdmin::AbstractModel.new("Team").create(:league_id => rand(99999), :division_id => rand(99999), :name => "Team #{number}", :manager => "Manager #{number}", :founded => 1869 + rand(130), :wins => (wins = rand(163)), :losses => 162 - wins, :win_percentage => ("%.3f" % (wins.to_f / 162)).to_f)
|
35
|
-
end
|
36
|
-
end
|
37
|
-
|
38
|
-
given "a player exists and three teams with no name exist" do
|
39
|
-
@player = MerbAdmin::AbstractModel.new("Player").create(:team_id => rand(99999), :number => 1, :name => "Player 1")
|
29
|
+
given "three teams with no name exist" do
|
40
30
|
@teams = []
|
41
31
|
(1..3).each do |number|
|
42
32
|
@teams << MerbAdmin::AbstractModel.new("Team").create(:league_id => rand(99999), :division_id => rand(99999), :manager => "Manager #{number}", :founded => 1869 + rand(130), :wins => (wins = rand(163)), :losses => 162 - wins, :win_percentage => ("%.3f" % (wins.to_f / 162)).to_f)
|
43
33
|
end
|
44
34
|
end
|
45
35
|
|
46
|
-
given "a league exists and three teams exist" do
|
47
|
-
@league = MerbAdmin::AbstractModel.new("League").create(:name => "League 1")
|
48
|
-
@teams = []
|
49
|
-
(1..3).each do |number|
|
50
|
-
@teams << MerbAdmin::AbstractModel.new("Team").create(:league_id => rand(99999), :division_id => rand(99999), :name => "Team #{number}", :manager => "Manager #{number}", :founded => 1869 + rand(130), :wins => (wins = rand(163)), :losses => 162 - wins, :win_percentage => ("%.3f" % (wins.to_f / 162)).to_f)
|
51
|
-
end
|
52
|
-
end
|
53
|
-
|
54
36
|
given "twenty players exist" do
|
55
37
|
@players = []
|
56
38
|
(1..20).each do |number|
|
@@ -371,7 +353,7 @@ describe "MerbAdmin" do
|
|
371
353
|
end
|
372
354
|
end
|
373
355
|
|
374
|
-
describe "new with missing label", :given => "a player exists
|
356
|
+
describe "new with missing label", :given => ["a player exists", "three teams with no name exist"] do
|
375
357
|
before(:each) do
|
376
358
|
@response = visit(url(:merb_admin_new, :model_name => "player"))
|
377
359
|
end
|
@@ -533,7 +515,7 @@ describe "MerbAdmin" do
|
|
533
515
|
end
|
534
516
|
end
|
535
517
|
|
536
|
-
describe "edit with has-one association", :given => "a player exists
|
518
|
+
describe "edit with has-one association", :given => ["a player exists", "a draft exists"] do
|
537
519
|
before(:each) do
|
538
520
|
@response = visit(url(:merb_admin_edit, :model_name => "player", :id => @player.id))
|
539
521
|
end
|
@@ -547,7 +529,7 @@ describe "MerbAdmin" do
|
|
547
529
|
end
|
548
530
|
end
|
549
531
|
|
550
|
-
describe "edit with has-many association", :given => "a player exists
|
532
|
+
describe "edit with has-many association", :given => ["a player exists", "three teams exist"] do
|
551
533
|
before(:each) do
|
552
534
|
@response = visit(url(:merb_admin_edit, :model_name => "player", :id => @player.id))
|
553
535
|
end
|
@@ -571,7 +553,7 @@ describe "MerbAdmin" do
|
|
571
553
|
end
|
572
554
|
end
|
573
555
|
|
574
|
-
describe "edit with missing label", :given => "a player exists
|
556
|
+
describe "edit with missing label", :given => ["a player exists", "three teams with no name exist"] do
|
575
557
|
before(:each) do
|
576
558
|
@response = visit(url(:merb_admin_edit, :model_name => "player", :id => @player.id))
|
577
559
|
end
|
@@ -644,7 +626,7 @@ describe "MerbAdmin" do
|
|
644
626
|
end
|
645
627
|
end
|
646
628
|
|
647
|
-
describe "update with has-one association", :given => "a player exists
|
629
|
+
describe "update with has-one association", :given => ["a player exists", "a draft exists"] do
|
648
630
|
before(:each) do
|
649
631
|
visit(url(:merb_admin_edit, :model_name => "player", :id => @player.id))
|
650
632
|
fill_in "Name", :with => "Jackie Robinson"
|
@@ -668,7 +650,7 @@ describe "MerbAdmin" do
|
|
668
650
|
end
|
669
651
|
end
|
670
652
|
|
671
|
-
describe "update with has-many association", :given => "a league exists
|
653
|
+
describe "update with has-many association", :given => ["a league exists", "three teams exist"] do
|
672
654
|
before(:each) do
|
673
655
|
visit(url(:merb_admin_edit, :model_name => "league", :id => @league.id))
|
674
656
|
fill_in "Name", :with => "National League"
|
metadata
CHANGED
@@ -1,7 +1,12 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: merb-admin
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
|
4
|
+
prerelease: false
|
5
|
+
segments:
|
6
|
+
- 0
|
7
|
+
- 8
|
8
|
+
- 0
|
9
|
+
version: 0.8.0
|
5
10
|
platform: ruby
|
6
11
|
authors:
|
7
12
|
- Erik Michaels-Ober
|
@@ -9,59 +14,76 @@ autorequire:
|
|
9
14
|
bindir: bin
|
10
15
|
cert_chain: []
|
11
16
|
|
12
|
-
date:
|
17
|
+
date: 2010-04-20 00:00:00 -07:00
|
13
18
|
default_executable:
|
14
19
|
dependencies:
|
15
20
|
- !ruby/object:Gem::Dependency
|
21
|
+
version_requirements: &id001 !ruby/object:Gem::Requirement
|
22
|
+
requirements:
|
23
|
+
- - ">="
|
24
|
+
- !ruby/object:Gem::Version
|
25
|
+
segments:
|
26
|
+
- 1
|
27
|
+
- 1
|
28
|
+
version: "1.1"
|
16
29
|
name: merb-slices
|
30
|
+
requirement: *id001
|
31
|
+
prerelease: false
|
17
32
|
type: :runtime
|
18
|
-
|
19
|
-
version_requirements: !ruby/object:Gem::Requirement
|
33
|
+
- !ruby/object:Gem::Dependency
|
34
|
+
version_requirements: &id002 !ruby/object:Gem::Requirement
|
20
35
|
requirements:
|
21
36
|
- - ">="
|
22
37
|
- !ruby/object:Gem::Version
|
23
|
-
|
24
|
-
|
25
|
-
-
|
38
|
+
segments:
|
39
|
+
- 1
|
40
|
+
- 1
|
41
|
+
version: "1.1"
|
26
42
|
name: merb-assets
|
43
|
+
requirement: *id002
|
44
|
+
prerelease: false
|
27
45
|
type: :runtime
|
28
|
-
|
29
|
-
version_requirements: !ruby/object:Gem::Requirement
|
46
|
+
- !ruby/object:Gem::Dependency
|
47
|
+
version_requirements: &id003 !ruby/object:Gem::Requirement
|
30
48
|
requirements:
|
31
49
|
- - ">="
|
32
50
|
- !ruby/object:Gem::Version
|
33
|
-
|
34
|
-
|
35
|
-
-
|
51
|
+
segments:
|
52
|
+
- 1
|
53
|
+
- 1
|
54
|
+
version: "1.1"
|
36
55
|
name: merb-helpers
|
56
|
+
requirement: *id003
|
57
|
+
prerelease: false
|
37
58
|
type: :runtime
|
38
|
-
version_requirement:
|
39
|
-
version_requirements: !ruby/object:Gem::Requirement
|
40
|
-
requirements:
|
41
|
-
- - ">="
|
42
|
-
- !ruby/object:Gem::Version
|
43
|
-
version: 1.0.15
|
44
|
-
version:
|
45
59
|
- !ruby/object:Gem::Dependency
|
46
|
-
|
47
|
-
type: :runtime
|
48
|
-
version_requirement:
|
49
|
-
version_requirements: !ruby/object:Gem::Requirement
|
60
|
+
version_requirements: &id004 !ruby/object:Gem::Requirement
|
50
61
|
requirements:
|
51
62
|
- - ">="
|
52
63
|
- !ruby/object:Gem::Version
|
64
|
+
segments:
|
65
|
+
- 2
|
66
|
+
- 1
|
67
|
+
- 2
|
53
68
|
version: 2.1.2
|
54
|
-
|
69
|
+
name: builder
|
70
|
+
requirement: *id004
|
71
|
+
prerelease: false
|
72
|
+
type: :runtime
|
55
73
|
- !ruby/object:Gem::Dependency
|
56
|
-
|
57
|
-
type: :development
|
58
|
-
version_requirement:
|
59
|
-
version_requirements: !ruby/object:Gem::Requirement
|
74
|
+
version_requirements: &id005 !ruby/object:Gem::Requirement
|
60
75
|
requirements:
|
61
76
|
- - ">="
|
62
77
|
- !ruby/object:Gem::Version
|
78
|
+
segments:
|
79
|
+
- 1
|
80
|
+
- 2
|
81
|
+
- 9
|
63
82
|
version: 1.2.9
|
64
|
-
|
83
|
+
name: rspec
|
84
|
+
requirement: *id005
|
85
|
+
prerelease: false
|
86
|
+
type: :development
|
65
87
|
description: MerbAdmin is a Merb plugin that provides an easy-to-use interface for managing your data.
|
66
88
|
email: sferik@gmail.com
|
67
89
|
executables: []
|
@@ -73,6 +95,7 @@ extra_rdoc_files:
|
|
73
95
|
- README.rdoc
|
74
96
|
files:
|
75
97
|
- .gitignore
|
98
|
+
- Gemfile
|
76
99
|
- LICENSE
|
77
100
|
- README.rdoc
|
78
101
|
- Rakefile
|
@@ -234,18 +257,20 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
234
257
|
requirements:
|
235
258
|
- - ">="
|
236
259
|
- !ruby/object:Gem::Version
|
260
|
+
segments:
|
261
|
+
- 0
|
237
262
|
version: "0"
|
238
|
-
version:
|
239
263
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
240
264
|
requirements:
|
241
265
|
- - ">="
|
242
266
|
- !ruby/object:Gem::Version
|
267
|
+
segments:
|
268
|
+
- 0
|
243
269
|
version: "0"
|
244
|
-
version:
|
245
270
|
requirements: []
|
246
271
|
|
247
272
|
rubyforge_project:
|
248
|
-
rubygems_version: 1.3.
|
273
|
+
rubygems_version: 1.3.6
|
249
274
|
signing_key:
|
250
275
|
specification_version: 3
|
251
276
|
summary: MerbAdmin is a Merb plugin that provides an easy-to-use interface for managing your data.
|