dassets 0.2.0 → 0.3.0

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 (42) hide show
  1. data/README.md +15 -5
  2. data/lib/dassets.rb +59 -12
  3. data/lib/dassets/asset_file.rb +15 -14
  4. data/lib/dassets/cmds/cache_cmd.rb +33 -0
  5. data/lib/dassets/cmds/digest_cmd.rb +53 -0
  6. data/lib/dassets/{digests_file.rb → digests.rb} +14 -23
  7. data/lib/dassets/engine.rb +33 -0
  8. data/lib/dassets/runner.rb +10 -4
  9. data/lib/dassets/server/response.rb +1 -1
  10. data/lib/dassets/source_file.rb +71 -0
  11. data/lib/dassets/version.rb +1 -1
  12. data/test/support/app/assets/.digests +1 -0
  13. data/test/support/app/assets/file1.txt +1 -0
  14. data/test/support/app/assets/file2.txt +1 -0
  15. data/test/support/app/assets/grumpy_cat.jpg +0 -0
  16. data/test/support/app/assets/nested/a-thing.txt.useless.dumb +1 -0
  17. data/test/support/app/assets/nested/file3.txt +0 -0
  18. data/test/support/app/assets/public/nested/a-thing.txt.no-use +4 -0
  19. data/test/support/config/assets.rb +12 -1
  20. data/test/support/example.digests +3 -3
  21. data/test/support/public/nested/a-thing.txt-7413d18f2eba9c695a880aff67fde135.no-use +4 -0
  22. data/test/support/source_files/_ignored.txt +0 -0
  23. data/test/support/source_files/nested/_nested_ignored.txt +0 -0
  24. data/test/support/source_files/nested/test2.txt +0 -0
  25. data/test/support/source_files/test1.txt +0 -0
  26. data/test/system/cache_cmd_run_tests.rb +27 -0
  27. data/test/system/digest_cmd_run_tests.rb +70 -0
  28. data/test/unit/asset_file_tests.rb +11 -11
  29. data/test/unit/cmds/cache_cmd_tests.rb +33 -0
  30. data/test/unit/cmds/digest_cmd_tests.rb +23 -0
  31. data/test/unit/config_tests.rb +52 -7
  32. data/test/unit/dassets_tests.rb +59 -5
  33. data/test/unit/digests_tests.rb +79 -0
  34. data/test/unit/engine_tests.rb +59 -0
  35. data/test/unit/server/response_tests.rb +5 -5
  36. data/test/unit/source_file_tests.rb +82 -0
  37. metadata +45 -13
  38. data/lib/dassets/runner/cache_command.rb +0 -46
  39. data/lib/dassets/runner/digest_command.rb +0 -65
  40. data/test/unit/digests_file_tests.rb +0 -90
  41. data/test/unit/runner/cache_command_tests.rb +0 -62
  42. data/test/unit/runner/digest_command_tests.rb +0 -83
