padrino-admin 0.12.0.rc1 → 0.12.0.rc2
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.
- checksums.yaml +4 -4
- data/lib/padrino-admin/generators/actions.rb +4 -4
- data/lib/padrino-admin/generators/admin_app.rb +29 -27
- data/lib/padrino-admin/generators/admin_page.rb +10 -12
- data/lib/padrino-admin/generators/templates/app.rb.tt +2 -2
- data/lib/padrino-admin/generators/templates/app/controllers/base.rb.tt +1 -1
- data/lib/padrino-admin/generators/templates/app/controllers/sessions.rb.tt +1 -1
- data/lib/padrino-admin/generators/templates/erb/app/layouts/application.erb.tt +1 -1
- data/lib/padrino-admin/generators/templates/haml/app/layouts/application.haml.tt +1 -1
- data/lib/padrino-admin/generators/templates/page/controller.rb.tt +1 -1
- data/lib/padrino-admin/generators/templates/slim/app/layouts/application.slim.tt +1 -1
- data/lib/padrino-admin/helpers/authentication_helpers.rb +5 -9
- data/test/generators/test_admin_app_generator.rb +7 -1
- data/test/helper.rb +1 -1
- metadata +6 -6
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA1:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: e983af1fb92a4c0ad9457128ec169c15ca4a9ccf
|
|
4
|
+
data.tar.gz: 22517aab5237143525fb7721e24a4246bc50415d
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 382fdbf12184bf8873fd3556e04f8bc855189af9ed1c5f4a0ab2c51f418d6e3cfd35402b2a2d1c13eadb37a84450d9d22ce70bce9c055433c5d9fe319a18569d
|
|
7
|
+
data.tar.gz: 9cd98159c6583825ca5b179641c84fe78e80543547628f8ef95aa8b41fba292d0415979c5948d32cb5cdfebd750e0953de7310a0edfe9248f31bd986b81743bf
|
|
@@ -41,16 +41,16 @@ module Padrino
|
|
|
41
41
|
# Add access_control permission in our app.rb.
|
|
42
42
|
#
|
|
43
43
|
def add_project_module(controller)
|
|
44
|
-
permission = "
|
|
45
|
-
inject_into_file destination_root('/
|
|
44
|
+
permission = " role.project_module :#{controller}, '/#{controller}'\n"
|
|
45
|
+
inject_into_file destination_root(@admin_path+'/app.rb'), permission, :after => "access_control.roles_for :admin do |role|\n"
|
|
46
46
|
end
|
|
47
47
|
|
|
48
48
|
##
|
|
49
49
|
# Remove from access_control permissions.
|
|
50
50
|
#
|
|
51
51
|
def remove_project_module(controller)
|
|
52
|
-
path = destination_root('/
|
|
53
|
-
say_status :replace, '
|
|
52
|
+
path = destination_root(@admin_path+'/app.rb')
|
|
53
|
+
say_status :replace, @admin_path+'/app.rb', :red
|
|
54
54
|
content = File.binread(path)
|
|
55
55
|
content.gsub!(/^\s+role\.project_module :#{controller}, '\/#{controller}'\n/, '')
|
|
56
56
|
File.open(path, 'wb') { |f| f.write content }
|
|
@@ -21,7 +21,7 @@ module Padrino
|
|
|
21
21
|
|
|
22
22
|
# Look for custom template files in a generators folder under the project root.
|
|
23
23
|
def source_paths
|
|
24
|
-
if File.
|
|
24
|
+
if File.exist? destination_root('generators', 'templates')
|
|
25
25
|
["#{destination_root('generators')}", File.expand_path(File.dirname(__FILE__))]
|
|
26
26
|
else
|
|
27
27
|
[File.expand_path(File.dirname(__FILE__))]
|
|
@@ -31,14 +31,12 @@ module Padrino
|
|
|
31
31
|
desc "Description:\n\n\tpadrino-gen admin generates a new Padrino Admin application"
|
|
32
32
|
|
|
33
33
|
class_option :skip_migration, :aliases => "-s", :default => false, :type => :boolean
|
|
34
|
-
# TODO FIXME Review these and implement accordingly.
|
|
35
|
-
# See https://github.com/padrino/padrino-framework/issues/854#issuecomment-14749356
|
|
36
|
-
# class_option :app, :desc => 'The application destination path', :aliases => '-a', :default => '/app', :type => :string
|
|
37
34
|
# class_option :models_path, :desc => 'The models destination path', :default => '.', :type => :string
|
|
38
35
|
class_option :root, :desc => "The root destination", :aliases => '-r', :default => ".", :type => :string
|
|
39
36
|
class_option :destroy, :aliases => '-d', :default => false, :type => :boolean
|
|
40
37
|
class_option :renderer, :aliases => '-e', :desc => "Rendering engine (erb, haml)", :type => :string
|
|
41
38
|
class_option :admin_model, :aliases => '-m', :desc => "The name of model for access controlling", :default => 'Account', :type => :string
|
|
39
|
+
class_option :admin_name, :aliases => '-a', :desc => 'The admin application name and path', :default => 'admin', :type => :string
|
|
42
40
|
|
|
43
41
|
# Copies over the Padrino base admin application.
|
|
44
42
|
def create_admin
|
|
@@ -58,23 +56,27 @@ module Padrino
|
|
|
58
56
|
# Get the app's namespace.
|
|
59
57
|
@app_name = fetch_app_name
|
|
60
58
|
|
|
59
|
+
# setup admin app name
|
|
60
|
+
@admin_name = options[:admin_name].classify
|
|
61
|
+
@admin_path = options[:admin_name].underscore
|
|
62
|
+
|
|
61
63
|
store_component_choice(:admin_renderer, tmp_ext)
|
|
62
64
|
|
|
63
65
|
self.behavior = :revoke if options[:destroy]
|
|
64
66
|
|
|
65
|
-
empty_directory destination_root(
|
|
67
|
+
empty_directory destination_root(@admin_path)
|
|
66
68
|
|
|
67
69
|
# Setup Admin Model
|
|
68
70
|
@model_name = options[:admin_model].classify
|
|
69
71
|
@model_singular = @model_name.underscore
|
|
70
72
|
@model_plural = @model_singular.pluralize
|
|
71
73
|
|
|
72
|
-
directory "templates/app", destination_root(
|
|
73
|
-
directory "templates/assets", destination_root("public",
|
|
74
|
-
template "templates/app.rb.tt", destination_root("
|
|
75
|
-
inject_into_file destination_root('config/apps.rb'),
|
|
74
|
+
directory "templates/app", destination_root(@admin_path)
|
|
75
|
+
directory "templates/assets", destination_root("public", @admin_path)
|
|
76
|
+
template "templates/app.rb.tt", destination_root(@admin_path + "/app.rb")
|
|
77
|
+
inject_into_file destination_root('config/apps.rb'), "\nPadrino.mount(\"#{@app_name}::#{@admin_name}\", :app_file => Padrino.root('#{@admin_path}/app.rb')).to(\"/#{@admin_path}\")\n", :before => /^Padrino.mount.*\.to\('\/'\)$/
|
|
76
78
|
unless options[:destroy]
|
|
77
|
-
insert_middleware 'ActiveRecord::ConnectionAdapters::ConnectionManagement',
|
|
79
|
+
insert_middleware 'ActiveRecord::ConnectionAdapters::ConnectionManagement', @admin_path if [:minirecord, :activerecord].include?(orm)
|
|
78
80
|
end
|
|
79
81
|
|
|
80
82
|
params = [
|
|
@@ -98,7 +100,7 @@ module Padrino
|
|
|
98
100
|
]
|
|
99
101
|
|
|
100
102
|
unless options[:destroy]
|
|
101
|
-
admin_app = Padrino::Generators::AdminPage.new([@model_singular], :root => options[:root], :destroy => options[:destroy], :admin_model => @model_singular)
|
|
103
|
+
admin_app = Padrino::Generators::AdminPage.new([@model_singular], :root => options[:root], :destroy => options[:destroy], :admin_model => @model_singular, :admin_name => @admin_name)
|
|
102
104
|
admin_app.default_orm = Padrino::Admin::Generators::Orm.new(@model_singular, orm, columns, column_fields)
|
|
103
105
|
admin_app.invoke_all
|
|
104
106
|
end
|
|
@@ -111,21 +113,21 @@ module Padrino
|
|
|
111
113
|
end
|
|
112
114
|
template "templates/account/seeds.rb.tt", destination_root("db/seeds.rb")
|
|
113
115
|
|
|
114
|
-
empty_directory destination_root("
|
|
115
|
-
empty_directory destination_root("
|
|
116
|
-
empty_directory destination_root("
|
|
117
|
-
empty_directory destination_root("
|
|
118
|
-
empty_directory destination_root("
|
|
119
|
-
empty_directory destination_root("
|
|
120
|
-
|
|
121
|
-
template "templates/#{ext}/app/base/index.#{ext}.tt", destination_root("
|
|
122
|
-
template "templates/#{ext}/app/layouts/application.#{ext}.tt", destination_root("
|
|
123
|
-
template "templates/#{ext}/app/layouts/error.#{ext}.tt",
|
|
124
|
-
template "templates/#{ext}/app/sessions/new.#{ext}.tt", destination_root("
|
|
116
|
+
empty_directory destination_root(@admin_path+"/controllers")
|
|
117
|
+
empty_directory destination_root(@admin_path+"/views")
|
|
118
|
+
empty_directory destination_root(@admin_path+"/views/base")
|
|
119
|
+
empty_directory destination_root(@admin_path+"/views/layouts")
|
|
120
|
+
empty_directory destination_root(@admin_path+"/views/sessions")
|
|
121
|
+
empty_directory destination_root(@admin_path+"/views/errors")
|
|
122
|
+
|
|
123
|
+
template "templates/#{ext}/app/base/index.#{ext}.tt", destination_root(@admin_path+"/views/base/index.#{ext}")
|
|
124
|
+
template "templates/#{ext}/app/layouts/application.#{ext}.tt", destination_root(@admin_path+"/views/layouts/application.#{ext}")
|
|
125
|
+
template "templates/#{ext}/app/layouts/error.#{ext}.tt", destination_root(@admin_path+"/views/layouts/error.#{ext}")
|
|
126
|
+
template "templates/#{ext}/app/sessions/new.#{ext}.tt", destination_root(@admin_path+"/views/sessions/new.#{ext}")
|
|
125
127
|
# Custom error.
|
|
126
|
-
template "templates/#{ext}/app/errors/403.#{ext}.tt",
|
|
127
|
-
template "templates/#{ext}/app/errors/404.#{ext}.tt",
|
|
128
|
-
template "templates/#{ext}/app/errors/500.#{ext}.tt",
|
|
128
|
+
template "templates/#{ext}/app/errors/403.#{ext}.tt", destination_root(@admin_path+"/views/errors/403.#{ext}")
|
|
129
|
+
template "templates/#{ext}/app/errors/404.#{ext}.tt", destination_root(@admin_path+"/views/errors/404.#{ext}")
|
|
130
|
+
template "templates/#{ext}/app/errors/500.#{ext}.tt", destination_root(@admin_path+"/views/errors/500.#{ext}")
|
|
129
131
|
|
|
130
132
|
unless options[:destroy]
|
|
131
133
|
add_project_module @model_plural
|
|
@@ -137,7 +139,7 @@ module Padrino
|
|
|
137
139
|
# gsub_file destination_root("admin/views/#{@model_plural}/_form.#{ext}"), "f.text_field :role, :class => :text_field", "f.select :role, :options => access_control.roles"
|
|
138
140
|
|
|
139
141
|
# Destroy account only if not logged in.
|
|
140
|
-
gsub_file destination_root("
|
|
142
|
+
gsub_file destination_root(@admin_path+"/controllers/#{@model_plural}.rb"), "if #{@model_singular}.destroy", "if #{@model_singular} != current_account && #{@model_singular}.destroy"
|
|
141
143
|
return if self.behavior == :revoke
|
|
142
144
|
|
|
143
145
|
instructions = []
|
|
@@ -145,7 +147,7 @@ module Padrino
|
|
|
145
147
|
instructions << "Run 'bundle exec rake db:migrate'" if (orm == :activerecord || orm == :datamapper || orm == :sequel)
|
|
146
148
|
instructions << "Now repeat after me... 'ohm mani padme hum', 'ohm mani padme hum'... :)" if orm == :ohm
|
|
147
149
|
instructions << "Run 'bundle exec rake db:seed'"
|
|
148
|
-
instructions << "Visit the admin panel in the browser at '
|
|
150
|
+
instructions << "Visit the admin panel in the browser at '/#{@admin_path}'"
|
|
149
151
|
instructions.map! { |i| " #{instructions.index(i)+1}) #{i}" }
|
|
150
152
|
|
|
151
153
|
say
|
|
@@ -22,7 +22,7 @@ module Padrino
|
|
|
22
22
|
|
|
23
23
|
# Look for custom template files in a generators folder under the project root.
|
|
24
24
|
def source_paths
|
|
25
|
-
if File.
|
|
25
|
+
if File.exist? destination_root('generators')
|
|
26
26
|
["#{destination_root('generators')}", File.expand_path(File.dirname(__FILE__))]
|
|
27
27
|
else
|
|
28
28
|
[File.expand_path(File.dirname(__FILE__))]
|
|
@@ -32,32 +32,30 @@ module Padrino
|
|
|
32
32
|
desc "Description:\n\n\tpadrino-gen admin_page model(s)"
|
|
33
33
|
argument :models, :desc => "The name(s) of your model(s)", :type => :array
|
|
34
34
|
class_option :skip_migration, :aliases => "-s", :default => false, :type => :boolean
|
|
35
|
-
# TODO FIXME Review these and implement accordingly.
|
|
36
|
-
# See https://github.com/padrino/padrino-framework/issues/854#issuecomment-14749356
|
|
37
|
-
# class_option :app, :desc => 'The application destination path', :aliases => '-a', :default => '/app', :type => :string
|
|
38
35
|
class_option :root, :desc => "The root destination", :aliases => '-r', :type => :string
|
|
39
36
|
class_option :destroy, :aliases => '-d', :default => false, :type => :boolean
|
|
37
|
+
class_option :admin_name, :aliases => '-a', :desc => 'The admin application name and path', :default => 'admin', :type => :string
|
|
40
38
|
# Show help if no argv given.
|
|
41
39
|
require_arguments!
|
|
42
40
|
|
|
43
41
|
# Create controller for admin.
|
|
44
42
|
def create_controller
|
|
45
43
|
self.destination_root = options[:root]
|
|
46
|
-
# TODO FIXME ??? Review
|
|
47
|
-
# self.source_paths.unshift Padrino.root("vendor/padrino-admin/generators")
|
|
48
44
|
if in_app_root?
|
|
49
45
|
@app_name = fetch_app_name
|
|
46
|
+
@admin_name = options[:admin_name].classify
|
|
47
|
+
@admin_path = options[:admin_name].underscore
|
|
50
48
|
@admin_model = options[:admin_model]
|
|
51
49
|
models.each do |model|
|
|
52
50
|
@orm = default_orm || Padrino::Admin::Generators::Orm.new(model, adapter)
|
|
53
51
|
self.behavior = :revoke if options[:destroy]
|
|
54
|
-
empty_directory destination_root("/
|
|
52
|
+
empty_directory destination_root(@admin_path+"/views/#{@orm.name_plural}")
|
|
55
53
|
|
|
56
|
-
template "templates/page/controller.rb.tt", destination_root("/
|
|
57
|
-
template "templates/#{ext}/page/_form.#{ext}.tt", destination_root("/
|
|
58
|
-
template "templates/#{ext}/page/edit.#{ext}.tt", destination_root("/
|
|
59
|
-
template "templates/#{ext}/page/index.#{ext}.tt", destination_root("/
|
|
60
|
-
template "templates/#{ext}/page/new.#{ext}.tt", destination_root("/
|
|
54
|
+
template "templates/page/controller.rb.tt", destination_root(@admin_path+"/controllers/#{@orm.name_plural}.rb")
|
|
55
|
+
template "templates/#{ext}/page/_form.#{ext}.tt", destination_root(@admin_path+"/views/#{@orm.name_plural}/_form.#{ext}")
|
|
56
|
+
template "templates/#{ext}/page/edit.#{ext}.tt", destination_root(@admin_path+"/views/#{@orm.name_plural}/edit.#{ext}")
|
|
57
|
+
template "templates/#{ext}/page/index.#{ext}.tt", destination_root(@admin_path+"/views/#{@orm.name_plural}/index.#{ext}")
|
|
58
|
+
template "templates/#{ext}/page/new.#{ext}.tt", destination_root(@admin_path+"/views/#{@orm.name_plural}/new.#{ext}")
|
|
61
59
|
|
|
62
60
|
options[:destroy] ? remove_project_module(@orm.name_plural) : add_project_module(@orm.name_plural)
|
|
63
61
|
end
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
module <%= @app_name %>
|
|
2
|
-
class
|
|
2
|
+
class <%= @admin_name %> < Padrino::Application
|
|
3
3
|
register Padrino::Rendering
|
|
4
4
|
register Padrino::Mailer
|
|
5
5
|
register Padrino::Helpers
|
|
@@ -22,7 +22,7 @@ module <%= @app_name %>
|
|
|
22
22
|
#
|
|
23
23
|
|
|
24
24
|
set :admin_model, '<%= @model_name %>'
|
|
25
|
-
set :login_page, '/
|
|
25
|
+
set :login_page, '/sessions/new'
|
|
26
26
|
|
|
27
27
|
enable :sessions
|
|
28
28
|
disable :store_location
|
|
@@ -26,7 +26,7 @@
|
|
|
26
26
|
%ul.nav.navbar-nav.pull-left
|
|
27
27
|
- project_modules.each do |project_module|
|
|
28
28
|
%li{:class => "navbar-module #{('active' if request.path_info =~ /^#{project_module.path}/)}"}
|
|
29
|
-
=link_to project_module.human_name, project_module.path
|
|
29
|
+
=link_to project_module.human_name, url(project_module.path)
|
|
30
30
|
|
|
31
31
|
.container.main
|
|
32
32
|
.main-wrapper
|
|
@@ -26,7 +26,7 @@ html lang='en'
|
|
|
26
26
|
ul class='nav navbar-nav pull-left'
|
|
27
27
|
- project_modules.each do |project_module|
|
|
28
28
|
li class=("navbar-module #{'active' if request.path_info =~ /^#{project_module.path}/}")
|
|
29
|
-
= link_to project_module.human_name, project_module.path
|
|
29
|
+
= link_to project_module.human_name, url(project_module.path)
|
|
30
30
|
|
|
31
31
|
div class='container main'
|
|
32
32
|
div class='main-wrapper'
|
|
@@ -78,23 +78,19 @@ module Padrino
|
|
|
78
78
|
private
|
|
79
79
|
|
|
80
80
|
def access_denied
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
redirect(login_page)
|
|
81
|
+
if login_page.present?
|
|
82
|
+
redirect url(login_page)
|
|
84
83
|
else
|
|
85
84
|
halt 401, "You don't have permission for this resource"
|
|
86
85
|
end
|
|
87
86
|
end
|
|
88
87
|
|
|
89
88
|
def login_page
|
|
90
|
-
login_page
|
|
91
|
-
return unless login_page
|
|
92
|
-
login_page = File.join(ENV['RACK_BASE_URI'].to_s, login_page) if ENV['RACK_BASE_URI']
|
|
93
|
-
login_page
|
|
89
|
+
settings.respond_to?(:login_page) && settings.login_page
|
|
94
90
|
end
|
|
95
91
|
|
|
96
92
|
def store_location
|
|
97
|
-
settings.store_location
|
|
93
|
+
settings.respond_to?(:store_location) && settings.store_location
|
|
98
94
|
end
|
|
99
95
|
|
|
100
96
|
def login_from_session
|
|
@@ -104,7 +100,7 @@ module Padrino
|
|
|
104
100
|
def admin_model_obj
|
|
105
101
|
@_admin_model_obj ||= settings.admin_model.constantize
|
|
106
102
|
rescue NameError
|
|
107
|
-
raise Padrino::Admin::AccessControlError, "You must define an #{settings.admin_model} Model
|
|
103
|
+
raise Padrino::Admin::AccessControlError, "You must define an #{settings.admin_model} Model"
|
|
108
104
|
end
|
|
109
105
|
end
|
|
110
106
|
end
|
|
@@ -47,12 +47,18 @@ describe "AdminAppGenerator" do
|
|
|
47
47
|
assert_file_exists("#{@apptmp}/sample_project/models/account.rb")
|
|
48
48
|
assert_file_exists("#{@apptmp}/sample_project/db/seeds.rb")
|
|
49
49
|
assert_file_exists("#{@apptmp}/sample_project/db/migrate/001_create_accounts.rb")
|
|
50
|
-
assert_match_in_file 'Padrino.mount("SampleProject::Admin", :app_file =>
|
|
50
|
+
assert_match_in_file 'Padrino.mount("SampleProject::Admin", :app_file => Padrino.root(\'admin/app.rb\')).to("/admin")', "#{@apptmp}/sample_project/config/apps.rb"
|
|
51
51
|
assert_match_in_file 'module SampleProject', "#{@apptmp}/sample_project/admin/app.rb"
|
|
52
52
|
assert_match_in_file 'class Admin < Padrino::Application', "#{@apptmp}/sample_project/admin/app.rb"
|
|
53
53
|
assert_match_in_file 'role.project_module :accounts, \'/accounts\'', "#{@apptmp}/sample_project/admin/app.rb"
|
|
54
54
|
end
|
|
55
55
|
|
|
56
|
+
it "should generate the master app" do
|
|
57
|
+
capture_io { generate(:project, 'sample_project', "--root=#{@apptmp}", '-d=activerecord') }
|
|
58
|
+
capture_io { generate(:admin_app, "--root=#{@apptmp}/sample_project", '--admin-name=master') }
|
|
59
|
+
assert_file_exists("#{@apptmp}/sample_project/master/app.rb")
|
|
60
|
+
end
|
|
61
|
+
|
|
56
62
|
# users can override certain templates from a generators/templates folder in the destination_root
|
|
57
63
|
it "should use custom generator templates from the project root, if they exist" do
|
|
58
64
|
capture_io { generate(:project, 'sample_project', "--root=#{@apptmp}", '-d=activerecord') }
|
data/test/helper.rb
CHANGED
|
@@ -67,7 +67,7 @@ class MiniTest::Spec
|
|
|
67
67
|
end
|
|
68
68
|
|
|
69
69
|
def assert_no_match_in_file(pattern, file)
|
|
70
|
-
File.
|
|
70
|
+
File.exist?(file) ? assert_no_match(pattern, File.read(file)) : assert_file_exists(file)
|
|
71
71
|
end
|
|
72
72
|
|
|
73
73
|
# Delegate other missing methods to response.
|
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: padrino-admin
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.12.0.
|
|
4
|
+
version: 0.12.0.rc2
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Padrino Team
|
|
@@ -11,7 +11,7 @@ authors:
|
|
|
11
11
|
autorequire:
|
|
12
12
|
bindir: bin
|
|
13
13
|
cert_chain: []
|
|
14
|
-
date:
|
|
14
|
+
date: 2014-01-05 00:00:00.000000000 Z
|
|
15
15
|
dependencies:
|
|
16
16
|
- !ruby/object:Gem::Dependency
|
|
17
17
|
name: padrino-core
|
|
@@ -19,28 +19,28 @@ dependencies:
|
|
|
19
19
|
requirements:
|
|
20
20
|
- - '='
|
|
21
21
|
- !ruby/object:Gem::Version
|
|
22
|
-
version: 0.12.0.
|
|
22
|
+
version: 0.12.0.rc2
|
|
23
23
|
type: :runtime
|
|
24
24
|
prerelease: false
|
|
25
25
|
version_requirements: !ruby/object:Gem::Requirement
|
|
26
26
|
requirements:
|
|
27
27
|
- - '='
|
|
28
28
|
- !ruby/object:Gem::Version
|
|
29
|
-
version: 0.12.0.
|
|
29
|
+
version: 0.12.0.rc2
|
|
30
30
|
- !ruby/object:Gem::Dependency
|
|
31
31
|
name: padrino-helpers
|
|
32
32
|
requirement: !ruby/object:Gem::Requirement
|
|
33
33
|
requirements:
|
|
34
34
|
- - '='
|
|
35
35
|
- !ruby/object:Gem::Version
|
|
36
|
-
version: 0.12.0.
|
|
36
|
+
version: 0.12.0.rc2
|
|
37
37
|
type: :runtime
|
|
38
38
|
prerelease: false
|
|
39
39
|
version_requirements: !ruby/object:Gem::Requirement
|
|
40
40
|
requirements:
|
|
41
41
|
- - '='
|
|
42
42
|
- !ruby/object:Gem::Version
|
|
43
|
-
version: 0.12.0.
|
|
43
|
+
version: 0.12.0.rc2
|
|
44
44
|
- !ruby/object:Gem::Dependency
|
|
45
45
|
name: therubyracer
|
|
46
46
|
requirement: !ruby/object:Gem::Requirement
|