caboose-cms 0.5.28 → 0.5.30

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.
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