rapper 0.2.0 → 0.2.1

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/README.markdown CHANGED
@@ -71,7 +71,14 @@ The above definition will create two asset files: `public/assets/base.js` and `p
71
71
 
72
72
  ## View helpers
73
73
 
74
- Rapper provides helper methods to generate HTML include tags for your assets in the `Rapper::ViewHelpers`. Simply `include` it in the appropriate place for your web app / framework / widget / whatever. It's automaticallly included for Merb.
74
+ Rapper provides helper methods to generate HTML include tags for your assets in the `Rapper::ViewHelpers` module. Simply `include` it in the appropriate place for your web app / framework / widget / spaceship / row boat / whatever. It's automaticallly included for Merb because Merb people are notoriously lazy.
75
+
76
+ Rapper's view helpers respect your `bundle` setting. If it is `true`, a singe include tag for the joined asset will be returned. If bundling is `false`, it will return include tags for every component file of the asset (as a single string).
77
+
78
+ Rapper provides helper methods for each definition type. For instance, if you have "javascripts.yml" and "stylesheets.yml" definition files, Rapper will provide `rapper_javascripts_tag` and `rapper_stylesheets_tag` helper methods. Just pass the name of the asset to the helper method as a symbol and the correct HTML will be returned:
79
+
80
+ rapper_stylesheets_tag :mootools
81
+ # <script src="/javascripts/assets/mootools.js"></script>
75
82
 
76
83
  ## Versioning
77
84
 
@@ -114,11 +121,14 @@ Rapper's got a Gemfile. You know what to do.
114
121
  * Watch for CoffeeScript changes and automatically compile
115
122
  * Watch for Sass changes and automatically compile
116
123
  * Per-asset configuration overrides
117
- * Sinatra helpers
118
- * Rails helpers
124
+ * Auto-setup Sinatra helpers (?)
125
+ * Auto-setup Rails helpers (?)
119
126
 
120
127
  ## Version history
121
128
 
129
+ * **0.2.1** - Add tag_files() to get all file paths for a given asset.
130
+ * **0.2.0** - Custom asset destination roots, fix Rake task.
131
+ * **0.1.1** - Rake tasks.
122
132
  * **0.1.0** - View helpers.
123
133
  * **0.0.3** - New `Definition` object to make working with definitions significantly easier, don't re-package assets that don't need re-packaging.
124
134
  * **0.0.2** - Compression now works and is specced.
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.2.0
1
+ 0.2.1
@@ -30,7 +30,7 @@ module Rapper
30
30
 
31
31
  # Build a CSS tag for an asset.
32
32
  #
33
- # @param [Symbol] name Name of the asset to build a `<link>` tag for.
33
+ # @param [Symbol] type Definition type.
34
34
  #
35
35
  # @param [Symbol] name Name of the asset to build a `<link>` tag for.
36
36
  #
@@ -40,6 +40,24 @@ module Rapper
40
40
  self.get_tag( CssTag, type, name )
41
41
  end
42
42
 
43
+ # Get all paths for a given asset. If bundling is turned on, a one-item
44
+ # array is returned containing the path to the asset file. Otherwise, an
45
+ # array of all component paths for the asset are returned.
46
+ #
47
+ # @param [Symbol] type Definition type.
48
+ #
49
+ # @param [Symbol] name Name of the asset to get paths for.
50
+ #
51
+ # @return [String<Array>] All files that comprise the given asset.
52
+ def tag_files( type, name )
53
+ definition = @definitions[type]
54
+ if self.get_config( "bundle" )
55
+ Array( definition.asset_path( name, definition.asset_tag_root ) )
56
+ else
57
+ definition.component_paths( name, definition.component_tag_root )
58
+ end
59
+ end
60
+
43
61
  protected
44
62
 
45
63
  def get_tag( klass, type, name )
@@ -50,15 +68,9 @@ module Rapper
50
68
  version = definition.get_version( name )
51
69
  end
52
70
 
53
- if self.get_config( "bundle" )
54
- path = definition.asset_path( name, definition.asset_tag_root )
71
+ tag_files( type, name ).map do |path|
55
72
  klass.send( :for, path, version, style )
56
- else
57
- paths = definition.component_paths( name, definition.component_tag_root )
58
- paths.map do |path|
59
- klass.send( :for, path, version, style )
60
- end.join( "\n" )
61
- end
73
+ end.join( "\n" )
62
74
  end
63
75
 
64
76
  # Represents an HTML tag.
data/rapper.gemspec CHANGED
@@ -5,7 +5,7 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{rapper}
8
- s.version = "0.2.0"
8
+ s.version = "0.2.1"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Tyson Tate"]
data/spec/rapper_spec.rb CHANGED
@@ -67,6 +67,14 @@ describe Rapper do
67
67
  ]
68
68
  ]
69
69
  end
70
+
71
+ it "provides tag files" do
72
+ rapper = Rapper::Engine.new( "spec/fixtures/config/assets.yml", "test" )
73
+ rapper.tag_files( "javascripts", "multiple_files" ).should == ["/javascripts/assets/multiple_files.js"]
74
+
75
+ rapper = Rapper::Engine.new( "spec/fixtures/config/assets.yml", "test_no_bundle" )
76
+ rapper.tag_files( "javascripts", "multiple_files" ).should == ["/javascripts/simple_1.js", "/javascripts/simple_2.js"]
77
+ end
70
78
  end
71
79
 
72
80
  describe "logging" do
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rapper
3
3
  version: !ruby/object:Gem::Version
4
- hash: 23
4
+ hash: 21
5
5
  prerelease:
6
6
  segments:
7
7
  - 0
8
8
  - 2
9
- - 0
10
- version: 0.2.0
9
+ - 1
10
+ version: 0.2.1
11
11
  platform: ruby
12
12
  authors:
13
13
  - Tyson Tate