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.
Files changed (51) hide show
  1. checksums.yaml +8 -8
  2. data/Rakefile +10 -25
  3. data/app/assets/javascripts/caboose/admin_page_edit_content.js +68 -43
  4. data/app/assets/stylesheets/caboose/admin_page_edit_content.css +18 -9
  5. data/app/controllers/caboose/blocks_controller.rb +24 -17
  6. data/app/models/caboose/block.rb +54 -19
  7. data/app/models/caboose/user.rb +2 -0
  8. data/app/views/caboose/pages/admin_edit_content.html.erb +12 -9
  9. data/lib/caboose.rb +4 -0
  10. data/lib/caboose/engine.rb +10 -1
  11. data/lib/caboose/version.rb +1 -1
  12. data/lib/tasks/caboose.rake +6 -22
  13. data/lib/tasks/caboose_sync.rake +112 -0
  14. data/spec/factories/caboose_blocks.rb +20 -0
  15. data/spec/factories/caboose_users.rb +19 -0
  16. data/spec/models/block_spec.rb +114 -0
  17. data/spec/models/user_spec.rb +9 -0
  18. metadata +109 -68
  19. data/test/caboose_test.rb +0 -7
  20. data/test/dummy/README.rdoc +0 -261
  21. data/test/dummy/Rakefile +0 -7
  22. data/test/dummy/app/assets/javascripts/application.js +0 -15
  23. data/test/dummy/app/assets/stylesheets/application.css +0 -13
  24. data/test/dummy/app/controllers/application_controller.rb +0 -3
  25. data/test/dummy/app/helpers/application_helper.rb +0 -2
  26. data/test/dummy/app/views/layouts/application.html.erb +0 -14
  27. data/test/dummy/config.ru +0 -4
  28. data/test/dummy/config/application.rb +0 -59
  29. data/test/dummy/config/boot.rb +0 -10
  30. data/test/dummy/config/database.yml +0 -25
  31. data/test/dummy/config/environment.rb +0 -5
  32. data/test/dummy/config/environments/development.rb +0 -37
  33. data/test/dummy/config/environments/production.rb +0 -67
  34. data/test/dummy/config/environments/test.rb +0 -37
  35. data/test/dummy/config/initializers/backtrace_silencers.rb +0 -7
  36. data/test/dummy/config/initializers/inflections.rb +0 -15
  37. data/test/dummy/config/initializers/mime_types.rb +0 -5
  38. data/test/dummy/config/initializers/secret_token.rb +0 -7
  39. data/test/dummy/config/initializers/session_store.rb +0 -8
  40. data/test/dummy/config/initializers/wrap_parameters.rb +0 -14
  41. data/test/dummy/config/locales/en.yml +0 -5
  42. data/test/dummy/config/routes.rb +0 -4
  43. data/test/dummy/db/test.sqlite3 +0 -0
  44. data/test/dummy/log/test.log +0 -25
  45. data/test/dummy/public/404.html +0 -26
  46. data/test/dummy/public/422.html +0 -26
  47. data/test/dummy/public/500.html +0 -25
  48. data/test/dummy/public/favicon.ico +0 -0
  49. data/test/dummy/script/rails +0 -6
  50. data/test/integration/navigation_test.rb +0 -10
  51. data/test/test_helper.rb +0 -15
@@ -1,3 +1,3 @@
1
1
  module Caboose
2
- VERSION = '0.5.28'
2
+ VERSION = '0.5.30'
3
3
  end
@@ -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
@@ -0,0 +1,9 @@
1
+
2
+ describe Caboose::User do
3
+ it "has a valid factory" do
4
+ expect(FactoryGirl.create(:caboose_user)).to be_valid
5
+ end
6
+ it "is invalid without an email" do
7
+ expect(FactoryGirl.build(:caboose_user, :email => nil)).to_not be_valid
8
+ end
9
+ 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.28
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-10-28 00:00:00.000000000 Z
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
- - test/caboose_test.rb
745
- - test/dummy/README.rdoc
746
- - test/dummy/Rakefile
747
- - test/dummy/app/assets/javascripts/application.js
748
- - test/dummy/app/assets/stylesheets/application.css
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
- - test/caboose_test.rb
802
- - test/dummy/app/assets/javascripts/application.js
803
- - test/dummy/app/assets/stylesheets/application.css
804
- - test/dummy/app/controllers/application_controller.rb
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