dassets 0.8.0 → 0.9.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.
data/Gemfile CHANGED
@@ -3,4 +3,4 @@ source "https://rubygems.org"
3
3
  gemspec
4
4
 
5
5
  gem 'rake'
6
- gem 'pry'
6
+ gem 'pry', "~> 0.9.0"
@@ -11,13 +11,14 @@ Gem::Specification.new do |gem|
11
11
  gem.description = %q{Digest and serve HTML asset files}
12
12
  gem.summary = %q{Digested asset files}
13
13
  gem.homepage = "http://github.com/redding/dassets"
14
+ gem.license = 'MIT'
14
15
 
15
16
  gem.files = `git ls-files`.split($/)
16
17
  gem.executables = gem.files.grep(%r{^bin/}).map{ |f| File.basename(f) }
17
18
  gem.test_files = gem.files.grep(%r{^(test|spec|features)/})
18
19
  gem.require_paths = ["lib"]
19
20
 
20
- gem.add_development_dependency("assert", ["~> 2.4"])
21
+ gem.add_development_dependency("assert", ["~> 2.12"])
21
22
  gem.add_development_dependency('assert-rack-test', ["~> 1.0"])
22
23
  gem.add_development_dependency("sinatra", ["~> 1.4"])
23
24
 
@@ -20,6 +20,11 @@ module Dassets
20
20
  @combinations = Hash.new{ |h, k| [k] } # digest pass-thru if none defined
21
21
  end
22
22
 
23
+ def base_url(value = nil)
24
+ @base_url = value if !value.nil?
25
+ @base_url
26
+ end
27
+
23
28
  def source(path, &block)
24
29
  @sources << Source.new(path).tap{ |s| block.call(s) if block }
25
30
  end
@@ -10,7 +10,14 @@ class Dassets::Server
10
10
  # the behavior to respect POST tunnel method specifiers. We always want
11
11
  # the real request method.
12
12
  def request_method; @env['REQUEST_METHOD']; end
13
- def path_info; @env['PATH_INFO']; end
13
+
14
+ def path_info
15
+ @env['PATH_INFO'].sub(dassets_base_url, '')
16
+ end
17
+
18
+ def dassets_base_url
19
+ Dassets.config.base_url.to_s
20
+ end
14
21
 
15
22
  # Determine if the request is for an asset file
16
23
  # This will be called on every request so speed is an issue
@@ -1,3 +1,3 @@
1
1
  module Dassets
2
- VERSION = "0.8.0"
2
+ VERSION = "0.9.0"
3
3
  end
@@ -7,6 +7,8 @@ $LOAD_PATH.unshift(File.expand_path("../..", __FILE__))
7
7
  # require pry for debugging (`binding.pry`)
8
8
  require 'pry'
9
9
 
10
+ require 'test/support/factory'
11
+
10
12
  require 'pathname'
11
13
  TEST_SUPPORT_PATH = Pathname.new(File.expand_path('../support', __FILE__))
12
14
 
@@ -0,0 +1,6 @@
1
+ require 'assert/factory'
2
+
3
+ module Factory
4
+ extend Assert::Factory
5
+
6
+ end
@@ -17,8 +17,19 @@ class Dassets::Config
17
17
  subject{ @config }
18
18
 
19
19
  should have_options :file_store, :cache
20
- should have_reader :combinations
21
- should have_imeth :source, :combination, :combination?
20
+ should have_readers :combinations
21
+ should have_imeths :base_url, :source, :combination, :combination?
22
+
23
+ should "have no base url by default" do
24
+ assert_nil subject.base_url
25
+ end
26
+
27
+ should "set a base url" do
28
+ url = Factory.url
29
+ subject.base_url url
30
+
31
+ assert_equal url, subject.base_url
32
+ end
22
33
 
23
34
  should "default the file store option to a null file store" do
24
35
  assert_kind_of Dassets::FileStore::NullStore, subject.file_store
@@ -4,7 +4,7 @@ require 'dassets/engine'
4
4
  class Dassets::Engine
5
5
 
6
6
  class UnitTests < Assert::Context
7
- desc "the base Dassets::Engine"
7
+ desc "Dassets::Engine"
8
8
  setup do
9
9
  @engine = Dassets::Engine.new
10
10
  end
@@ -31,7 +31,7 @@ class Dassets::Engine
31
31
  end
32
32
 
33
33
  class NullEngineTests < Assert::Context
