maiha-merb_inspector 0.2.6 → 0.2.7

Sign up to get free protection for your applications and to get access to all the features.
data/Rakefile CHANGED
@@ -5,7 +5,7 @@ require 'merb-core'
5
5
  require 'merb-core/tasks/merb'
6
6
 
7
7
  GEM_NAME = "merb_inspector"
8
- GEM_VERSION = "0.2.6"
8
+ GEM_VERSION = "0.2.7"
9
9
  AUTHOR = "Maiha"
10
10
  EMAIL = "maiha@wota.jp"
11
11
  HOMEPAGE = "http://github.com/maiha/merb_inspector"
@@ -23,7 +23,7 @@ spec = Gem::Specification.new do |s|
23
23
  s.author = AUTHOR
24
24
  s.email = EMAIL
25
25
  s.homepage = HOMEPAGE
26
- s.add_dependency('merb', '>= 1.0.7')
26
+ s.add_dependency('merb', '>= 1.0.8')
27
27
  s.require_path = 'lib'
28
28
  s.files = %w(LICENSE README Rakefile TODO) + Dir.glob("{lib,spec,inspectors,templates,mirror}/**/*")
29
29
 
@@ -76,7 +76,21 @@ class DataMapper::ResourceInspector < Merb::Inspector
76
76
  end
77
77
 
78
78
  def column_value(record, p)
79
- h(record.send p.name.to_s)
79
+ # first, search class prefixed method that user override
80
+ method = "#{Extlib::Inflection.demodulize(record.class.name)}_#{p.name}_column"
81
+ return send(method, record, p) if respond_to?(method, true)
82
+
83
+ # second, search method that user override
84
+ method = "#{p.name}_column"
85
+ return send(method, record, p) if respond_to?(method, true)
86
+
87
+ # finally, guess form from property type
88
+ value = record.send(p.name)
89
+ if p.type == ::DataMapper::Types::Text
90
+ value.to_s.split(/\r?\n/).map{|i| h(i.to_s)}.join("<BR>")
91
+ else
92
+ h(value.to_s)
93
+ end
80
94
  end
81
95
 
82
96
  def column_form(record, p)
@@ -88,7 +102,7 @@ class DataMapper::ResourceInspector < Merb::Inspector
88
102
  method = "#{p.name}_form"
89
103
  return send(method, record, p) if respond_to?(method, true)
90
104
 
91
- # second, guess form from property type
105
+ # finally, guess form from property type
92
106
  if p.type == ::DataMapper::Types::Serial
93
107
  record.send p.name
94
108
  elsif p.type == ::DataMapper::Types::Text
@@ -1,8 +1,10 @@
1
1
  module Merb
2
2
  class Inspector
3
3
  module Helper
4
- def inspect(object = nil, options = {})
5
- return h(super()) unless object
4
+ def inspect(*args)
5
+ return h(super()) if args.blank?
6
+ object = args.shift
7
+ options = args.shift || {}
6
8
 
7
9
  options = options.is_a?(Hash) ? options : {:action=>options}
8
10
  options[:action] ||= :show
@@ -43,10 +43,19 @@ module Merb
43
43
  end
44
44
 
45
45
  def self.lookup(object)
46
+ # first, search object itself for mainly class stuff
47
+ if stores.has_key?(object)
48
+ log "lookup: %s => %s" % [object, stores[object]]
49
+ return stores[object]
50
+ end
51
+
52
+ # second, search its class
46
53
  if caches.has_key?(object.class)
47
54
  log "lookup: %s => %s (cached)" % [object.class, caches[object.class] || 'nil']
48
55
  return caches[object.class]
49
56
  end
57
+
58
+ # finally, search ancestors of the class
50
59
  klass = object.class.ancestors.find{|klass|
51
60
  log "lookup: %s = %s ... %s" % [object.class, klass, stores[klass]]
52
61
  stores.has_key?(klass)
@@ -5,7 +5,7 @@
5
5
  <%- columns.each do |p| -%>
6
6
  <tr>
7
7
  <th><%= column_header(p) %></th>
8
- <td><%=h column_value(record, p) %></td>
8
+ <td><%= column_value(record, p) %></td>
9
9
  </tr>
10
10
  <%- end -%>
11
11
  <tr>
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: maiha-merb_inspector
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.6
4
+ version: 0.2.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - Maiha
@@ -9,17 +9,18 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2008-12-30 00:00:00 -08:00
12
+ date: 2009-03-15 00:00:00 -07:00
13
13
  default_executable:
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: merb
17
+ type: :runtime
17
18
  version_requirement:
18
19
  version_requirements: !ruby/object:Gem::Requirement
19
20
  requirements:
20
21
  - - ">="
21
22
  - !ruby/object:Gem::Version
22
- version: 1.0.7
23
+ version: 1.0.8
23
24
  version:
24
25
  description: Merb plugin that provides powerful 'inspect' helper method
25
26
  email: maiha@wota.jp