caboose-cms 0.5.28 → 0.5.30
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +8 -8
- data/Rakefile +10 -25
- data/app/assets/javascripts/caboose/admin_page_edit_content.js +68 -43
- data/app/assets/stylesheets/caboose/admin_page_edit_content.css +18 -9
- data/app/controllers/caboose/blocks_controller.rb +24 -17
- data/app/models/caboose/block.rb +54 -19
- data/app/models/caboose/user.rb +2 -0
- data/app/views/caboose/pages/admin_edit_content.html.erb +12 -9
- data/lib/caboose.rb +4 -0
- data/lib/caboose/engine.rb +10 -1
- data/lib/caboose/version.rb +1 -1
- data/lib/tasks/caboose.rake +6 -22
- data/lib/tasks/caboose_sync.rake +112 -0
- data/spec/factories/caboose_blocks.rb +20 -0
- data/spec/factories/caboose_users.rb +19 -0
- data/spec/models/block_spec.rb +114 -0
- data/spec/models/user_spec.rb +9 -0
- metadata +109 -68
- data/test/caboose_test.rb +0 -7
- data/test/dummy/README.rdoc +0 -261
- data/test/dummy/Rakefile +0 -7
- data/test/dummy/app/assets/javascripts/application.js +0 -15
- data/test/dummy/app/assets/stylesheets/application.css +0 -13
- data/test/dummy/app/controllers/application_controller.rb +0 -3
- data/test/dummy/app/helpers/application_helper.rb +0 -2
- data/test/dummy/app/views/layouts/application.html.erb +0 -14
- data/test/dummy/config.ru +0 -4
- data/test/dummy/config/application.rb +0 -59
- data/test/dummy/config/boot.rb +0 -10
- data/test/dummy/config/database.yml +0 -25
- data/test/dummy/config/environment.rb +0 -5
- data/test/dummy/config/environments/development.rb +0 -37
- data/test/dummy/config/environments/production.rb +0 -67
- data/test/dummy/config/environments/test.rb +0 -37
- data/test/dummy/config/initializers/backtrace_silencers.rb +0 -7
- data/test/dummy/config/initializers/inflections.rb +0 -15
- data/test/dummy/config/initializers/mime_types.rb +0 -5
- data/test/dummy/config/initializers/secret_token.rb +0 -7
- data/test/dummy/config/initializers/session_store.rb +0 -8
- data/test/dummy/config/initializers/wrap_parameters.rb +0 -14
- data/test/dummy/config/locales/en.yml +0 -5
- data/test/dummy/config/routes.rb +0 -4
- data/test/dummy/db/test.sqlite3 +0 -0
- data/test/dummy/log/test.log +0 -25
- data/test/dummy/public/404.html +0 -26
- data/test/dummy/public/422.html +0 -26
- data/test/dummy/public/500.html +0 -25
- data/test/dummy/public/favicon.ico +0 -0
- data/test/dummy/script/rails +0 -6
- data/test/integration/navigation_test.rb +0 -10
- data/test/test_helper.rb +0 -15
data/lib/caboose/version.rb
CHANGED
data/lib/tasks/caboose.rake
CHANGED
@@ -1,6 +1,11 @@
|
|
1
1
|
require "caboose/version"
|
2
2
|
|
3
|
-
namespace :caboose do
|
3
|
+
namespace :caboose do
|
4
|
+
|
5
|
+
desc "Run rspec tests on Caboose"
|
6
|
+
task :test => :environment do
|
7
|
+
system("rspec #{Caboose::root}/spec")
|
8
|
+
end
|
4
9
|
|
5
10
|
desc "Creates/verifies that all database tables and fields are correctly added."
|
6
11
|
task :db => :environment do
|
@@ -30,27 +35,6 @@ namespace :caboose do
|
|
30
35
|
admin_user.password = Digest::SHA1.hexdigest(Caboose::salt + 'caboose')
|
31
36
|
admin_user.save
|
32
37
|
end
|
33
|
-
|
34
|
-
desc "Sync production db to development"
|
35
|
-
task :sync_dev_db, :app_name, :dump_dir do |t, args|
|
36
|
-
app_name = args[:app_name] ? " --app #{args[:app_name]}" : ''
|
37
|
-
dump_dir = args[:dump_dir] ? args[:dump_dir] : "#{Rails.root}/db/backups"
|
38
|
-
`mkdir -p #{dump_dir}` if !File.exists?(dump_dir)
|
39
|
-
|
40
|
-
# Get the db conf
|
41
|
-
ddb = Rails.application.config.database_configuration['development']
|
42
|
-
pdb = Rails.application.config.database_configuration['production']
|
43
|
-
dump_file = "#{dump_dir}/#{pdb['database']}_#{DateTime.now.strftime('%FT%T')}.dump"
|
44
|
-
|
45
|
-
puts "Capturing production database..."
|
46
|
-
`heroku pgbackups:capture --expire#{app_name}`
|
47
|
-
|
48
|
-
puts "Downloading production database dump file..."
|
49
|
-
`curl -o #{dump_file} \`heroku pgbackups:url#{app_name}\``
|
50
|
-
|
51
|
-
puts "Restoring development database from dump file..."
|
52
|
-
`pg_restore --verbose --clean --no-acl --no-owner -h #{ddb['host']} -U #{ddb['username']} -d #{ddb['database']} #{dump_file}`
|
53
|
-
end
|
54
38
|
|
55
39
|
desc "Clears sessions older than the length specified in the caboose config from the sessions table"
|
56
40
|
task :clear_old_sessions => :environment do
|
@@ -0,0 +1,112 @@
|
|
1
|
+
|
2
|
+
namespace :caboose do
|
3
|
+
|
4
|
+
desc "Create YAML test fixtures from data in the development database."
|
5
|
+
task :fixtures => :environment do
|
6
|
+
sql = "SELECT * FROM %s"
|
7
|
+
skip_tables = ["schema_migrations"]
|
8
|
+
ActiveRecord::Base.establish_connection(Rails.env)
|
9
|
+
(ActiveRecord::Base.connection.tables - skip_tables).each do |table_name|
|
10
|
+
|
11
|
+
count = ActiveRecord::Base.connection.select_value("select count(*) from #{table_name}")
|
12
|
+
count = count.to_i
|
13
|
+
data = ''
|
14
|
+
if count > 0
|
15
|
+
i = 1
|
16
|
+
pad_count = Math.log(count, 10).ceil
|
17
|
+
rows = ActiveRecord::Base.connection.select_all(sql % table_name)
|
18
|
+
h = {}
|
19
|
+
rows.each do |row|
|
20
|
+
h["#{table_name}_#{i.to_s.rjust(pad_count, '0')}"] = row
|
21
|
+
i = i + 1
|
22
|
+
end
|
23
|
+
data = h.to_yaml.gsub(/<%([^%])/, '<%%\1')
|
24
|
+
|
25
|
+
#data = rowsdata.inject({}) { |hash, record|
|
26
|
+
# hash["#{table_name}_#{i.succ!}"] = record
|
27
|
+
# hash
|
28
|
+
#}.to_yaml.gsub(/<%([^%])/, '<%%\1')
|
29
|
+
end
|
30
|
+
|
31
|
+
File.open("#{Rails.root}/test/fixtures/#{table_name}.yml", 'w') do |file|
|
32
|
+
file.write data
|
33
|
+
end
|
34
|
+
end
|
35
|
+
|
36
|
+
## Now escape any erb code in there
|
37
|
+
#Dir["#{Rails.root}/test/fixtures/*.yml"].each do |fname|
|
38
|
+
# file = File.open(fname, "rb")
|
39
|
+
# str = file.read
|
40
|
+
# str2 = str.gsub(/<%([^%])/, '<%%\1')
|
41
|
+
# if str2 != str
|
42
|
+
# File.open(fname, 'w') { |file| file.write(str2) }
|
43
|
+
# end
|
44
|
+
#end
|
45
|
+
end
|
46
|
+
|
47
|
+
namespace :sync do
|
48
|
+
|
49
|
+
desc "Sync production database to development database"
|
50
|
+
task :production_to_development do |t, args|
|
51
|
+
sync_db('production', 'development')
|
52
|
+
end
|
53
|
+
|
54
|
+
desc "Sync development database to test database"
|
55
|
+
task :development_to_test do |t, args|
|
56
|
+
sync_db('development', 'test')
|
57
|
+
end
|
58
|
+
|
59
|
+
desc "Sync production database to development database"
|
60
|
+
task :p2d do |t, args|
|
61
|
+
sync_db('production', 'development')
|
62
|
+
end
|
63
|
+
|
64
|
+
desc "Sync development database to test database"
|
65
|
+
task :d2t do |t, args|
|
66
|
+
sync_db('development', 'test')
|
67
|
+
end
|
68
|
+
|
69
|
+
def sync_db(from_db, to_db)
|
70
|
+
# Get the app name
|
71
|
+
app_name = `grep "git@heroku.com" "#{Rails.root}/.git/config"`
|
72
|
+
app_name = app_name.strip.gsub(/^url = git@heroku.com\:(.*?).git$/, '\1')
|
73
|
+
|
74
|
+
# Get the db confs
|
75
|
+
from_conf = Rails.application.config.database_configuration[from_db]
|
76
|
+
to_conf = Rails.application.config.database_configuration[to_db]
|
77
|
+
|
78
|
+
dump_dir = "#{Rails.root}/db/backups"
|
79
|
+
`mkdir -p #{dump_dir}` if !File.exists?(dump_dir)
|
80
|
+
dump_file = "#{dump_dir}/#{app_name}_#{from_db}_#{DateTime.now.strftime('%Y%m%d%H%M')}.dump"
|
81
|
+
|
82
|
+
if from_db == 'production'
|
83
|
+
|
84
|
+
puts "Capturing production database..."
|
85
|
+
`heroku pgbackups:capture --expire --app #{app_name}`
|
86
|
+
|
87
|
+
puts "Downloading production database dump file..."
|
88
|
+
`curl -o #{dump_file} \`heroku pgbackups:url --app #{app_name}\``
|
89
|
+
|
90
|
+
elsif from_db == 'development'
|
91
|
+
|
92
|
+
puts "Dumping development database..."
|
93
|
+
host = from_conf['host'] ? from_conf['host'] : 'localhost'
|
94
|
+
`pg_dump -Fc --no-acl --no-owner -h #{host} -U #{from_conf['username']} #{from_conf['database']} > #{dump_file}`
|
95
|
+
|
96
|
+
end
|
97
|
+
|
98
|
+
if to_db == 'development' || to_db == 'test'
|
99
|
+
|
100
|
+
puts "Restoring database to #{to_db} from dump file..."
|
101
|
+
host = to_conf['host'] ? to_conf['host'] : 'localhost'
|
102
|
+
`pg_restore --verbose --clean --no-acl --no-owner -h #{host} -U #{to_conf['username']} -d #{to_conf['database']} #{dump_file}`
|
103
|
+
|
104
|
+
elsif to_db == 'production'
|
105
|
+
|
106
|
+
puts "Syncing to production database is not supported."
|
107
|
+
|
108
|
+
end
|
109
|
+
end
|
110
|
+
|
111
|
+
end
|
112
|
+
end
|
@@ -0,0 +1,20 @@
|
|
1
|
+
require 'faker'
|
2
|
+
|
3
|
+
FactoryGirl.define do
|
4
|
+
factory :caboose_block, :class => Caboose::Block do |f|
|
5
|
+
f.page_id { nil }
|
6
|
+
f.parent_id { nil }
|
7
|
+
f.block_type_id { nil }
|
8
|
+
f.sort_order { rand(0..10) }
|
9
|
+
f.name { Faker::Internet.user_name }
|
10
|
+
f.value { Faker::Lorem.sentence }
|
11
|
+
f.file_file_name { "#{Faker::Lorem.word}.#{['pdf','xls','csv'].sample}" }
|
12
|
+
f.file_content_type { ['application/pdf','application/xls'].sample }
|
13
|
+
f.file_file_size { rand(100..100000) }
|
14
|
+
f.file_updated_at { Faker::Time.between(1.month.ago, Time.now, :all) }
|
15
|
+
f.image_file_name { "#{Faker::Lorem.word}.#{['gif','jpg','png'].sample}" }
|
16
|
+
f.image_content_type { ['image/gif','image/jpeg','image/png'].sample }
|
17
|
+
f.image_file_size { rand(100..100000) }
|
18
|
+
f.image_updated_at { Faker::Time.between(1.month.ago, Time.now, :all) }
|
19
|
+
end
|
20
|
+
end
|
@@ -0,0 +1,19 @@
|
|
1
|
+
require 'faker'
|
2
|
+
|
3
|
+
FactoryGirl.define do
|
4
|
+
factory :caboose_user, :class => Caboose::User do |f|
|
5
|
+
f.first_name { Faker::Name.first_name }
|
6
|
+
f.last_name { Faker::Name.last_name }
|
7
|
+
f.username { Faker::Internet.user_name }
|
8
|
+
f.email { Faker::Internet.email }
|
9
|
+
f.address { Faker::Address.street_address }
|
10
|
+
f.address2 { Faker::Address.secondary_address }
|
11
|
+
f.city { Faker::Address.city }
|
12
|
+
f.state { Faker::Address.state }
|
13
|
+
f.zip { Faker::Address.zip }
|
14
|
+
f.phone { Faker::PhoneNumber.phone_number }
|
15
|
+
f.fax { Faker::PhoneNumber.phone_number }
|
16
|
+
f.password { Faker::Internet.password(20) }
|
17
|
+
f.date_created { Faker::Time.between(1.year.ago, Time.now, :all) }
|
18
|
+
end
|
19
|
+
end
|
@@ -0,0 +1,114 @@
|
|
1
|
+
|
2
|
+
describe Caboose::Block do
|
3
|
+
it "has a valid factory" do
|
4
|
+
expect(FactoryGirl.create(:caboose_block)).to be_valid
|
5
|
+
end
|
6
|
+
|
7
|
+
def reload_blocks
|
8
|
+
@b0.reload
|
9
|
+
@b1.reload
|
10
|
+
@b2.reload
|
11
|
+
@b3.reload
|
12
|
+
@b4.reload
|
13
|
+
end
|
14
|
+
|
15
|
+
def print_blocks
|
16
|
+
puts "------------------------------"
|
17
|
+
puts "#{@b0.id} #{@b0.sort_order}"
|
18
|
+
puts "#{@b1.id} #{@b1.sort_order}"
|
19
|
+
puts "#{@b2.id} #{@b2.sort_order}"
|
20
|
+
puts "#{@b3.id} #{@b3.sort_order}"
|
21
|
+
puts "#{@b4.id} #{@b4.sort_order}"
|
22
|
+
puts "------------------------------"
|
23
|
+
end
|
24
|
+
|
25
|
+
describe "sorts correctly" do
|
26
|
+
before(:all) do
|
27
|
+
@b0 = FactoryGirl.create(:caboose_block, :parent_id => 1, :sort_order => 0)
|
28
|
+
@b1 = FactoryGirl.create(:caboose_block, :parent_id => 1, :sort_order => 1)
|
29
|
+
@b2 = FactoryGirl.create(:caboose_block, :parent_id => 1, :sort_order => 2)
|
30
|
+
@b3 = FactoryGirl.create(:caboose_block, :parent_id => 1, :sort_order => 3)
|
31
|
+
@b4 = FactoryGirl.create(:caboose_block, :parent_id => 1, :sort_order => 4)
|
32
|
+
end
|
33
|
+
before(:each) do
|
34
|
+
@b0.update_attribute(:sort_order, 0)
|
35
|
+
@b1.update_attribute(:sort_order, 1)
|
36
|
+
@b2.update_attribute(:sort_order, 2)
|
37
|
+
@b3.update_attribute(:sort_order, 3)
|
38
|
+
@b4.update_attribute(:sort_order, 4)
|
39
|
+
reload_blocks
|
40
|
+
end
|
41
|
+
|
42
|
+
it "moves up when not at the top" do
|
43
|
+
@b2.move_up
|
44
|
+
reload_blocks
|
45
|
+
expect(@b0.sort_order).to eql(0)
|
46
|
+
expect(@b1.sort_order).to eql(2)
|
47
|
+
expect(@b2.sort_order).to eql(1)
|
48
|
+
expect(@b3.sort_order).to eql(3)
|
49
|
+
expect(@b4.sort_order).to eql(4)
|
50
|
+
end
|
51
|
+
|
52
|
+
it "doesn't move up when already at the top" do
|
53
|
+
@b0.move_up
|
54
|
+
reload_blocks
|
55
|
+
expect(@b0.sort_order).to eql(0)
|
56
|
+
expect(@b1.sort_order).to eql(1)
|
57
|
+
expect(@b2.sort_order).to eql(2)
|
58
|
+
expect(@b3.sort_order).to eql(3)
|
59
|
+
expect(@b4.sort_order).to eql(4)
|
60
|
+
end
|
61
|
+
|
62
|
+
it "moves down when not at the bottom" do
|
63
|
+
@b2.move_down
|
64
|
+
reload_blocks
|
65
|
+
expect(@b0.sort_order).to eql(0)
|
66
|
+
expect(@b1.sort_order).to eql(1)
|
67
|
+
expect(@b2.sort_order).to eql(3)
|
68
|
+
expect(@b3.sort_order).to eql(2)
|
69
|
+
expect(@b4.sort_order).to eql(4)
|
70
|
+
end
|
71
|
+
|
72
|
+
it "doesn't move down when already at the bottom" do
|
73
|
+
@b4.move_down
|
74
|
+
reload_blocks
|
75
|
+
expect(@b0.sort_order).to eql(0)
|
76
|
+
expect(@b1.sort_order).to eql(1)
|
77
|
+
expect(@b2.sort_order).to eql(2)
|
78
|
+
expect(@b3.sort_order).to eql(3)
|
79
|
+
expect(@b4.sort_order).to eql(4)
|
80
|
+
end
|
81
|
+
|
82
|
+
it "resets the sort order when sort order is not continuous" do
|
83
|
+
@b0.update_attribute(:sort_order, 0)
|
84
|
+
@b1.update_attribute(:sort_order, 1)
|
85
|
+
@b2.update_attribute(:sort_order, 17)
|
86
|
+
@b3.update_attribute(:sort_order, 18)
|
87
|
+
@b4.update_attribute(:sort_order, 19)
|
88
|
+
reload_blocks
|
89
|
+
@b2.move_up
|
90
|
+
reload_blocks
|
91
|
+
expect(@b0.sort_order).to eql(0)
|
92
|
+
expect(@b1.sort_order).to eql(2)
|
93
|
+
expect(@b2.sort_order).to eql(1)
|
94
|
+
expect(@b3.sort_order).to eql(3)
|
95
|
+
expect(@b4.sort_order).to eql(4)
|
96
|
+
|
97
|
+
@b0.update_attribute(:sort_order, 0)
|
98
|
+
@b1.update_attribute(:sort_order, 1)
|
99
|
+
@b2.update_attribute(:sort_order, 17)
|
100
|
+
@b3.update_attribute(:sort_order, 18)
|
101
|
+
@b4.update_attribute(:sort_order, 19)
|
102
|
+
reload_blocks
|
103
|
+
@b2.move_down
|
104
|
+
reload_blocks
|
105
|
+
expect(@b0.sort_order).to eql(0)
|
106
|
+
expect(@b1.sort_order).to eql(1)
|
107
|
+
expect(@b2.sort_order).to eql(3)
|
108
|
+
expect(@b3.sort_order).to eql(2)
|
109
|
+
expect(@b4.sort_order).to eql(4)
|
110
|
+
end
|
111
|
+
|
112
|
+
end
|
113
|
+
|
114
|
+
end
|
metadata
CHANGED
@@ -1,15 +1,29 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: caboose-cms
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.5.
|
4
|
+
version: 0.5.30
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- William Barry
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-
|
11
|
+
date: 2014-11-13 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: pg
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - ! '>='
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '0'
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - ! '>='
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '0'
|
13
27
|
- !ruby/object:Gem::Dependency
|
14
28
|
name: rails
|
15
29
|
requirement: !ruby/object:Gem::Requirement
|
@@ -234,6 +248,90 @@ dependencies:
|
|
234
248
|
- - ! '>='
|
235
249
|
- !ruby/object:Gem::Version
|
236
250
|
version: '0'
|
251
|
+
- !ruby/object:Gem::Dependency
|
252
|
+
name: rspec-rails
|
253
|
+
requirement: !ruby/object:Gem::Requirement
|
254
|
+
requirements:
|
255
|
+
- - ! '>='
|
256
|
+
- !ruby/object:Gem::Version
|
257
|
+
version: '0'
|
258
|
+
type: :development
|
259
|
+
prerelease: false
|
260
|
+
version_requirements: !ruby/object:Gem::Requirement
|
261
|
+
requirements:
|
262
|
+
- - ! '>='
|
263
|
+
- !ruby/object:Gem::Version
|
264
|
+
version: '0'
|
265
|
+
- !ruby/object:Gem::Dependency
|
266
|
+
name: factory_girl_rails
|
267
|
+
requirement: !ruby/object:Gem::Requirement
|
268
|
+
requirements:
|
269
|
+
- - ! '>='
|
270
|
+
- !ruby/object:Gem::Version
|
271
|
+
version: '0'
|
272
|
+
type: :development
|
273
|
+
prerelease: false
|
274
|
+
version_requirements: !ruby/object:Gem::Requirement
|
275
|
+
requirements:
|
276
|
+
- - ! '>='
|
277
|
+
- !ruby/object:Gem::Version
|
278
|
+
version: '0'
|
279
|
+
- !ruby/object:Gem::Dependency
|
280
|
+
name: faker
|
281
|
+
requirement: !ruby/object:Gem::Requirement
|
282
|
+
requirements:
|
283
|
+
- - ! '>='
|
284
|
+
- !ruby/object:Gem::Version
|
285
|
+
version: '0'
|
286
|
+
type: :development
|
287
|
+
prerelease: false
|
288
|
+
version_requirements: !ruby/object:Gem::Requirement
|
289
|
+
requirements:
|
290
|
+
- - ! '>='
|
291
|
+
- !ruby/object:Gem::Version
|
292
|
+
version: '0'
|
293
|
+
- !ruby/object:Gem::Dependency
|
294
|
+
name: capybara
|
295
|
+
requirement: !ruby/object:Gem::Requirement
|
296
|
+
requirements:
|
297
|
+
- - ! '>='
|
298
|
+
- !ruby/object:Gem::Version
|
299
|
+
version: '0'
|
300
|
+
type: :development
|
301
|
+
prerelease: false
|
302
|
+
version_requirements: !ruby/object:Gem::Requirement
|
303
|
+
requirements:
|
304
|
+
- - ! '>='
|
305
|
+
- !ruby/object:Gem::Version
|
306
|
+
version: '0'
|
307
|
+
- !ruby/object:Gem::Dependency
|
308
|
+
name: guard-rspec
|
309
|
+
requirement: !ruby/object:Gem::Requirement
|
310
|
+
requirements:
|
311
|
+
- - ! '>='
|
312
|
+
- !ruby/object:Gem::Version
|
313
|
+
version: '0'
|
314
|
+
type: :development
|
315
|
+
prerelease: false
|
316
|
+
version_requirements: !ruby/object:Gem::Requirement
|
317
|
+
requirements:
|
318
|
+
- - ! '>='
|
319
|
+
- !ruby/object:Gem::Version
|
320
|
+
version: '0'
|
321
|
+
- !ruby/object:Gem::Dependency
|
322
|
+
name: launchy
|
323
|
+
requirement: !ruby/object:Gem::Requirement
|
324
|
+
requirements:
|
325
|
+
- - ! '>='
|
326
|
+
- !ruby/object:Gem::Version
|
327
|
+
version: '0'
|
328
|
+
type: :development
|
329
|
+
prerelease: false
|
330
|
+
version_requirements: !ruby/object:Gem::Requirement
|
331
|
+
requirements:
|
332
|
+
- - ! '>='
|
333
|
+
- !ruby/object:Gem::Version
|
334
|
+
version: '0'
|
237
335
|
description: CMS built on rails with love.
|
238
336
|
email:
|
239
337
|
- william@nine.is
|
@@ -741,39 +839,11 @@ files:
|
|
741
839
|
- lib/sample_files/config/tinymce.yml
|
742
840
|
- lib/sample_files/timezone_abbreviations.csv
|
743
841
|
- lib/tasks/caboose.rake
|
744
|
-
-
|
745
|
-
-
|
746
|
-
-
|
747
|
-
-
|
748
|
-
-
|
749
|
-
- test/dummy/app/controllers/application_controller.rb
|
750
|
-
- test/dummy/app/helpers/application_helper.rb
|
751
|
-
- test/dummy/app/views/layouts/application.html.erb
|
752
|
-
- test/dummy/config.ru
|
753
|
-
- test/dummy/config/application.rb
|
754
|
-
- test/dummy/config/boot.rb
|
755
|
-
- test/dummy/config/database.yml
|
756
|
-
- test/dummy/config/environment.rb
|
757
|
-
- test/dummy/config/environments/development.rb
|
758
|
-
- test/dummy/config/environments/production.rb
|
759
|
-
- test/dummy/config/environments/test.rb
|
760
|
-
- test/dummy/config/initializers/backtrace_silencers.rb
|
761
|
-
- test/dummy/config/initializers/inflections.rb
|
762
|
-
- test/dummy/config/initializers/mime_types.rb
|
763
|
-
- test/dummy/config/initializers/secret_token.rb
|
764
|
-
- test/dummy/config/initializers/session_store.rb
|
765
|
-
- test/dummy/config/initializers/wrap_parameters.rb
|
766
|
-
- test/dummy/config/locales/en.yml
|
767
|
-
- test/dummy/config/routes.rb
|
768
|
-
- test/dummy/db/test.sqlite3
|
769
|
-
- test/dummy/log/test.log
|
770
|
-
- test/dummy/public/404.html
|
771
|
-
- test/dummy/public/422.html
|
772
|
-
- test/dummy/public/500.html
|
773
|
-
- test/dummy/public/favicon.ico
|
774
|
-
- test/dummy/script/rails
|
775
|
-
- test/integration/navigation_test.rb
|
776
|
-
- test/test_helper.rb
|
842
|
+
- lib/tasks/caboose_sync.rake
|
843
|
+
- spec/factories/caboose_blocks.rb
|
844
|
+
- spec/factories/caboose_users.rb
|
845
|
+
- spec/models/block_spec.rb
|
846
|
+
- spec/models/user_spec.rb
|
777
847
|
homepage: http://github.com/williambarry007/caboose-cms
|
778
848
|
licenses: []
|
779
849
|
metadata: {}
|
@@ -798,36 +868,7 @@ signing_key:
|
|
798
868
|
specification_version: 4
|
799
869
|
summary: CMS built on rails.
|
800
870
|
test_files:
|
801
|
-
-
|
802
|
-
-
|
803
|
-
-
|
804
|
-
-
|
805
|
-
- test/dummy/app/helpers/application_helper.rb
|
806
|
-
- test/dummy/app/views/layouts/application.html.erb
|
807
|
-
- test/dummy/config/application.rb
|
808
|
-
- test/dummy/config/boot.rb
|
809
|
-
- test/dummy/config/database.yml
|
810
|
-
- test/dummy/config/environment.rb
|
811
|
-
- test/dummy/config/environments/development.rb
|
812
|
-
- test/dummy/config/environments/production.rb
|
813
|
-
- test/dummy/config/environments/test.rb
|
814
|
-
- test/dummy/config/initializers/backtrace_silencers.rb
|
815
|
-
- test/dummy/config/initializers/inflections.rb
|
816
|
-
- test/dummy/config/initializers/mime_types.rb
|
817
|
-
- test/dummy/config/initializers/secret_token.rb
|
818
|
-
- test/dummy/config/initializers/session_store.rb
|
819
|
-
- test/dummy/config/initializers/wrap_parameters.rb
|
820
|
-
- test/dummy/config/locales/en.yml
|
821
|
-
- test/dummy/config/routes.rb
|
822
|
-
- test/dummy/config.ru
|
823
|
-
- test/dummy/db/test.sqlite3
|
824
|
-
- test/dummy/log/test.log
|
825
|
-
- test/dummy/public/404.html
|
826
|
-
- test/dummy/public/422.html
|
827
|
-
- test/dummy/public/500.html
|
828
|
-
- test/dummy/public/favicon.ico
|
829
|
-
- test/dummy/Rakefile
|
830
|
-
- test/dummy/README.rdoc
|
831
|
-
- test/dummy/script/rails
|
832
|
-
- test/integration/navigation_test.rb
|
833
|
-
- test/test_helper.rb
|
871
|
+
- spec/factories/caboose_blocks.rb
|
872
|
+
- spec/factories/caboose_users.rb
|
873
|
+
- spec/models/block_spec.rb
|
874
|
+
- spec/models/user_spec.rb
|