@@ -1,62 +0,0 @@
1
- require 'assert'
2
- require 'fileutils'
3
- require 'dassets/runner/cache_command'
4
-
5
- class Dassets::Runner::CacheCommand
6
-
7
- class BaseTests < Assert::Context
8
- desc "Dassets::Runner::CacheCommand"
9
- setup do
10
- @cache_root_path = File.join(Dassets.config.root_path, 'public')
11
- FileUtils.mkdir_p @cache_root_path
12
- @cmd = Dassets::Runner::CacheCommand.new(@cache_root_path)
13
- end
14
- teardown do
15
- # FileUtils.rm_rf @cache_root_path
16
- end
17
- subject{ @cmd }
18
-
19
- should have_readers :files_root_path, :cache_root_path, :digests_file, :asset_files
20
-
21
- should "use the config's files path and its files root path" do
22
- assert_equal Dassets.config.files_path, subject.files_root_path.to_s
23
- end
24
-
25
- should "know its given cache root path" do
26
- assert_equal @cache_root_path, subject.cache_root_path.to_s
27
- end
28
-
29
- should "know it's digests file" do
30
- assert_kind_of Dassets::DigestsFile, subject.digests_file
31
- end
32
-
33
- should "get it's asset files from the digests file" do
34
- assert_equal 4, subject.digests_file.keys.size
35
- assert_equal 4, subject.asset_files.size
36
- end
37
-
38
- should "use AssetFile objs for the asset files" do
39
- assert_kind_of Dassets::AssetFile, subject.asset_files.first
40
- end
41
-
42
- end
43
-
44
- class RunTests < BaseTests
45
- desc "on run"
46
- setup do
47
- FileUtils.rm_rf(@cache_root_path)
48
- end
49
-
50
- should "create the cache root and write the cache files" do
51
- assert_not_file_exists @cache_root_path.to_s
52
- subject.run
53
-
54
- assert_file_exists @cache_root_path.to_s
55
- subject.asset_files.each do |file|
56
- assert_file_exists File.join(@cache_root_path, file.cache_path)
57
- end
58
- end
59
-
60
- end
61
-
62
- end
@@ -1,83 +0,0 @@
1
- require 'assert'
2
- require 'fileutils'
3
- require 'dassets/runner/digest_command'
4
-
5
- class Dassets::Runner::DigestCommand
6
-
7
- class BaseTests < Assert::Context
8
- desc "Dassets::Runner::DigestCommand"
9
- setup do
10
- @cmd = Dassets::Runner::DigestCommand.new([])
11
- end
12
- subject{ @cmd }
13
-
14
- should have_instance_methods :asset_files, :digests_file, :run
15
-
16
- should "know it's digests file" do
17
- assert_kind_of Dassets::DigestsFile, subject.digests_file
18
- end
19
-
20
- should "get it's asset files from the config path by default" do
21
- assert_equal 4, subject.asset_files.size
22
- assert_equal 4, subject.digests_file.keys.size
23
- end
24
-
25
- should "get it's asset files from the args if passed" do
26
- path_string = File.join(Dassets.config.files_path, 'file*')
27
- digest_cmd = Dassets::Runner::DigestCommand.new([path_string])
28
-
29
- assert_equal 2, digest_cmd.asset_files.size
30
- end
31
-
32
- should "use AssetFile objs for the asset files" do
33
- assert_kind_of Dassets::AssetFile, subject.asset_files.first
34
- end
35
-
36
- end
37
-
38
- class RunTests < BaseTests
39
- desc "on run"
40
- setup do
41
- @cmd.run
42
- @addfile = 'addfile.txt'
43
- @rmfile = 'file1.txt'
44
- @updfile = 'file2.txt'
45
- @addfile_path = File.join(File.join(Dassets.config.files_path, @addfile))
46
- @rmfile_path = File.join(File.join(Dassets.config.files_path, @rmfile))
47
- @updfile_path = File.join(File.join(Dassets.config.files_path, @updfile))
48
-
49
- @rmfilecontents = File.read(@rmfile_path)
50
- @updfilecontents = File.read(@updfile_path)
51
- @orig_updfile_md5 = subject.digests_file[@updfile]
52
-
53
- FileUtils.touch @addfile_path
54
- FileUtils.rm @rmfile_path
55
- File.open(@updfile_path, "w+"){ |f| f.write('an update') }
56
- end
57
- teardown do
58
- File.open(@updfile_path, "w"){ |f| f.write @updfilecontents }
59
- File.open(@rmfile_path, "w"){ |f| f.write @rmfilecontents }
60
- FileUtils.rm @addfile_path
61
- end
62
-
63
- should "update the digests_file on run" do
64
- assert_equal 4, subject.digests_file.keys.size
65
- assert_not_includes @addfile, subject.digests_file.keys
66
- assert_includes @rmfile, subject.digests_file.keys
67
- assert_equal @orig_updfile_md5, subject.digests_file[@updfile]
68
-
69
- # recreate the cmd to reload asset files
70
- @cmd = Dassets::Runner::DigestCommand.new([])
71
- # run without writing the file
72
- subject.run(false)
73
-
74
- # see the add, update and removal
75
- assert_equal 4, subject.digests_file.keys.size
76
- assert_includes @addfile, subject.digests_file.keys
77
- assert_not_includes @rmfile, subject.digests_file.keys
78
- assert_not_equal @orig_updfile_md5, subject.digests_file[@updfile]
79
- end
80
-
81
- end
82
-
83
- end