34
- desc "the NullEngine"
34
+ desc "Dassets::NullEngine"
35
35
  setup do
36
36
  @engine = Dassets::NullEngine.new('some' => 'opts')
37
37
  end
@@ -8,12 +8,22 @@ class Dassets::Server::Request
8
8
  class UnitTests < Assert::Context
9
9
  desc "Dassets::Server::Request"
10
10
  setup do
11
- @req = file_request('GET', '/file1-daa05c683a4913b268653f7a7e36a5b4.txt')
11
+ @path = '/file1-daa05c683a4913b268653f7a7e36a5b4.txt'
12
+ @req = file_request('GET', @path)
12
13
  end
13
14
  subject{ @req }
14
15
 
16
+ should have_imeths :dassets_base_url
15
17
  should have_imeths :for_asset_file?, :asset_path, :asset_file
16
18
 
19
+ should "know its base url" do
20
+ assert_equal Dassets.config.base_url.to_s, subject.dassets_base_url
21
+ end
22
+
23
+ should "know its path info" do
24
+ assert_equal @path, subject.path_info
25
+ end
26
+
17
27
  should "know its asset_path" do
18
28
  assert_equal 'file1.txt', subject.asset_path
19
29
  end
@@ -71,4 +81,26 @@ class Dassets::Server::Request
71
81
 
72
82
  end
73
83
 
84
+ class BaseUrlTests < UnitTests
85
+ desc "when a base url is configured"
86
+ setup do
87
+ @orig_base_url = Dassets.config.base_url
88
+ @new_base_url = Factory.url
89
+ Dassets.config.base_url(@new_base_url)
90
+ end
91
+ teardown do
92
+ Dassets.config.base_url(@orig_base_url)
93
+ end
94
+
95
+ should "have the same base url as is configured" do
96
+ assert_equal @new_base_url.to_s, subject.dassets_base_url
97
+ end
98
+
99
+ should "remove the configured base url from the path info" do
100
+ assert_equal @path, file_request('GET', @path).path_info
101
+ assert_equal @path, file_request('GET', "#{@new_base_url}#{@path}").path_info
102
+ end
103
+
104
+ end
105
+
74
106
  end
@@ -3,7 +3,7 @@ require 'dassets/server'
3
3
 
4
4
  class Dassets::Server
5
5
 
6
- class BaseTests < Assert::Context
6
+ class UnitTests < Assert::Context
7
7
  desc "Dassets::Server"
8
8
  setup do
9
9
  @server = Dassets::Server.new('a rack app goes here')
@@ -5,7 +5,7 @@ require 'dassets/engine'
5
5
 
6
6
  class Dassets::Source
7
7
 
8
- class BaseTests < Assert::Context
8
+ class UnitTests < Assert::Context
9
9
  desc "Dassets::Source"
10
10
  setup do
11
11
  @source_path = TEST_SUPPORT_PATH.join("source_files")
@@ -51,7 +51,7 @@ class Dassets::Source
51
51
 
52
52
  end
53
53
 
54
- class EmptySourceTests < Assert::Context
54
+ class EmptySourceTests < UnitTests
55
55
  desc "with no source files"
56
56
  setup do
57
57
  @empty_source_path = TEST_SUPPORT_PATH.join("empty")
@@ -80,7 +80,7 @@ class Dassets::Source
80
80
 
81
81
  end
82
82
 
83
- class EngineRegistrationTests < BaseTests
83
+ class EngineRegistrationTests < UnitTests
84
84
  desc "when registering an engine"
85
85
  setup do
86
86
  @empty_engine = Class.new(Dassets::Engine) do
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dassets
3
3
  version: !ruby/object:Gem::Version
4
- hash: 63
4
+ hash: 59
5
5
  prerelease:
6
6
  segments:
7
7
  - 0
8
- - 8
8
+ - 9
9
9
  - 0
10
- version: 0.8.0
10
+ version: 0.9.0
11
11
  platform: ruby
12
12
  authors:
13
13
  - Kelly Redding
@@ -16,26 +16,24 @@ autorequire:
16
16
  bindir: bin
17
17
  cert_chain: []
18
18
 
19
- date: 2013-12-05 00:00:00 Z
19
+ date: 2014-08-01 00:00:00 Z
20
20
  dependencies:
21
21
  - !ruby/object:Gem::Dependency
22
- name: assert
23
- prerelease: false
24
22
  requirement: &id001 !ruby/object:Gem::Requirement
25
23
  none: false
26
24
  requirements:
27
25
  - - ~>
28
26
  - !ruby/object:Gem::Version
29
- hash: 11
27
+ hash: 27
30
28
  segments:
31
29
  - 2
32
- - 4
33
- version: "2.4"
30
+ - 12
31
+ version: "2.12"
34
32
  type: :development
33
+ name: assert
35
34
  version_requirements: *id001
36
- - !ruby/object:Gem::Dependency
37
- name: assert-rack-test
38
35
  prerelease: false
36
+ - !ruby/object:Gem::Dependency
39
37
  requirement: &id002 !ruby/object:Gem::Requirement
40
38
  none: false
41
39
  requirements:
@@ -47,10 +45,10 @@ dependencies:
47
45
  - 0
48
46
  version: "1.0"
49
47
  type: :development
48
+ name: assert-rack-test
50
49
  version_requirements: *id002
51
- - !ruby/object:Gem::Dependency
52
- name: sinatra
53
50
  prerelease: false
51
+ - !ruby/object:Gem::Dependency
54
52
  requirement: &id003 !ruby/object:Gem::Requirement
55
53
  none: false
56
54
  requirements:
@@ -62,10 +60,10 @@ dependencies:
62
60
  - 4
63
61
  version: "1.4"
64
62
  type: :development
63
+ name: sinatra
65
64
  version_requirements: *id003
66
- - !ruby/object:Gem::Dependency
67
- name: ns-options
68
65
  prerelease: false
66
+ - !ruby/object:Gem::Dependency
69
67
  requirement: &id004 !ruby/object:Gem::Requirement
70
68
  none: false
71
69
  requirements:
@@ -77,10 +75,10 @@ dependencies:
77
75
  - 1
78
76
  version: "1.1"
79
77
  type: :runtime
78
+ name: ns-options
80
79
  version_requirements: *id004
81
- - !ruby/object:Gem::Dependency
82
- name: rack
83
80
  prerelease: false
81
+ - !ruby/object:Gem::Dependency
84
82
  requirement: &id005 !ruby/object:Gem::Requirement
85
83
  none: false
86
84
  requirements:
@@ -92,7 +90,9 @@ dependencies:
92
90
  - 0
93
91
  version: "1.0"
94
92
  type: :runtime
93
+ name: rack
95
94
  version_requirements: *id005
95
+ prerelease: false
96
96
  description: Digest and serve HTML asset files
97
97
  email:
98
98
  - kelly@kellyredding.com
@@ -132,6 +132,7 @@ files:
132
132
  - test/support/app/assets/nested/a-thing.txt.useless.dumb
133
133
  - test/support/app/assets/nested/file3.txt
134
134
  - test/support/empty/.gitkeep
135
+ - test/support/factory.rb
135
136
  - test/support/public/file1-daa05c683a4913b268653f7a7e36a5b4.txt
136
137
  - test/support/public/file2-9bbe1047cffbb590f59e0e5aeff46ae4.txt
137
138
  - test/support/public/grumpy_cat-b0d1f399a916f7a25c4c0f693c619013.jpg
@@ -156,8 +157,8 @@ files:
156
157
  - test/unit/source_tests.rb
157
158
  - tmp/.gitkeep
158
159
  homepage: http://github.com/redding/dassets
159
- licenses: []
160
-
160
+ licenses:
161
+ - MIT
161
162
  post_install_message:
162
163
  rdoc_options: []
163
164
 
@@ -184,7 +185,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
184
185
  requirements: []
185
186
 
186
187
  rubyforge_project:
187
- rubygems_version: 1.8.24
188
+ rubygems_version: 1.8.25
188
189
  signing_key:
189
190
  specification_version: 3
190
191
  summary: Digested asset files
@@ -197,6 +198,7 @@ test_files:
197
198
  - test/support/app/assets/nested/a-thing.txt.useless.dumb
198
199
  - test/support/app/assets/nested/file3.txt
199
200
  - test/support/empty/.gitkeep
201
+ - test/support/factory.rb
200
202
  - test/support/public/file1-daa05c683a4913b268653f7a7e36a5b4.txt
201
203
  - test/support/public/file2-9bbe1047cffbb590f59e0e5aeff46ae4.txt
202
204
  - test/support/public/grumpy_cat-b0d1f399a916f7a25c4c0f693c619013.jpg