merb-admin 0.7.6 → 0.8.0
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/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.
|