barista 0.2.1 → 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.
- data/README.md +11 -0
- data/app/controllers/barista_controller.rb +2 -2
- data/barista.gemspec +4 -4
- data/lib/barista.rb +14 -14
- data/lib/barista/compiler.rb +6 -16
- data/lib/barista/version.rb +3 -3
- metadata +10 -5
data/README.md
CHANGED
@@ -70,3 +70,14 @@ Currently available options are:
|
|
70
70
|
* no\_wrap - stop coffee from automatically wrapping JS in a closure.
|
71
71
|
* change\_output\_prefix! - method to change the output prefix for a framework.
|
72
72
|
|
73
|
+
## Note on Patches/Pull Requests ##
|
74
|
+
|
75
|
+
1. Fork the project.
|
76
|
+
2. Make your feature addition or bug fix.
|
77
|
+
3. Add tests for it. This is important so I don't break it in a future version unintentionally.
|
78
|
+
4. Commit, do not mess with rakefile, version, or history. (if you want to have your own version, that is fine but bump version in a commit by itself I can ignore when I pull)
|
79
|
+
5. Send me a pull request. Bonus points for topic branches.
|
80
|
+
|
81
|
+
## Copyright ##
|
82
|
+
|
83
|
+
Copyright (c) 2010 Darcy Laycock. See LICENSE for details.
|
@@ -8,7 +8,7 @@ class BaristaController < ActionController::Base
|
|
8
8
|
path = normalize_path(params[:js_path])
|
9
9
|
p path
|
10
10
|
return head(:forbidden) unless can_render_path?(path)
|
11
|
-
compiled = Barista.
|
11
|
+
compiled = Barista.compile_file!(path)
|
12
12
|
compiled.nil? ? head(:not_found) : render(:text => compiled.to_s)
|
13
13
|
end
|
14
14
|
|
@@ -22,4 +22,4 @@ class BaristaController < ActionController::Base
|
|
22
22
|
!path.include?("..")
|
23
23
|
end
|
24
24
|
|
25
|
-
end
|
25
|
+
end
|
data/barista.gemspec
CHANGED
@@ -5,11 +5,11 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = %q{barista}
|
8
|
-
s.version = "0.
|
8
|
+
s.version = "0.3.0"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Darcy Laycock"]
|
12
|
-
s.date = %q{2010-
|
12
|
+
s.date = %q{2010-06-11}
|
13
13
|
s.description = %q{Automatically compiles app/scripts/*.coffee to javascript for rails awesomesauce.}
|
14
14
|
s.email = %q{sutto@sutto.net}
|
15
15
|
s.extra_rdoc_files = [
|
@@ -38,14 +38,14 @@ Gem::Specification.new do |s|
|
|
38
38
|
s.homepage = %q{http://github.com/Sutto/barista}
|
39
39
|
s.rdoc_options = ["--charset=UTF-8"]
|
40
40
|
s.require_paths = ["lib"]
|
41
|
-
s.rubygems_version = %q{1.3.
|
41
|
+
s.rubygems_version = %q{1.3.7}
|
42
42
|
s.summary = %q{Transparent coffeescript support for rails 3}
|
43
43
|
|
44
44
|
if s.respond_to? :specification_version then
|
45
45
|
current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
|
46
46
|
s.specification_version = 3
|
47
47
|
|
48
|
-
if Gem::Version.new(Gem::
|
48
|
+
if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
|
49
49
|
else
|
50
50
|
end
|
51
51
|
else
|
data/lib/barista.rb
CHANGED
@@ -2,34 +2,34 @@ require 'active_support'
|
|
2
2
|
require 'pathname'
|
3
3
|
|
4
4
|
module Barista
|
5
|
-
|
5
|
+
|
6
6
|
autoload :Compiler, 'barista/compiler'
|
7
7
|
autoload :Filter, 'barista/filter'
|
8
8
|
autoload :Framework, 'barista/framework'
|
9
|
-
|
9
|
+
|
10
10
|
class << self
|
11
|
-
|
11
|
+
|
12
12
|
def configure
|
13
13
|
yield self if block_given?
|
14
14
|
end
|
15
|
-
|
15
|
+
|
16
16
|
def root
|
17
17
|
@root ||= Rails.root.join("app", "coffeescripts")
|
18
18
|
end
|
19
|
-
|
19
|
+
|
20
20
|
def root=(value)
|
21
21
|
@root = Pathname(value.to_s)
|
22
22
|
Framework.default_framework = nil
|
23
23
|
end
|
24
|
-
|
24
|
+
|
25
25
|
def output_root
|
26
26
|
@output_root ||= Rails.root.join("public", "javascripts")
|
27
27
|
end
|
28
|
-
|
28
|
+
|
29
29
|
def output_root=(value)
|
30
30
|
@output_root = Pathname(value.to_s)
|
31
31
|
end
|
32
|
-
|
32
|
+
|
33
33
|
def compile_file!(file, force = false)
|
34
34
|
origin_path, framework = Framework.full_path_for(file)
|
35
35
|
return if origin_path.blank?
|
@@ -37,12 +37,12 @@ module Barista
|
|
37
37
|
return unless force || Compiler.dirty?(origin_path, destination_path)
|
38
38
|
debug "Compiling #{file} from framework '#{framework.name}'"
|
39
39
|
FileUtils.mkdir_p File.dirname(destination_path)
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
40
|
+
content = Compiler.compile(origin_path)
|
41
|
+
# Write the rendered content to file.
|
42
|
+
File.open(destination_path, "w+") { |f| f.write content }
|
43
|
+
content
|
44
44
|
rescue SystemCallError
|
45
|
-
|
45
|
+
""
|
46
46
|
end
|
47
47
|
|
48
48
|
def compile_all!(force = false)
|
@@ -104,4 +104,4 @@ module Barista
|
|
104
104
|
end
|
105
105
|
end
|
106
106
|
|
107
|
-
end
|
107
|
+
end
|
data/lib/barista/compiler.rb
CHANGED
@@ -6,22 +6,19 @@ module Barista
|
|
6
6
|
class << self; attr_accessor :bin_path; end
|
7
7
|
self.bin_path ||= "coffee"
|
8
8
|
|
9
|
-
def self.compile(
|
10
|
-
new(
|
9
|
+
def self.compile(path)
|
10
|
+
new(path).to_js
|
11
11
|
end
|
12
12
|
|
13
|
-
def initialize(
|
13
|
+
def initialize(path)
|
14
14
|
@compiled = false
|
15
|
-
@
|
15
|
+
@path = path
|
16
16
|
end
|
17
17
|
|
18
18
|
def compile!
|
19
19
|
# Compiler code thanks to bistro_car.
|
20
|
-
|
21
|
-
@compiled_content = invoke_coffee(temp_file_for_content.path)
|
20
|
+
@compiled_content = invoke_coffee(@path)
|
22
21
|
@compiled = true
|
23
|
-
ensure
|
24
|
-
tf.unlink rescue nil
|
25
22
|
end
|
26
23
|
|
27
24
|
def to_js
|
@@ -41,13 +38,6 @@ module Barista
|
|
41
38
|
end.join(" ")
|
42
39
|
end
|
43
40
|
|
44
|
-
def temp_file_for_content(content = @content)
|
45
|
-
tf = Tempfile.new("barista-#{content_hash}.coffee")
|
46
|
-
tf.write content
|
47
|
-
tf.close
|
48
|
-
tf
|
49
|
-
end
|
50
|
-
|
51
41
|
def invoke_coffee(path)
|
52
42
|
command = "#{self.class.bin_path} #{coffee_options} '#{path}'".squeeze(' ')
|
53
43
|
%x(#{command})
|
@@ -58,4 +48,4 @@ module Barista
|
|
58
48
|
end
|
59
49
|
|
60
50
|
end
|
61
|
-
end
|
51
|
+
end
|
data/lib/barista/version.rb
CHANGED
metadata
CHANGED
@@ -1,12 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: barista
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
+
hash: 19
|
4
5
|
prerelease: false
|
5
6
|
segments:
|
6
7
|
- 0
|
7
|
-
-
|
8
|
-
-
|
9
|
-
version: 0.
|
8
|
+
- 3
|
9
|
+
- 0
|
10
|
+
version: 0.3.0
|
10
11
|
platform: ruby
|
11
12
|
authors:
|
12
13
|
- Darcy Laycock
|
@@ -14,7 +15,7 @@ autorequire:
|
|
14
15
|
bindir: bin
|
15
16
|
cert_chain: []
|
16
17
|
|
17
|
-
date: 2010-
|
18
|
+
date: 2010-06-11 00:00:00 +08:00
|
18
19
|
default_executable:
|
19
20
|
dependencies: []
|
20
21
|
|
@@ -55,23 +56,27 @@ rdoc_options:
|
|
55
56
|
require_paths:
|
56
57
|
- lib
|
57
58
|
required_ruby_version: !ruby/object:Gem::Requirement
|
59
|
+
none: false
|
58
60
|
requirements:
|
59
61
|
- - ">="
|
60
62
|
- !ruby/object:Gem::Version
|
63
|
+
hash: 3
|
61
64
|
segments:
|
62
65
|
- 0
|
63
66
|
version: "0"
|
64
67
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
68
|
+
none: false
|
65
69
|
requirements:
|
66
70
|
- - ">="
|
67
71
|
- !ruby/object:Gem::Version
|
72
|
+
hash: 3
|
68
73
|
segments:
|
69
74
|
- 0
|
70
75
|
version: "0"
|
71
76
|
requirements: []
|
72
77
|
|
73
78
|
rubyforge_project:
|
74
|
-
rubygems_version: 1.3.
|
79
|
+
rubygems_version: 1.3.7
|
75
80
|
signing_key:
|
76
81
|
specification_version: 3
|
77
82
|
summary: Transparent coffeescript support for rails 3
|