scaffolding_extensions 1.4.6 → 1.5.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/{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
|