merb-admin 0.6.0 → 0.6.1

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.rdoc CHANGED
@@ -3,10 +3,13 @@
3
3
  It currently offers the features listed here[http://sferik.tadalist.com/lists/1352791/public].
4
4
 
5
5
  The status of the latest build is available here[http://runcoderun.com/sferik/merb-admin].
6
+ == Screenshots
7
+ http://github.com/sferik/merb-admin/raw/master/screenshots/list.png
8
+ http://github.com/sferik/merb-admin/raw/master/screenshots/edit.png
6
9
  == Installation
7
10
  $ gem install merb-admin -s http://gemcutter.org
8
11
  In your app, add the following dependency to <tt>config/dependencies.rb</tt>:
9
- dependency "merb-admin", "0.6.0"
12
+ dependency "merb-admin", "0.6.1"
10
13
  Add the following route to <tt>config/router.rb</tt>:
11
14
  add_slice(:merb_admin, :path_prefix => "admin")
12
15
  Then, run the following rake task:
@@ -32,6 +35,7 @@ There are many ways to contribute:
32
35
  * by writing documentation
33
36
  * by writing specifications
34
37
  * by writing code (no patch is too small: fix typos in comments or inconsistent whitespace)
38
+ * by reviewing patches
35
39
  * financially[http://pledgie.com/campaigns/5428]
36
40
 
37
41
  All contributors will be added to the credits below and will receive the respect and gratitude of the author.
@@ -43,4 +47,5 @@ Many thanks to:
43
47
  * {Aaron Wheeler}[http://fightinjoe.com/] for contributing libraries from {Merb AutoScaffold}[http://github.com/fightinjoe/merb-autoscaffold]
44
48
  * {Lori Holden}[http://loriholden.com/] for contributing the merb-pagination[http://github.com/lholden/merb-pagination] helper
45
49
  * {Jacques Crocker}[http://merbjedi.com] for adding support for {namespaced models}[http://github.com/merbjedi/merb-admin/commit/8139e2241038baf9b72452056fcdc7c340d79275]
50
+ * {Jeremy Evans}[http://code.jeremyevans.net] and {Pavel Kunc}[http://www.merboutpost.com] reviewing the {patch}[http://github.com/sferik/merb-admin/commit/061fa28f652fc9214e9cf480d66870140181edef] to add Sequel[http://sequel.rubyforge.org/] support
46
51
  Also, thanks to beer[http://www.21st-amendment.com].
data/Rakefile CHANGED
@@ -9,7 +9,7 @@ AUTHOR = "Erik Michaels-Ober"
9
9
  EMAIL = "sferik@gmail.com"
10
10
  HOMEPAGE = "http://github.com/sferik/merb-admin"
11
11
  SUMMARY = "MerbAdmin is a Merb plugin that provides an easy-to-use interface for managing your data."
12
- GEM_VERSION = "0.6.0"
12
+ GEM_VERSION = "0.6.1"
13
13
 
14
14
  spec = Gem::Specification.new do |s|
15
15
  s.rubyforge_project = "merb"
@@ -1,5 +1,5 @@
1
1
  class MerbAdmin::Application < Merb::Controller
2
- include Merb::MerbAdmin::MainHelper
2
+ include Merb::MerbAdmin::ApplicationHelper
3
3
 
4
4
  controller_for_slice
5
5
 
@@ -48,11 +48,11 @@ module MerbAdmin
48
48
 
49
49
  case Merb.orm
50
50
  when :activerecord
51
- return model if model.superclass == ActiveRecord::Base
51
+ return model if superclasses(model).include?(ActiveRecord::Base)
52
52
  when :datamapper
53
53
  return model if model.include?(DataMapper::Resource)
54
54
  when :sequel
55
- return model if model.superclass == Sequel::Model
55
+ return model if superclasses(model).include?(Sequel::Model)
56
56
  end
57
57
  nil
58
58
  end
@@ -77,5 +77,17 @@ module MerbAdmin
77
77
  raise "MerbAdmin does not support the #{Merb.orm} ORM"
78
78
  end
79
79
  end
80
+
81
+ private
82
+
83
+ def self.superclasses(klass)
84
+ superclasses = []
85
+ while klass
86
+ superclasses << klass.superclass if klass && klass.superclass
87
+ klass = klass.superclass
88
+ end
89
+ superclasses
90
+ end
91
+
80
92
  end
81
93
  end
@@ -143,33 +143,9 @@ module MerbAdmin
143
143
  end
144
144
 
145
145
  module InstanceMethods
146
- def id
147
- super
148
- end
149
-
150
- def save
151
- super
152
- end
153
-
154
- def destroy
155
- super
156
- end
157
-
158
- def update_attributes(attributes)
159
- super
160
- end
161
-
162
- def errors
163
- super
164
- end
165
-
166
146
  def clear_association(association)
167
147
  association.clear
168
148
  end
169
-
170
- def reset
171
- super
172
- end
173
149
  end
174
150
 
175
151
  end
@@ -133,33 +133,9 @@ module MerbAdmin
133
133
  end
134
134
 
135
135
  module InstanceMethods
136
- def id
137
- super
138
- end
139
-
140
- def save
141
- super
142
- end
143
-
144
- def destroy
145
- super
146
- end
147
-
148
- def update_attributes(attributes)
149
- super
150
- end
151
-
152
- def errors
153
- super
154
- end
155
-
156
136
  def clear_association(association)
157
137
  association.clear
158
138
  end
159
-
160
- def reset
161
- super
162
- end
163
139
  end
164
140
 
165
141
  end
@@ -92,7 +92,7 @@ def load_data
92
92
  end
93
93
 
94
94
  puts "Loading current MLB leagues, divisions, teams, and players"
95
- MLB.teams.each do |mlb_team|
95
+ MLB::Teams.all.each do |mlb_team|
96
96
  unless league = MerbAdmin::AbstractModel.new("League").first(:conditions => ["name = ?", mlb_team.league])
97
97
  league = MerbAdmin::AbstractModel.new("League").create(:name => mlb_team.league)
98
98
  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.6.0"
26
+ self.version = "0.6.1"
27
27
  self.author = "Erik Michaels-Ober"
28
28
 
29
29
  # Stub classes loaded hook - runs before LoadClasses BootLoader
@@ -29,8 +29,7 @@ module MerbAdmin
29
29
 
30
30
  def count(options = {})
31
31
  if options[:conditions] && !options[:conditions].empty?
32
- # If options[:conditions] isn't cloned, Sequel eats the first condition!
33
- model.where(options[:conditions].clone).count
32
+ model.where(options[:conditions]).count
34
33
  else
35
34
  model.count
36
35
  end
@@ -41,8 +40,7 @@ module MerbAdmin
41
40
  sort_order = options.delete(:sort_reverse) ? :desc : :asc
42
41
 
43
42
  if options[:conditions] && !options[:conditions].empty?
44
- # If options[:conditions] isn't cloned, Sequel eats the first condition!
45
- model.order(sort.to_sym.send(sort_order)).first(options[:conditions].clone).extend(InstanceMethods)
43
+ model.order(sort.to_sym.send(sort_order)).first(options[:conditions]).extend(InstanceMethods)
46
44
  else
47
45
  model.order(sort.to_sym.send(sort_order)).first.extend(InstanceMethods)
48
46
  end
@@ -56,8 +54,7 @@ module MerbAdmin
56
54
  sort_order = options.delete(:sort_reverse) ? :desc : :asc
57
55
 
58
56
  if options[:conditions] && !options[:conditions].empty?
59
- # If options[:conditions] isn't cloned, Sequel eats the first condition!
60
- model.where(options[:conditions].clone).order(sort.to_sym.send(sort_order))
57
+ model.where(options[:conditions]).order(sort.to_sym.send(sort_order))
61
58
  else
62
59
  model.order(sort.to_sym.send(sort_order))
63
60
  end
@@ -72,8 +69,7 @@ module MerbAdmin
72
69
  sort_order = options.delete(:sort_reverse) ? :desc : :asc
73
70
 
74
71
  if options[:conditions] && !options[:conditions].empty?
75
- # If options[:conditions] isn't cloned, Sequel eats the first condition!
76
- [page_count, model.paginate(page.to_i, per_page).where(options[:conditions].clone).order(sort.to_sym.send(sort_order))]
72
+ [page_count, model.paginate(page.to_i, per_page).where(options[:conditions]).order(sort.to_sym.send(sort_order))]
77
73
  else
78
74
  [page_count, model.paginate(page.to_i, per_page).order(sort.to_sym.send(sort_order))]
79
75
  end
@@ -88,9 +84,7 @@ module MerbAdmin
88
84
  end
89
85
 
90
86
  def destroy_all!
91
- model.all.each do |object|
92
- object.destroy
93
- end
87
+ model.destroy
94
88
  end
95
89
 
96
90
  def has_many_associations
@@ -197,7 +191,7 @@ module MerbAdmin
197
191
  association[:name]
198
192
  end
199
193
  when :many_to_one
200
- association[:name]
194
+ association[:name]
201
195
  else
202
196
  raise "Unknown association type"
203
197
  end
@@ -271,36 +265,13 @@ module MerbAdmin
271
265
  end
272
266
 
273
267
  module InstanceMethods
274
- def id
275
- super
276
- end
277
-
278
- def save
279
- super
280
- end
281
-
282
- def destroy
283
- super
284
- end
285
-
286
268
  def update_attributes(attributes)
287
- # NOTE: Not sure why calling update(attributes) raises
288
- # Argument Error: wrong number of arguments (1 for 0)
289
- # but this seems to work:
290
- set(attributes)
291
- save
292
- end
293
-
294
- def errors
295
- super
269
+ update(attributes)
296
270
  end
297
271
 
298
272
  def clear_association(association)
299
- association.clear # FIXME!
300
- end
301
-
302
- def reset
303
- super
273
+ # FIXME: This should be changed to use the remove_all_* association method.
274
+ association.clear
304
275
  end
305
276
  end
306
277
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: merb-admin
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.6.0
4
+ version: 0.6.1
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-10-26 00:00:00 -07:00
12
+ date: 2009-11-02 00:00:00 -08:00
13
13
  default_executable:
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency