typus 3.1.0.rc17 → 3.1.0.rc18
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/README.md +1 -1
- data/Rakefile +60 -8
- data/app/assets/stylesheets/typus/sidebar.css +8 -0
- data/app/helpers/admin/resources/data_types/date_helper.rb +1 -1
- data/app/helpers/admin/resources/data_types/string_helper.rb +1 -1
- data/app/helpers/admin/resources/form_helper.rb +1 -1
- data/app/views/admin/resources/new.html.erb +1 -0
- data/app/views/admin/templates/_selector.html.erb +1 -1
- data/lib/generators/templates/view.html.erb +10 -6
- data/lib/support/active_record.rb +9 -5
- data/lib/typus.rb +1 -0
- data/lib/typus/authentication/session.rb +3 -7
- data/lib/typus/controller/ancestry.rb +30 -0
- data/lib/typus/controller/format.rb +1 -6
- data/lib/typus/orm/active_record/class_methods.rb +63 -68
- data/lib/typus/orm/active_record/user/class_methods.rb +2 -2
- data/lib/typus/orm/active_record/user/instance_methods.rb +4 -0
- data/lib/typus/orm/mongo/class_methods.rb +3 -0
- data/lib/typus/version.rb +1 -1
- metadata +22 -23
data/README.md
CHANGED
@@ -32,7 +32,7 @@ Add **Typus** to your `Gemfile`
|
|
32
32
|
gem 'typus', '~> 3.1.0.rc'
|
33
33
|
|
34
34
|
# Bundle edge typus instead:
|
35
|
-
# gem 'typus', :git => 'git://github.com/typus/typus.git'
|
35
|
+
# gem 'typus', :git => 'git://github.com/typus/typus.git'
|
36
36
|
|
37
37
|
Update your bundle, run the generator and start the application server:
|
38
38
|
|
data/Rakefile
CHANGED
@@ -22,15 +22,8 @@ RDoc::Task.new do |rdoc|
|
|
22
22
|
rdoc.rdoc_files.include('lib/**/*.rb')
|
23
23
|
end
|
24
24
|
|
25
|
-
RUBIES = %w[1.8.7 ree 1.9.2 jruby].join(",")
|
26
|
-
|
27
25
|
namespace :setup do
|
28
26
|
|
29
|
-
desc "Setup test environment"
|
30
|
-
task :test_environment do
|
31
|
-
system "rvm install #{RUBIES}"
|
32
|
-
end
|
33
|
-
|
34
27
|
desc "Setup CI Joe"
|
35
28
|
task :cijoe do
|
36
29
|
system "git config --replace-all cijoe.runner 'rake test:rubies'"
|
@@ -38,10 +31,69 @@ namespace :setup do
|
|
38
31
|
|
39
32
|
end
|
40
33
|
|
34
|
+
namespace :install do
|
35
|
+
|
36
|
+
desc "Install REE on Mac OS X Lion"
|
37
|
+
task :ree_on_lion do
|
38
|
+
system "rvm remove ree"
|
39
|
+
system "export CC=/usr/bin/gcc-4.2"
|
40
|
+
system "rvm install --force ree"
|
41
|
+
end
|
42
|
+
|
43
|
+
desc "Install JRuby and update Rubygems to latest version."
|
44
|
+
task :jruby_on_lion do
|
45
|
+
system "rvm remove jruby"
|
46
|
+
system "rvm install --force jruby"
|
47
|
+
system "rvm use jruby"
|
48
|
+
system "gem install rubygems-update"
|
49
|
+
system "update_rubygems"
|
50
|
+
system "gem update --system"
|
51
|
+
end
|
52
|
+
|
53
|
+
desc "Install common Rubies"
|
54
|
+
task :rubies do
|
55
|
+
system "rvm install 1.8.7,ree,1.9.2,jruby"
|
56
|
+
end
|
57
|
+
|
58
|
+
desc "Install latest Rubygems"
|
59
|
+
task :latest_rubygems do
|
60
|
+
system "rvm ruby gem update --system"
|
61
|
+
end
|
62
|
+
|
63
|
+
desc "Install bundler and rake"
|
64
|
+
task :bundler_and_rake do
|
65
|
+
system "rvm ruby gem install --no-ri --no-rdoc bundler rake"
|
66
|
+
end
|
67
|
+
|
68
|
+
desc "Run bundle in all Ruby versions."
|
69
|
+
task :gems do
|
70
|
+
system "rvm ruby bundle install --gemfile=test/fixtures/rails_app/Gemfile"
|
71
|
+
end
|
72
|
+
|
73
|
+
end
|
74
|
+
|
41
75
|
namespace :test do
|
42
76
|
|
77
|
+
# Typus should be compatible with Ruby 1.8.7 and 1.9.2. Currently tests only
|
78
|
+
# pass when using 1.9.2 because on 1.8.7 we get an error because `fastercsv`
|
79
|
+
# is not loaded. This is because I've not added that library in the Gemfile.
|
80
|
+
desc "Test officially supported Ruby versions and database adapters"
|
81
|
+
task :supported do
|
82
|
+
system "rvm 1.9.2 rake test DB=sqlite3"
|
83
|
+
system "rvm 1.9.2 rake test DB=postgresql"
|
84
|
+
system "rvm 1.9.2 rake test DB=mysql"
|
85
|
+
end
|
86
|
+
|
87
|
+
# We want to test Typus with all supported databases:
|
88
|
+
#
|
89
|
+
# - Postgresql
|
90
|
+
# - MySQL
|
91
|
+
# - SQLite3
|
92
|
+
#
|
43
93
|
task :rubies do
|
44
|
-
system "rvm
|
94
|
+
system "rvm ruby rake DB=sqlite3"
|
95
|
+
system "rvm ruby rake DB=postgresql"
|
96
|
+
system "rvm ruby rake DB=mysql"
|
45
97
|
end
|
46
98
|
|
47
99
|
end
|
@@ -2,7 +2,7 @@ module Admin::Resources::DataTypes::DateHelper
|
|
2
2
|
|
3
3
|
def date_filter(filter)
|
4
4
|
values = %w(today last_few_days last_7_days last_30_days)
|
5
|
-
items = [[
|
5
|
+
items = [[@resource.human_attribute_name(filter).capitalize, ""]]
|
6
6
|
items += values.map { |v| [Typus::I18n.t(v.humanize), v] }
|
7
7
|
end
|
8
8
|
|
@@ -11,7 +11,7 @@ module Admin::Resources::DataTypes::StringHelper
|
|
11
11
|
alias_method :display_text, :display_string
|
12
12
|
|
13
13
|
def string_filter(filter)
|
14
|
-
values = set_context.send(filter.to_s).to_a
|
14
|
+
values = set_context.send(filter.to_s.pluralize).to_a
|
15
15
|
|
16
16
|
items = [[Typus::I18n.t("Show by %{attribute}", :attribute => @resource.human_attribute_name(filter).downcase), ""]]
|
17
17
|
array = values.first.is_a?(Array) ? values : values.map { |i| [i, i] }
|
@@ -63,7 +63,7 @@ module Admin::Resources::FormHelper
|
|
63
63
|
end
|
64
64
|
|
65
65
|
def save_options_for_user_class
|
66
|
-
return unless Typus.user_class == @resource && admin_user.is_not_root?
|
66
|
+
return unless !defined?(Typus.user_class) && Typus.user_class == @resource && admin_user.is_not_root?
|
67
67
|
{ "_continue" => "Save and continue editing" }
|
68
68
|
end
|
69
69
|
|
@@ -10,5 +10,5 @@
|
|
10
10
|
|
11
11
|
<li id="<%= attribute_id %>">
|
12
12
|
<%= form.label attribute, "#{label_text} <small>#{message}</small>".html_safe %>
|
13
|
-
<%= form.select attribute, @resource.send(attribute), options, html_options %>
|
13
|
+
<%= form.select attribute, @resource.send(attribute.pluralize), options, html_options %>
|
14
14
|
</li>
|
@@ -1,9 +1,13 @@
|
|
1
|
-
|
1
|
+
<% content_for :main_grid do %>
|
2
|
+
<h2><%= resource.titleize %></h2>
|
2
3
|
|
3
|
-
|
4
|
+
<p>Find me in app/views/<%= resource.underscore %>/index.html.erb</p>
|
5
|
+
<% end %>
|
4
6
|
|
5
|
-
|
7
|
+
<div class="grid_2">
|
8
|
+
<%= sidebar %>
|
9
|
+
</div>
|
6
10
|
|
7
|
-
<
|
8
|
-
|
9
|
-
|
11
|
+
<div class="grid_8">
|
12
|
+
<%= yield :main_grid %>
|
13
|
+
</div>
|
@@ -10,9 +10,11 @@ class ActiveRecord::Base
|
|
10
10
|
# On a model:
|
11
11
|
#
|
12
12
|
# class Post < ActiveRecord::Base
|
13
|
-
#
|
14
|
-
#
|
15
|
-
#
|
13
|
+
# def self.statuses
|
14
|
+
# { t("Published") => "published",
|
15
|
+
# t("Pending") => "pending",
|
16
|
+
# t("Draft") => "draft" }
|
17
|
+
# end
|
16
18
|
# end
|
17
19
|
#
|
18
20
|
# >> Post.first.status
|
@@ -26,7 +28,7 @@ class ActiveRecord::Base
|
|
26
28
|
#++
|
27
29
|
def mapping(attribute)
|
28
30
|
klass = self.class
|
29
|
-
values = klass.send(attribute)
|
31
|
+
values = klass.send(attribute.to_s.pluralize)
|
30
32
|
|
31
33
|
array = values.first.is_a?(Array) ? values : values.map { |i| [i, i] }
|
32
34
|
|
@@ -34,7 +36,7 @@ class ActiveRecord::Base
|
|
34
36
|
value ? value.first : send(attribute)
|
35
37
|
end
|
36
38
|
|
37
|
-
def
|
39
|
+
def to_str
|
38
40
|
if respond_to?(:name) && send(:name).present?
|
39
41
|
send(:name)
|
40
42
|
else
|
@@ -42,4 +44,6 @@ class ActiveRecord::Base
|
|
42
44
|
end
|
43
45
|
end
|
44
46
|
|
47
|
+
alias_method :to_label, :to_str
|
48
|
+
|
45
49
|
end
|
data/lib/typus.rb
CHANGED
@@ -22,6 +22,7 @@ module Typus
|
|
22
22
|
module Controller
|
23
23
|
autoload :Actions, "typus/controller/actions"
|
24
24
|
autoload :ActsAsList, "typus/controller/acts_as_list"
|
25
|
+
autoload :Ancestry, "typus/controller/ancestry"
|
25
26
|
autoload :Associations, "typus/controller/associations"
|
26
27
|
autoload :Autocomplete, "typus/controller/autocomplete"
|
27
28
|
autoload :Bulk, "typus/controller/bulk"
|
@@ -7,7 +7,9 @@ module Typus
|
|
7
7
|
include Base
|
8
8
|
|
9
9
|
def authenticate
|
10
|
-
session[:typus_user_id]
|
10
|
+
unless session[:typus_user_id] && admin_user && admin_user.active?
|
11
|
+
deauthenticate
|
12
|
+
end
|
11
13
|
end
|
12
14
|
|
13
15
|
def deauthenticate
|
@@ -21,12 +23,6 @@ module Typus
|
|
21
23
|
#++
|
22
24
|
def admin_user
|
23
25
|
@admin_user ||= Typus.user_class.find_by_id(session[:typus_user_id])
|
24
|
-
|
25
|
-
if !@admin_user || !Typus::Configuration.roles.has_key?(@admin_user.role) || !@admin_user.status
|
26
|
-
deauthenticate
|
27
|
-
end
|
28
|
-
|
29
|
-
@admin_user
|
30
26
|
end
|
31
27
|
|
32
28
|
#--
|
@@ -0,0 +1,30 @@
|
|
1
|
+
module Typus
|
2
|
+
module Controller
|
3
|
+
module Ancestry
|
4
|
+
|
5
|
+
def index
|
6
|
+
items = []
|
7
|
+
|
8
|
+
@resource.roots.each do |item|
|
9
|
+
items << item
|
10
|
+
if item.has_children?
|
11
|
+
item.children.each do |child|
|
12
|
+
items << child
|
13
|
+
if child.has_children?
|
14
|
+
child.children.each do |child|
|
15
|
+
items << child
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
22
|
+
@items = Kaminari.paginate_array(items).page(params[:page]).per(1000)
|
23
|
+
|
24
|
+
add_resource_action(default_action.titleize, {:action => default_action}, {})
|
25
|
+
add_resource_action("Trash", {:action => "destroy"}, {:confirm => "#{Typus::I18n.t("Trash")}?", :method => 'delete'})
|
26
|
+
end
|
27
|
+
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
@@ -22,91 +22,86 @@ module Typus
|
|
22
22
|
# Form and list fields
|
23
23
|
def typus_fields_for(filter)
|
24
24
|
ActiveSupport::OrderedHash.new.tap do |fields_with_type|
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
#
|
31
|
-
|
32
|
-
fields = case filter.to_sym
|
33
|
-
when :list, :form
|
34
|
-
# TODO: This statement is for backwards compatibility
|
35
|
-
# with the current tests, so can be removed in
|
36
|
-
# the near future.
|
37
|
-
data[filter.to_s] || data['default'] || ""
|
38
|
-
when :index
|
39
|
-
data['index'] || data['list'] || data['default'] || ""
|
40
|
-
when :new, :create
|
41
|
-
data['new'] || data['form'] || data['default'] || ""
|
42
|
-
when :edit, :update, :toggle
|
43
|
-
data['edit'] || data['form'] || data['default'] || ""
|
44
|
-
else
|
45
|
-
data[filter.to_s] || data['default'] || ""
|
46
|
-
end
|
47
|
-
|
48
|
-
virtual_fields = instance_methods.map { |i| i.to_s } - model_fields.keys.map { |i| i.to_s }
|
49
|
-
|
50
|
-
fields.extract_settings.map { |f| f.to_sym }.each do |field|
|
51
|
-
if reflect_on_association(field)
|
52
|
-
fields_with_type[field.to_s] = reflect_on_association(field).macro
|
53
|
-
next
|
25
|
+
get_typus_fields_for(filter).each do |field|
|
26
|
+
[:virtual, :custom, :association, :selector, :dragonfly, :paperclip].each do |attribute|
|
27
|
+
if (value = send("#{attribute}_attribute?", field))
|
28
|
+
fields_with_type[field.to_s] = value
|
29
|
+
end
|
54
30
|
end
|
31
|
+
fields_with_type[field.to_s] ||= model_fields[field]
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
55
35
|
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
36
|
+
def get_typus_fields_for(filter)
|
37
|
+
data = read_model_config['fields']
|
38
|
+
fields = case filter.to_sym
|
39
|
+
when :index then data['index'] || data['list']
|
40
|
+
when :new, :create then data['new'] || data['form']
|
41
|
+
when :edit, :update, :toggle then data['edit'] || data['form']
|
42
|
+
else
|
43
|
+
data[filter.to_s]
|
44
|
+
end
|
45
|
+
|
46
|
+
fields ||= data['default'] || typus_default_fields_for(filter)
|
47
|
+
fields = fields.extract_settings if fields.is_a?(String)
|
48
|
+
fields.map { |f| f.to_sym }
|
49
|
+
end
|
60
50
|
|
61
|
-
|
62
|
-
|
51
|
+
def typus_default_fields_for(filter)
|
52
|
+
filter.to_sym.eql?(:index) ? ['id'] : model_fields.keys
|
53
|
+
end
|
63
54
|
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
end
|
55
|
+
def virtual_fields
|
56
|
+
instance_methods.map { |i| i.to_s } - model_fields.keys.map { |i| i.to_s }
|
57
|
+
end
|
68
58
|
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
end
|
59
|
+
def virtual_attribute?(field)
|
60
|
+
:virtual if virtual_fields.include?(field.to_s)
|
61
|
+
end
|
73
62
|
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
63
|
+
def dragonfly_attribute?(field)
|
64
|
+
if respond_to?(:dragonfly_attachment_classes) && dragonfly_attachment_classes.map { |i| i.attribute }.include?(field)
|
65
|
+
:dragonfly
|
66
|
+
end
|
67
|
+
end
|
68
|
+
|
69
|
+
def paperclip_attribute?(field)
|
70
|
+
if respond_to?(:attachment_definitions) && attachment_definitions.try(:has_key?, field)
|
71
|
+
:paperclip
|
72
|
+
end
|
73
|
+
end
|
78
74
|
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
when 'position' then :position
|
83
|
-
when /\./ then :transversal
|
84
|
-
else
|
85
|
-
if fields_with_type[field.to_s]
|
86
|
-
fields_with_type[field.to_s]
|
87
|
-
else
|
88
|
-
model_fields[field]
|
89
|
-
end
|
90
|
-
end
|
75
|
+
def selector_attribute?(field)
|
76
|
+
:selector if typus_field_options_for(:selectors).include?(field)
|
77
|
+
end
|
91
78
|
|
92
|
-
|
79
|
+
def association_attribute?(field)
|
80
|
+
reflect_on_association(field).macro if reflect_on_association(field)
|
81
|
+
end
|
82
|
+
|
83
|
+
def custom_attribute?(field)
|
84
|
+
case field.to_s
|
85
|
+
when 'parent', 'parent_id' then :tree
|
86
|
+
when /password/ then :password
|
87
|
+
when 'position' then :position
|
88
|
+
when /\./ then :transversal
|
93
89
|
end
|
94
90
|
end
|
95
91
|
|
96
92
|
def typus_filters
|
97
93
|
ActiveSupport::OrderedHash.new.tap do |fields_with_type|
|
98
|
-
|
99
|
-
|
100
|
-
attribute_type = model_fields[field.to_sym]
|
101
|
-
if reflect_on_association(field.to_sym)
|
102
|
-
attribute_type = reflect_on_association(field.to_sym).macro
|
103
|
-
end
|
104
|
-
fields_with_type[field.to_s] = attribute_type
|
105
|
-
end
|
94
|
+
get_typus_filters.each do |field|
|
95
|
+
fields_with_type[field.to_s] = association_attribute?(field) || model_fields[field.to_sym]
|
106
96
|
end
|
107
97
|
end
|
108
98
|
end
|
109
99
|
|
100
|
+
def get_typus_filters
|
101
|
+
data = read_model_config['filters'] || ""
|
102
|
+
data.extract_settings.map { |i| i.to_sym }
|
103
|
+
end
|
104
|
+
|
110
105
|
end
|
111
106
|
end
|
112
107
|
end
|
data/lib/typus/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: typus
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 3.1.0.
|
4
|
+
version: 3.1.0.rc18
|
5
5
|
prerelease: 6
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,12 +9,11 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2011-
|
13
|
-
default_executable:
|
12
|
+
date: 2011-08-12 00:00:00.000000000Z
|
14
13
|
dependencies:
|
15
14
|
- !ruby/object:Gem::Dependency
|
16
15
|
name: dragonfly
|
17
|
-
requirement: &
|
16
|
+
requirement: &70096177538180 !ruby/object:Gem::Requirement
|
18
17
|
none: false
|
19
18
|
requirements:
|
20
19
|
- - ~>
|
@@ -22,10 +21,10 @@ dependencies:
|
|
22
21
|
version: '0.9'
|
23
22
|
type: :development
|
24
23
|
prerelease: false
|
25
|
-
version_requirements: *
|
24
|
+
version_requirements: *70096177538180
|
26
25
|
- !ruby/object:Gem::Dependency
|
27
26
|
name: jquery-rails
|
28
|
-
requirement: &
|
27
|
+
requirement: &70096175063500 !ruby/object:Gem::Requirement
|
29
28
|
none: false
|
30
29
|
requirements:
|
31
30
|
- - ! '>='
|
@@ -33,10 +32,10 @@ dependencies:
|
|
33
32
|
version: '0'
|
34
33
|
type: :development
|
35
34
|
prerelease: false
|
36
|
-
version_requirements: *
|
35
|
+
version_requirements: *70096175063500
|
37
36
|
- !ruby/object:Gem::Dependency
|
38
37
|
name: paperclip
|
39
|
-
requirement: &
|
38
|
+
requirement: &70096175063040 !ruby/object:Gem::Requirement
|
40
39
|
none: false
|
41
40
|
requirements:
|
42
41
|
- - ! '>='
|
@@ -44,10 +43,10 @@ dependencies:
|
|
44
43
|
version: '0'
|
45
44
|
type: :development
|
46
45
|
prerelease: false
|
47
|
-
version_requirements: *
|
46
|
+
version_requirements: *70096175063040
|
48
47
|
- !ruby/object:Gem::Dependency
|
49
48
|
name: rack-cache
|
50
|
-
requirement: &
|
49
|
+
requirement: &70096175062620 !ruby/object:Gem::Requirement
|
51
50
|
none: false
|
52
51
|
requirements:
|
53
52
|
- - ! '>='
|
@@ -55,10 +54,10 @@ dependencies:
|
|
55
54
|
version: '0'
|
56
55
|
type: :development
|
57
56
|
prerelease: false
|
58
|
-
version_requirements: *
|
57
|
+
version_requirements: *70096175062620
|
59
58
|
- !ruby/object:Gem::Dependency
|
60
59
|
name: rails-trash
|
61
|
-
requirement: &
|
60
|
+
requirement: &70096175062120 !ruby/object:Gem::Requirement
|
62
61
|
none: false
|
63
62
|
requirements:
|
64
63
|
- - ~>
|
@@ -66,10 +65,10 @@ dependencies:
|
|
66
65
|
version: 1.1.1
|
67
66
|
type: :development
|
68
67
|
prerelease: false
|
69
|
-
version_requirements: *
|
68
|
+
version_requirements: *70096175062120
|
70
69
|
- !ruby/object:Gem::Dependency
|
71
70
|
name: jquery-rails
|
72
|
-
requirement: &
|
71
|
+
requirement: &70096175061700 !ruby/object:Gem::Requirement
|
73
72
|
none: false
|
74
73
|
requirements:
|
75
74
|
- - ! '>='
|
@@ -77,10 +76,10 @@ dependencies:
|
|
77
76
|
version: '0'
|
78
77
|
type: :runtime
|
79
78
|
prerelease: false
|
80
|
-
version_requirements: *
|
79
|
+
version_requirements: *70096175061700
|
81
80
|
- !ruby/object:Gem::Dependency
|
82
81
|
name: kaminari
|
83
|
-
requirement: &
|
82
|
+
requirement: &70096175061240 !ruby/object:Gem::Requirement
|
84
83
|
none: false
|
85
84
|
requirements:
|
86
85
|
- - ! '>='
|
@@ -88,10 +87,10 @@ dependencies:
|
|
88
87
|
version: '0'
|
89
88
|
type: :runtime
|
90
89
|
prerelease: false
|
91
|
-
version_requirements: *
|
90
|
+
version_requirements: *70096175061240
|
92
91
|
- !ruby/object:Gem::Dependency
|
93
92
|
name: sass-rails
|
94
|
-
requirement: &
|
93
|
+
requirement: &70096175060740 !ruby/object:Gem::Requirement
|
95
94
|
none: false
|
96
95
|
requirements:
|
97
96
|
- - ~>
|
@@ -99,10 +98,10 @@ dependencies:
|
|
99
98
|
version: 3.1.0.rc.2
|
100
99
|
type: :runtime
|
101
100
|
prerelease: false
|
102
|
-
version_requirements: *
|
101
|
+
version_requirements: *70096175060740
|
103
102
|
- !ruby/object:Gem::Dependency
|
104
103
|
name: rails
|
105
|
-
requirement: &
|
104
|
+
requirement: &70096175060240 !ruby/object:Gem::Requirement
|
106
105
|
none: false
|
107
106
|
requirements:
|
108
107
|
- - ~>
|
@@ -110,7 +109,7 @@ dependencies:
|
|
110
109
|
version: 3.1.0.rc4
|
111
110
|
type: :runtime
|
112
111
|
prerelease: false
|
113
|
-
version_requirements: *
|
112
|
+
version_requirements: *70096175060240
|
114
113
|
description: Ruby on Rails Admin Panel (Engine) to allow trusted users edit structured
|
115
114
|
content.
|
116
115
|
email:
|
@@ -270,6 +269,7 @@ files:
|
|
270
269
|
- lib/typus/configuration.rb
|
271
270
|
- lib/typus/controller/actions.rb
|
272
271
|
- lib/typus/controller/acts_as_list.rb
|
272
|
+
- lib/typus/controller/ancestry.rb
|
273
273
|
- lib/typus/controller/associations.rb
|
274
274
|
- lib/typus/controller/autocomplete.rb
|
275
275
|
- lib/typus/controller/bulk.rb
|
@@ -383,7 +383,6 @@ files:
|
|
383
383
|
- config/locales/typus.ru.yml
|
384
384
|
- config/locales/typus.zh-CN.models.yml
|
385
385
|
- config/locales/typus.zh-CN.yml
|
386
|
-
has_rdoc: true
|
387
386
|
homepage: http://core.typuscms.com/
|
388
387
|
licenses: []
|
389
388
|
post_install_message:
|
@@ -404,7 +403,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
404
403
|
version: 1.3.1
|
405
404
|
requirements: []
|
406
405
|
rubyforge_project: typus
|
407
|
-
rubygems_version: 1.
|
406
|
+
rubygems_version: 1.8.7
|
408
407
|
signing_key:
|
409
408
|
specification_version: 3
|
410
409
|
summary: Effortless backend interface for Ruby on Rails applications. (Admin scaffold
|