scaffolding_extensions 1.4.6 → 1.5.0
Sign up to get free protection for your applications and to get access to all the features.
- data/{LICENSE → MIT-LICENSE} +1 -1
- data/README +4 -5
- data/lib/scaffolding_extensions.rb +2 -3
- data/lib/scaffolding_extensions/controller/camping.rb +0 -1
- data/lib/scaffolding_extensions/controller/rack.rb +1 -2
- data/lib/scaffolding_extensions/controller/ramaze.rb +0 -1
- data/lib/scaffolding_extensions/controller/sinatra.rb +0 -1
- data/lib/scaffolding_extensions/model/datamapper.rb +1 -7
- metadata +6 -7
- data/lib/scaffolding_extensions/controller/merb.rb +0 -123
data/{LICENSE → MIT-LICENSE}
RENAMED
data/README
CHANGED
@@ -21,17 +21,16 @@ to better suit your needs.
|
|
21
21
|
Scaffolding Extensions currently supports:
|
22
22
|
|
23
23
|
* Web Frameworks
|
24
|
-
* Rails 3.0.
|
24
|
+
* Rails 3.0.3
|
25
25
|
* Ramaze 2010.06.18
|
26
26
|
* Camping 2.1
|
27
27
|
* Sinatra 1.1.0
|
28
|
-
* Merb 1.0.4
|
29
28
|
* Rack 1.2.1
|
30
29
|
* Object Relational Mappers
|
31
|
-
* ActiveRecord 3.0.
|
30
|
+
* ActiveRecord 3.0.3
|
32
31
|
* Sequel 3.19.0
|
33
|
-
* DataMapper 1.0 (see doc/datamapper.txt for details)
|
34
|
-
* Javascript Libaries (used for Ajax/Autocompleting)
|
32
|
+
* DataMapper 1.0.2 (see doc/datamapper.txt for details)
|
33
|
+
* Javascript Libaries (used for Ajax/Autocompleting, default is now JQuery)
|
35
34
|
* Prototype 1.6.0.3
|
36
35
|
* JQuery 1.4.2 (with JQuery-Autocomplete 1.1)
|
37
36
|
|
@@ -72,7 +72,7 @@ module ScaffoldingExtensions
|
|
72
72
|
auto_complete_skip_style ? '' : AUTO_COMPLETE_CSS
|
73
73
|
end
|
74
74
|
|
75
|
-
# The javascript library to use (defaults to Prototype)
|
75
|
+
# The javascript library to use (defaults to JQuery, can be set to 'Prototype')
|
76
76
|
def javascript_library=(jslib)
|
77
77
|
require "scaffolding_extensions/#{jslib.downcase}_helper"
|
78
78
|
ScaffoldingExtensions::Helper.send(:include, const_get("#{jslib}Helper"))
|
@@ -91,7 +91,6 @@ require 'scaffolding_extensions/controller/action_controller' if defined? Action
|
|
91
91
|
require 'scaffolding_extensions/controller/camping' if defined? Camping::Controllers
|
92
92
|
require 'scaffolding_extensions/controller/ramaze' if defined? Ramaze::Controller
|
93
93
|
require 'scaffolding_extensions/controller/sinatra' if defined? Sinatra
|
94
|
-
require 'scaffolding_extensions/controller/merb' if defined? Merb
|
95
94
|
|
96
95
|
require 'scaffolding_extensions/model/active_record' if defined? ActiveRecord::Base
|
97
96
|
if defined? DataMapper::Resource
|
@@ -102,4 +101,4 @@ if defined? Sequel::Model
|
|
102
101
|
require 'scaffolding_extensions/model/sequel'
|
103
102
|
end
|
104
103
|
|
105
|
-
ScaffoldingExtensions.javascript_library = '
|
104
|
+
ScaffoldingExtensions.javascript_library = 'JQuery'
|
@@ -119,7 +119,6 @@ module ScaffoldingExtensions
|
|
119
119
|
include ScaffoldingExtensions::Controller
|
120
120
|
include ScaffoldingExtensions::CampingController
|
121
121
|
include ScaffoldingExtensions::Helper
|
122
|
-
include ScaffoldingExtensions::PrototypeHelper
|
123
122
|
include ScaffoldingExtensions::CampingHelper
|
124
123
|
define_method(:get) do |path, meth, id|
|
125
124
|
@scaffold_request_method = 'GET'
|
@@ -15,7 +15,6 @@ module ScaffoldingExtensions
|
|
15
15
|
|
16
16
|
include ScaffoldingExtensions::Controller
|
17
17
|
include ScaffoldingExtensions::Helper
|
18
|
-
include ScaffoldingExtensions::PrototypeHelper
|
19
18
|
include Rack::Utils
|
20
19
|
|
21
20
|
class Redirect < StandardError
|
@@ -69,7 +68,7 @@ module ScaffoldingExtensions
|
|
69
68
|
b = 'Not Found'
|
70
69
|
end
|
71
70
|
|
72
|
-
[s, h, b]
|
71
|
+
[s, h, [b]]
|
73
72
|
end
|
74
73
|
|
75
74
|
private
|
@@ -109,7 +109,6 @@ module ScaffoldingExtensions
|
|
109
109
|
include ScaffoldingExtensions::Controller
|
110
110
|
include ScaffoldingExtensions::SinatraController
|
111
111
|
include ScaffoldingExtensions::Helper
|
112
|
-
include ScaffoldingExtensions::PrototypeHelper
|
113
112
|
include ScaffoldingExtensions::SinatraHelper
|
114
113
|
p = 'POST'
|
115
114
|
block = lambda do
|
@@ -1,5 +1,3 @@
|
|
1
|
-
require 'pp'
|
2
|
-
|
3
1
|
ScaffoldingExtensions::MODEL_SUPERCLASSES << DataMapper::Resource
|
4
2
|
|
5
3
|
def get_key_array_safe(key)
|
@@ -106,7 +104,7 @@ module ScaffoldingExtensions::MetaDataMapper
|
|
106
104
|
def scaffold_associations
|
107
105
|
@scaffold_associations ||= relationships.keys.select { |v|
|
108
106
|
relationships[v].send(:target_model).respond_to?(:scaffold_name)
|
109
|
-
}
|
107
|
+
}.sort_by{|name| name.to_s}
|
110
108
|
end
|
111
109
|
|
112
110
|
# Destroys the object
|
@@ -252,14 +250,10 @@ module ScaffoldingExtensions::MetaDataMapper
|
|
252
250
|
def scaffold_reflection_merge(reflection, from, to)
|
253
251
|
if reflection.class == DataMapper::Associations::OneToMany::Relationship
|
254
252
|
foreign_key = get_key_array_safe(reflection.target_key).name
|
255
|
-
p reflection
|
256
|
-
p reflection.target_model
|
257
253
|
table = reflection.target_model
|
258
254
|
elsif reflection.class == DataMapper::Associations::ManyToMany::Relationship
|
259
255
|
foreign_key = get_key_array_safe(reflection.through.child_key).name
|
260
|
-
p reflection
|
261
256
|
table = reflection.send(:through_model)
|
262
|
-
p table
|
263
257
|
else
|
264
258
|
return
|
265
259
|
end
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: scaffolding_extensions
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 3
|
5
5
|
prerelease: false
|
6
6
|
segments:
|
7
7
|
- 1
|
8
|
-
-
|
9
|
-
-
|
10
|
-
version: 1.
|
8
|
+
- 5
|
9
|
+
- 0
|
10
|
+
version: 1.5.0
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Jeremy Evans
|
@@ -15,7 +15,7 @@ autorequire:
|
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
17
17
|
|
18
|
-
date: 2011-01-
|
18
|
+
date: 2011-01-24 00:00:00 -08:00
|
19
19
|
default_executable:
|
20
20
|
dependencies: []
|
21
21
|
|
@@ -28,7 +28,7 @@ extensions: []
|
|
28
28
|
extra_rdoc_files: []
|
29
29
|
|
30
30
|
files:
|
31
|
-
- LICENSE
|
31
|
+
- MIT-LICENSE
|
32
32
|
- README
|
33
33
|
- lib/scaffolding_extensions/model/active_record.rb
|
34
34
|
- lib/scaffolding_extensions/model/sequel.rb
|
@@ -37,7 +37,6 @@ files:
|
|
37
37
|
- lib/scaffolding_extensions/controller/camping.rb
|
38
38
|
- lib/scaffolding_extensions/controller/ramaze.rb
|
39
39
|
- lib/scaffolding_extensions/controller/sinatra.rb
|
40
|
-
- lib/scaffolding_extensions/controller/merb.rb
|
41
40
|
- lib/scaffolding_extensions/controller/rack.rb
|
42
41
|
- lib/scaffolding_extensions/jquery_helper.rb
|
43
42
|
- lib/scaffolding_extensions/meta_controller.rb
|
@@ -1,123 +0,0 @@
|
|
1
|
-
module ScaffoldingExtensions
|
2
|
-
class << self
|
3
|
-
private
|
4
|
-
# Use whatever model directory Merb is using.
|
5
|
-
def model_files
|
6
|
-
@model_files ||= Dir["#{Merb.dir_for(:model)}/*.rb"]
|
7
|
-
end
|
8
|
-
end
|
9
|
-
|
10
|
-
# Helper methods for Merb that override the defaults in Scaffolding Extensions
|
11
|
-
module MerbControllerHelper
|
12
|
-
private
|
13
|
-
# Merb apparently requires that params that are desired to be lists have
|
14
|
-
# the suffix '[]'
|
15
|
-
def scaffold_param_list_suffix
|
16
|
-
'[]'
|
17
|
-
end
|
18
|
-
end
|
19
|
-
|
20
|
-
# Instance methods for Merb necessary for Scaffolding Extensions
|
21
|
-
module MerbController
|
22
|
-
private
|
23
|
-
def scaffold_flash
|
24
|
-
message
|
25
|
-
end
|
26
|
-
|
27
|
-
def scaffold_method_not_allowed
|
28
|
-
render('', :status=>405)
|
29
|
-
end
|
30
|
-
|
31
|
-
def scaffold_redirect_to(url)
|
32
|
-
redirect("#{request.protocol}://#{request.host}#{url}")
|
33
|
-
end
|
34
|
-
|
35
|
-
# Renders user provided template if it exists, otherwise renders a scaffold template.
|
36
|
-
# If a layout is specified (either in the controller or as an render_option), use that layout,
|
37
|
-
# otherwise uses the scaffolded layout. If :inline is one of the render_options,
|
38
|
-
# use the contents of it as the template without the layout.
|
39
|
-
#
|
40
|
-
# There may well be a much better way to do this via modifying the _template_roots, but
|
41
|
-
# I didn't have much luck and decided to take the path I used with Camping,
|
42
|
-
# rendering the templates directly.
|
43
|
-
def scaffold_render_template(action, options = {}, render_options = {})
|
44
|
-
suffix = options[:suffix]
|
45
|
-
suffix_action = "#{action}#{suffix}".to_sym
|
46
|
-
@scaffold_options ||= options
|
47
|
-
@scaffold_suffix ||= suffix
|
48
|
-
@scaffold_class ||= @scaffold_options[:class]
|
49
|
-
begin
|
50
|
-
render(suffix_action, render_options)
|
51
|
-
rescue Merb::ControllerExceptions::TemplateNotFound
|
52
|
-
if render_options.include?(:inline)
|
53
|
-
headers['Content-Type'] = 'text/javascript' if @scaffold_javascript
|
54
|
-
render(Erubis::Eruby.new(render_options[:inline]).result(binding), {:layout=>false}.merge(render_options))
|
55
|
-
else
|
56
|
-
html = Erubis::Eruby.new(File.read(scaffold_path(action))).result(binding)
|
57
|
-
merb_layout = begin
|
58
|
-
merb_layout = _get_layout
|
59
|
-
rescue Merb::ControllerExceptions::TemplateNotFound
|
60
|
-
merb_layout = false
|
61
|
-
end
|
62
|
-
if merb_layout
|
63
|
-
render(html, render_options)
|
64
|
-
else
|
65
|
-
@content = html
|
66
|
-
render(Erubis::Eruby.new(File.read(scaffold_path('layout'))).result(binding), render_options.merge(:layout=>false))
|
67
|
-
end
|
68
|
-
end
|
69
|
-
end
|
70
|
-
end
|
71
|
-
|
72
|
-
def scaffold_request_action
|
73
|
-
params[:action]
|
74
|
-
end
|
75
|
-
|
76
|
-
def scaffold_request_env
|
77
|
-
request.env
|
78
|
-
end
|
79
|
-
|
80
|
-
# Merb overrides any given query params with the path params even if the
|
81
|
-
# path params are nil. Work around it by getting the query params
|
82
|
-
# directly.
|
83
|
-
def scaffold_request_id
|
84
|
-
params[:id] || request.send(:query_params)[:id]
|
85
|
-
end
|
86
|
-
|
87
|
-
def scaffold_request_method
|
88
|
-
request.method.to_s.upcase
|
89
|
-
end
|
90
|
-
|
91
|
-
def scaffold_request_param(v)
|
92
|
-
params[v]
|
93
|
-
end
|
94
|
-
|
95
|
-
def scaffold_session
|
96
|
-
session
|
97
|
-
end
|
98
|
-
|
99
|
-
def scaffold_url(action, options = {})
|
100
|
-
url(options.merge(:controller=>controller_name, :action=>action))
|
101
|
-
end
|
102
|
-
end
|
103
|
-
|
104
|
-
# Class methods for Merb necessary for Scaffolding Extensions
|
105
|
-
module MetaMerbController
|
106
|
-
private
|
107
|
-
# Adds a before filter for checking nonidempotent requests use method POST
|
108
|
-
def scaffold_setup_helper
|
109
|
-
include ScaffoldingExtensions::Helper
|
110
|
-
include ScaffoldingExtensions::MerbControllerHelper
|
111
|
-
include ScaffoldingExtensions::PrototypeHelper
|
112
|
-
include ScaffoldingExtensions::Controller
|
113
|
-
include ScaffoldingExtensions::MerbController
|
114
|
-
before :scaffold_check_nonidempotent_requests
|
115
|
-
end
|
116
|
-
end
|
117
|
-
end
|
118
|
-
|
119
|
-
# Add class methods necessary for Scaffolding Extensions
|
120
|
-
class Merb::Controller
|
121
|
-
extend ScaffoldingExtensions::MetaController
|
122
|
-
extend ScaffoldingExtensions::MetaMerbController
|
123
|
-
end
|