resourceize 0.1.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/Manifest +10 -0
- data/README.textile +13 -0
- data/Rakefile +15 -0
- data/init.rb +2 -0
- data/lib/resourceize.rb +22 -0
- data/lib/resourceize/before.rb +38 -0
- data/lib/resourceize/instance_variables.rb +139 -0
- data/lib/resourceize/resources_controller.rb +174 -0
- data/lib/resourceize/routing_methods.rb +76 -0
- data/resourceize.gemspec +33 -0
- metadata +100 -0
data/Manifest
ADDED
data/README.textile
ADDED
data/Rakefile
ADDED
@@ -0,0 +1,15 @@
|
|
1
|
+
require 'rubygems'
|
2
|
+
require 'rake'
|
3
|
+
require 'echoe'
|
4
|
+
|
5
|
+
Echoe.new('resourceize', '0.1.1') do |p|
|
6
|
+
p.description = "RESTful controllers and views without coding"
|
7
|
+
p.url = "http://github.com/mcasimir/resourceize"
|
8
|
+
p.author = "Maurizio Casimirri"
|
9
|
+
p.email = "maurizio.cas@gmail.com"
|
10
|
+
p.ignore_pattern = ["tmp/*", "script/*"]
|
11
|
+
p.development_dependencies = ["requested"]
|
12
|
+
end
|
13
|
+
|
14
|
+
Dir["#{File.dirname(__FILE__)}/tasks/*.rake"].sort.each { |ext| load ext }
|
15
|
+
|
data/init.rb
ADDED
data/lib/resourceize.rb
ADDED
@@ -0,0 +1,22 @@
|
|
1
|
+
require 'requested'
|
2
|
+
|
3
|
+
# Author:: Maurizio Casimirri (mailto:maurizio.cas@gmail.com)
|
4
|
+
# Copyright:: Copyright (c) 2010 Maurizio Casimirri
|
5
|
+
|
6
|
+
# This library is free software; you can redistribute it and/or
|
7
|
+
# modify it under the terms of the GNU Lesser General Public
|
8
|
+
# License as published by the Free Software Foundation; either
|
9
|
+
# version 2.1 of the License, or (at your option) any later version.
|
10
|
+
|
11
|
+
# This library is distributed in the hope that it will be useful,
|
12
|
+
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
13
|
+
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
14
|
+
# Lesser General Public License for more details.
|
15
|
+
|
16
|
+
# You should have received a copy of the GNU Lesser General Public
|
17
|
+
# License along with this library; if not, write to the Free Software
|
18
|
+
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
19
|
+
|
20
|
+
module Resourceize
|
21
|
+
end
|
22
|
+
|
@@ -0,0 +1,38 @@
|
|
1
|
+
# Author:: Maurizio Casimirri (mailto:maurizio.cas@gmail.com)
|
2
|
+
# Copyright:: Copyright (c) 2010 Maurizio Casimirri
|
3
|
+
|
4
|
+
# This library is free software; you can redistribute it and/or
|
5
|
+
# modify it under the terms of the GNU Lesser General Public
|
6
|
+
# License as published by the Free Software Foundation; either
|
7
|
+
# version 2.1 of the License, or (at your option) any later version.
|
8
|
+
|
9
|
+
# This library is distributed in the hope that it will be useful,
|
10
|
+
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
11
|
+
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
12
|
+
# Lesser General Public License for more details.
|
13
|
+
|
14
|
+
# You should have received a copy of the GNU Lesser General Public
|
15
|
+
# License along with this library; if not, write to the Free Software
|
16
|
+
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
17
|
+
|
18
|
+
module Resourceize
|
19
|
+
module Before
|
20
|
+
def self.included(base)
|
21
|
+
base.extend ClassMethods
|
22
|
+
end
|
23
|
+
|
24
|
+
module ClassMethods
|
25
|
+
def before(action_or_array, &block)
|
26
|
+
action_or_array = [action_or_array] if !action_or_array.is_a? Array
|
27
|
+
|
28
|
+
actions = action_or_array
|
29
|
+
|
30
|
+
self.send(:before_filter, :only => actions) do |controller|
|
31
|
+
controller.instance_eval(&block)
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
35
|
+
|
36
|
+
end
|
37
|
+
end
|
38
|
+
|
@@ -0,0 +1,139 @@
|
|
1
|
+
# Author:: Maurizio Casimirri (mailto:maurizio.cas@gmail.com)
|
2
|
+
# Copyright:: Copyright (c) 2010 Maurizio Casimirri
|
3
|
+
|
4
|
+
# This library is free software; you can redistribute it and/or
|
5
|
+
# modify it under the terms of the GNU Lesser General Public
|
6
|
+
# License as published by the Free Software Foundation; either
|
7
|
+
# version 2.1 of the License, or (at your option) any later version.
|
8
|
+
|
9
|
+
# This library is distributed in the hope that it will be useful,
|
10
|
+
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
11
|
+
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
12
|
+
# Lesser General Public License for more details.
|
13
|
+
|
14
|
+
# You should have received a copy of the GNU Lesser General Public
|
15
|
+
# License along with this library; if not, write to the Free Software
|
16
|
+
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
17
|
+
|
18
|
+
module Resourceize
|
19
|
+
module InstanceVariables
|
20
|
+
|
21
|
+
def self.included(base)
|
22
|
+
|
23
|
+
base.send(:before_filter) do |controller|
|
24
|
+
|
25
|
+
controller.instance_eval do
|
26
|
+
if request.resource
|
27
|
+
|
28
|
+
if request.action.collection?
|
29
|
+
|
30
|
+
if request.resource.respond_to? :paginate
|
31
|
+
@collection = request.resource.paginate({:page => params[:page]})
|
32
|
+
else
|
33
|
+
@collection = request.resource.all
|
34
|
+
end
|
35
|
+
|
36
|
+
mapper = :active_record if (defined?(ActiveRecord) && request.resource.superclass == ActiveRecord::Base) # TODO: WALK THE ENTIRE INHERITANCE CHAIN!!!
|
37
|
+
mapper = :mongo_mapper if (defined?(MongoMapper) && request.resource.include?(MongoMapper::Document))
|
38
|
+
|
39
|
+
keys = if mapper == :active_record
|
40
|
+
request.resource.class.column_names
|
41
|
+
elsif mapper == :mongo_mapper
|
42
|
+
request.resource.keys.keys.map &:to_s
|
43
|
+
end
|
44
|
+
|
45
|
+
@column_names = keys
|
46
|
+
|
47
|
+
instance_variable_set :"@#{request.collection_name}", @collection
|
48
|
+
|
49
|
+
elsif request.action.single_object?
|
50
|
+
|
51
|
+
# single object request.actions
|
52
|
+
if request.action.new?
|
53
|
+
@object = request.resource.new
|
54
|
+
|
55
|
+
elsif request.action.create?
|
56
|
+
@object = request.resource.new(params[:"#{request.resource_name}"])
|
57
|
+
|
58
|
+
else
|
59
|
+
|
60
|
+
begin
|
61
|
+
@object = request.resource.find(params[:id])
|
62
|
+
rescue
|
63
|
+
@object = request.resource.find_by_permalink(params[:id])
|
64
|
+
end
|
65
|
+
|
66
|
+
end #~ single_object requested_actions
|
67
|
+
|
68
|
+
meta = InstanceVariables.object_meta(@object)
|
69
|
+
|
70
|
+
@label = meta[:label]
|
71
|
+
@label_method = meta[:label_method]
|
72
|
+
@column_names = meta[:column_names]
|
73
|
+
@title = meta[:title]
|
74
|
+
@description = meta[:description]
|
75
|
+
@keywords = meta[:keywords]
|
76
|
+
|
77
|
+
instance_variable_set :"@#{request.resource_name}", @object
|
78
|
+
|
79
|
+
end #~ if elsif
|
80
|
+
|
81
|
+
end #~ if request.resource
|
82
|
+
end #~ instance_eval
|
83
|
+
|
84
|
+
end #~ send :before_filter
|
85
|
+
|
86
|
+
end
|
87
|
+
|
88
|
+
|
89
|
+
def InstanceVariables.object_meta(object)
|
90
|
+
|
91
|
+
mapper = :active_record if (defined?(ActiveRecord) && object.is_a?(ActiveRecord::Base))
|
92
|
+
mapper = :mongo_mapper if (defined?(MongoMapper) && object.class.include?(MongoMapper::Document))
|
93
|
+
|
94
|
+
keys = if mapper == :active_record
|
95
|
+
object.class.column_names
|
96
|
+
elsif mapper == :mongo_mapper
|
97
|
+
object.class.keys.keys.map &:to_s
|
98
|
+
end
|
99
|
+
|
100
|
+
label_method = if object.respond_to?(:to_label)
|
101
|
+
"to_label"
|
102
|
+
elsif object.respond_to? "label"
|
103
|
+
"label"
|
104
|
+
elsif keys.include? "name"
|
105
|
+
"name"
|
106
|
+
elsif keys.include? "title"
|
107
|
+
"title"
|
108
|
+
end
|
109
|
+
|
110
|
+
label = (object.send(:"#{label_method}") if label_method) || ""
|
111
|
+
title = label
|
112
|
+
|
113
|
+
description = if keys.include? "excerpt"
|
114
|
+
object.excerpt
|
115
|
+
elsif keys.include? "description"
|
116
|
+
object.description
|
117
|
+
end
|
118
|
+
|
119
|
+
keywords = if object.respond_to? :"keywords"
|
120
|
+
object.keywords
|
121
|
+
elsif object.respond_to? :"tag_list"
|
122
|
+
object.tag_list
|
123
|
+
end
|
124
|
+
|
125
|
+
{
|
126
|
+
:label => label,
|
127
|
+
:label_method => label_method,
|
128
|
+
:column_names => keys,
|
129
|
+
:title => title,
|
130
|
+
:description => description,
|
131
|
+
:keywords => keywords
|
132
|
+
}
|
133
|
+
|
134
|
+
end
|
135
|
+
|
136
|
+
|
137
|
+
end
|
138
|
+
end
|
139
|
+
|
@@ -0,0 +1,174 @@
|
|
1
|
+
# Author:: Maurizio Casimirri (mailto:maurizio.cas@gmail.com)
|
2
|
+
# Copyright:: Copyright (c) 2010 Maurizio Casimirri
|
3
|
+
|
4
|
+
# This library is free software; you can redistribute it and/or
|
5
|
+
# modify it under the terms of the GNU Lesser General Public
|
6
|
+
# License as published by the Free Software Foundation; either
|
7
|
+
# version 2.1 of the License, or (at your option) any later version.
|
8
|
+
|
9
|
+
# This library is distributed in the hope that it will be useful,
|
10
|
+
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
11
|
+
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
12
|
+
# Lesser General Public License for more details.
|
13
|
+
|
14
|
+
# You should have received a copy of the GNU Lesser General Public
|
15
|
+
# License along with this library; if not, write to the Free Software
|
16
|
+
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
17
|
+
|
18
|
+
|
19
|
+
module Resourceize
|
20
|
+
class ResourcesController < ActionController::Base
|
21
|
+
include Resourceize::Before
|
22
|
+
include Resourceize::InstanceVariables
|
23
|
+
include Resourceize::RoutingMethods
|
24
|
+
|
25
|
+
|
26
|
+
helper_method :extra_object_actions, :extra_collection_actions, :extra_collection_columns
|
27
|
+
|
28
|
+
def self.set_resource(resource_class)
|
29
|
+
request.instance_eval {@resource = resource_class}
|
30
|
+
end
|
31
|
+
|
32
|
+
def self.follow(action, &block)
|
33
|
+
action = :"#{action}"
|
34
|
+
@follow ||= {}
|
35
|
+
@follow[action] = block
|
36
|
+
end
|
37
|
+
|
38
|
+
#
|
39
|
+
def new
|
40
|
+
render :template => template_for("new")
|
41
|
+
end
|
42
|
+
|
43
|
+
#
|
44
|
+
def edit
|
45
|
+
render :template => template_for("edit")
|
46
|
+
end
|
47
|
+
|
48
|
+
#
|
49
|
+
def index
|
50
|
+
render :template => template_for("index")
|
51
|
+
end
|
52
|
+
|
53
|
+
#
|
54
|
+
def create
|
55
|
+
if @object.save
|
56
|
+
success :redirect_to => follow_action(:create) || (can_render_show? ? object_path(@object) : collection_path)
|
57
|
+
else
|
58
|
+
failure :render => template_for("new")
|
59
|
+
end
|
60
|
+
end
|
61
|
+
|
62
|
+
#
|
63
|
+
def update
|
64
|
+
if @object.update_attributes(params[:"#{request.resource_name}"])
|
65
|
+
success :redirect_to => follow_action(:update) || (can_render_show? ? object_path(@object) : collection_path)
|
66
|
+
else
|
67
|
+
failure :render => template_for("edit")
|
68
|
+
end
|
69
|
+
end
|
70
|
+
|
71
|
+
#
|
72
|
+
def destroy
|
73
|
+
if @object.destroy
|
74
|
+
success :redirect_to => follow_action(:destroy) || collection_path
|
75
|
+
else
|
76
|
+
failure :redirect_to => collection_path
|
77
|
+
end
|
78
|
+
end
|
79
|
+
|
80
|
+
#
|
81
|
+
def show
|
82
|
+
|
83
|
+
end
|
84
|
+
|
85
|
+
protected
|
86
|
+
def extra_object_actions(object)
|
87
|
+
[]
|
88
|
+
end
|
89
|
+
|
90
|
+
def extra_collection_actions
|
91
|
+
[]
|
92
|
+
end
|
93
|
+
|
94
|
+
def extra_collection_columns
|
95
|
+
[]
|
96
|
+
end
|
97
|
+
|
98
|
+
private
|
99
|
+
|
100
|
+
#
|
101
|
+
def follow_action(action)
|
102
|
+
follow_hash = self.class.instance_eval {@follow}
|
103
|
+
block = follow_hash[action] if follow_hash
|
104
|
+
self.instance_eval(&block) if block
|
105
|
+
end
|
106
|
+
|
107
|
+
#
|
108
|
+
def can_render_show?
|
109
|
+
File.exists?(File.join(Rails.root, "app", "views", controller_name, "show.html.erb"))
|
110
|
+
end
|
111
|
+
|
112
|
+
#
|
113
|
+
def template_for(action)
|
114
|
+
custom_template = File.join(Rails.root, "app", "views", request.controller, "#{action}.html.erb")
|
115
|
+
if File.exists?(custom_template)
|
116
|
+
"#{request.controller}/#{action}"
|
117
|
+
else
|
118
|
+
"default_templates/#{action}"
|
119
|
+
end
|
120
|
+
end
|
121
|
+
|
122
|
+
#
|
123
|
+
def success(options)
|
124
|
+
|
125
|
+
last_action = {}
|
126
|
+
last_action[:action] = request.action
|
127
|
+
last_action[:success] = true
|
128
|
+
last_action[:resource_class] = request.resource_name
|
129
|
+
last_action[:resource_id] = params[:id]
|
130
|
+
last_action[:resource_title] = @label
|
131
|
+
|
132
|
+
flash[:last_action] = last_action
|
133
|
+
|
134
|
+
respond_to do |wants|
|
135
|
+
wants.html {
|
136
|
+
if options[:redirect_to]
|
137
|
+
redirect_to(options[:redirect_to])
|
138
|
+
else
|
139
|
+
render(:template => options[:render])
|
140
|
+
end
|
141
|
+
}
|
142
|
+
|
143
|
+
wants.js {render :json => true.to_json}
|
144
|
+
end
|
145
|
+
end
|
146
|
+
|
147
|
+
#
|
148
|
+
def failure(options)
|
149
|
+
|
150
|
+
last_action = {}
|
151
|
+
last_action[:action] = request.action
|
152
|
+
last_action[:success] = false
|
153
|
+
last_action[:resource_class] = request.resource_name
|
154
|
+
last_action[:resource_id] = params[:id]
|
155
|
+
last_action[:resource_title] = @label
|
156
|
+
|
157
|
+
flash[:last_action] = last_action
|
158
|
+
|
159
|
+
respond_to do |wants|
|
160
|
+
wants.html {
|
161
|
+
if options[:redirect_to]
|
162
|
+
redirect_to(options[:redirect_to])
|
163
|
+
else
|
164
|
+
render(:template => options[:render])
|
165
|
+
end
|
166
|
+
}
|
167
|
+
wants.js {head :internal_server_error}
|
168
|
+
end
|
169
|
+
|
170
|
+
end
|
171
|
+
|
172
|
+
end
|
173
|
+
end
|
174
|
+
|
@@ -0,0 +1,76 @@
|
|
1
|
+
# Author:: Maurizio Casimirri (mailto:maurizio.cas@gmail.com)
|
2
|
+
# Copyright:: Copyright (c) 2010 Maurizio Casimirri
|
3
|
+
|
4
|
+
# This library is free software; you can redistribute it and/or
|
5
|
+
# modify it under the terms of the GNU Lesser General Public
|
6
|
+
# License as published by the Free Software Foundation; either
|
7
|
+
# version 2.1 of the License, or (at your option) any later version.
|
8
|
+
|
9
|
+
# This library is distributed in the hope that it will be useful,
|
10
|
+
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
11
|
+
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
12
|
+
# Lesser General Public License for more details.
|
13
|
+
|
14
|
+
# You should have received a copy of the GNU Lesser General Public
|
15
|
+
# License along with this library; if not, write to the Free Software
|
16
|
+
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
17
|
+
|
18
|
+
module Resourceize
|
19
|
+
module RoutingMethods
|
20
|
+
|
21
|
+
def self.included(base)
|
22
|
+
|
23
|
+
base.send :include, InstanceMethods
|
24
|
+
|
25
|
+
base.send :helper_method, :object_path
|
26
|
+
base.send :helper_method, :edit_object_path
|
27
|
+
base.send :helper_method, :new_object_path
|
28
|
+
base.send :helper_method, :collection_path
|
29
|
+
base.send :helper_method, :object_url
|
30
|
+
base.send :helper_method, :edit_object_url
|
31
|
+
base.send :helper_method, :new_object_url
|
32
|
+
base.send :helper_method, :collection_url
|
33
|
+
|
34
|
+
end
|
35
|
+
|
36
|
+
|
37
|
+
module InstanceMethods
|
38
|
+
protected
|
39
|
+
|
40
|
+
def object_path(object)
|
41
|
+
self.send :"#{request.resource_name}_path", object
|
42
|
+
end
|
43
|
+
|
44
|
+
def edit_object_path(object)
|
45
|
+
self.send :"edit_#{request.resource_name}_path", object
|
46
|
+
end
|
47
|
+
|
48
|
+
def new_object_path
|
49
|
+
self.send :"new_#{request.resource_name}_path"
|
50
|
+
end
|
51
|
+
|
52
|
+
def collection_path
|
53
|
+
self.send :"#{request.collection_name}_path"
|
54
|
+
end
|
55
|
+
|
56
|
+
def object_url(object)
|
57
|
+
self.send :"#{request.resource_name}_url", object
|
58
|
+
end
|
59
|
+
|
60
|
+
def edit_object_url(object)
|
61
|
+
self.send :"edit_#{request.resource_name}_url", object
|
62
|
+
end
|
63
|
+
|
64
|
+
def new_object_url
|
65
|
+
self.send :"new_#{request.resource_name}_url"
|
66
|
+
end
|
67
|
+
|
68
|
+
def collection_url
|
69
|
+
self.send :"#{request.collection_name}_url"
|
70
|
+
end
|
71
|
+
|
72
|
+
end
|
73
|
+
|
74
|
+
end
|
75
|
+
end
|
76
|
+
|
data/resourceize.gemspec
ADDED
@@ -0,0 +1,33 @@
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
2
|
+
|
3
|
+
Gem::Specification.new do |s|
|
4
|
+
s.name = %q{resourceize}
|
5
|
+
s.version = "0.1.1"
|
6
|
+
|
7
|
+
s.required_rubygems_version = Gem::Requirement.new(">= 1.2") if s.respond_to? :required_rubygems_version=
|
8
|
+
s.authors = ["Maurizio Casimirri"]
|
9
|
+
s.date = %q{2010-07-19}
|
10
|
+
s.description = %q{RESTful controllers and views without coding}
|
11
|
+
s.email = %q{maurizio.cas@gmail.com}
|
12
|
+
s.extra_rdoc_files = ["README.textile", "lib/resourceize.rb", "lib/resourceize/before.rb", "lib/resourceize/instance_variables.rb", "lib/resourceize/resources_controller.rb", "lib/resourceize/routing_methods.rb"]
|
13
|
+
s.files = ["Manifest", "README.textile", "Rakefile", "init.rb", "lib/resourceize.rb", "lib/resourceize/before.rb", "lib/resourceize/instance_variables.rb", "lib/resourceize/resources_controller.rb", "lib/resourceize/routing_methods.rb", "resourceize.gemspec"]
|
14
|
+
s.homepage = %q{http://github.com/mcasimir/resourceize}
|
15
|
+
s.rdoc_options = ["--line-numbers", "--inline-source", "--title", "Resourceize", "--main", "README.textile"]
|
16
|
+
s.require_paths = ["lib"]
|
17
|
+
s.rubyforge_project = %q{resourceize}
|
18
|
+
s.rubygems_version = %q{1.3.7}
|
19
|
+
s.summary = %q{RESTful controllers and views without coding}
|
20
|
+
|
21
|
+
if s.respond_to? :specification_version then
|
22
|
+
current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
|
23
|
+
s.specification_version = 3
|
24
|
+
|
25
|
+
if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
|
26
|
+
s.add_development_dependency(%q<requested>, [">= 0"])
|
27
|
+
else
|
28
|
+
s.add_dependency(%q<requested>, [">= 0"])
|
29
|
+
end
|
30
|
+
else
|
31
|
+
s.add_dependency(%q<requested>, [">= 0"])
|
32
|
+
end
|
33
|
+
end
|
metadata
ADDED
@@ -0,0 +1,100 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: resourceize
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
hash: 25
|
5
|
+
prerelease: false
|
6
|
+
segments:
|
7
|
+
- 0
|
8
|
+
- 1
|
9
|
+
- 1
|
10
|
+
version: 0.1.1
|
11
|
+
platform: ruby
|
12
|
+
authors:
|
13
|
+
- Maurizio Casimirri
|
14
|
+
autorequire:
|
15
|
+
bindir: bin
|
16
|
+
cert_chain: []
|
17
|
+
|
18
|
+
date: 2010-07-19 00:00:00 +02:00
|
19
|
+
default_executable:
|
20
|
+
dependencies:
|
21
|
+
- !ruby/object:Gem::Dependency
|
22
|
+
name: requested
|
23
|
+
prerelease: false
|
24
|
+
requirement: &id001 !ruby/object:Gem::Requirement
|
25
|
+
none: false
|
26
|
+
requirements:
|
27
|
+
- - ">="
|
28
|
+
- !ruby/object:Gem::Version
|
29
|
+
hash: 3
|
30
|
+
segments:
|
31
|
+
- 0
|
32
|
+
version: "0"
|
33
|
+
type: :development
|
34
|
+
version_requirements: *id001
|
35
|
+
description: RESTful controllers and views without coding
|
36
|
+
email: maurizio.cas@gmail.com
|
37
|
+
executables: []
|
38
|
+
|
39
|
+
extensions: []
|
40
|
+
|
41
|
+
extra_rdoc_files:
|
42
|
+
- README.textile
|
43
|
+
- lib/resourceize.rb
|
44
|
+
- lib/resourceize/before.rb
|
45
|
+
- lib/resourceize/instance_variables.rb
|
46
|
+
- lib/resourceize/resources_controller.rb
|
47
|
+
- lib/resourceize/routing_methods.rb
|
48
|
+
files:
|
49
|
+
- Manifest
|
50
|
+
- README.textile
|
51
|
+
- Rakefile
|
52
|
+
- init.rb
|
53
|
+
- lib/resourceize.rb
|
54
|
+
- lib/resourceize/before.rb
|
55
|
+
- lib/resourceize/instance_variables.rb
|
56
|
+
- lib/resourceize/resources_controller.rb
|
57
|
+
- lib/resourceize/routing_methods.rb
|
58
|
+
- resourceize.gemspec
|
59
|
+
has_rdoc: true
|
60
|
+
homepage: http://github.com/mcasimir/resourceize
|
61
|
+
licenses: []
|
62
|
+
|
63
|
+
post_install_message:
|
64
|
+
rdoc_options:
|
65
|
+
- --line-numbers
|
66
|
+
- --inline-source
|
67
|
+
- --title
|
68
|
+
- Resourceize
|
69
|
+
- --main
|
70
|
+
- README.textile
|
71
|
+
require_paths:
|
72
|
+
- lib
|
73
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
74
|
+
none: false
|
75
|
+
requirements:
|
76
|
+
- - ">="
|
77
|
+
- !ruby/object:Gem::Version
|
78
|
+
hash: 3
|
79
|
+
segments:
|
80
|
+
- 0
|
81
|
+
version: "0"
|
82
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
83
|
+
none: false
|
84
|
+
requirements:
|
85
|
+
- - ">="
|
86
|
+
- !ruby/object:Gem::Version
|
87
|
+
hash: 11
|
88
|
+
segments:
|
89
|
+
- 1
|
90
|
+
- 2
|
91
|
+
version: "1.2"
|
92
|
+
requirements: []
|
93
|
+
|
94
|
+
rubyforge_project: resourceize
|
95
|
+
rubygems_version: 1.3.7
|
96
|
+
signing_key:
|
97
|
+
specification_version: 3
|
98
|
+
summary: RESTful controllers and views without coding
|
99
|
+
test_files: []
|
100
|
+
|