embarista 1.1.2 → 1.1.3
Sign up to get free protection for your applications and to get access to all the features.
- data/.travis.yml +7 -0
- data/Gemfile +3 -5
- data/README.md +2 -0
- data/Rakefile +1 -0
- data/embarista.gemspec +2 -2
- data/lib/embarista.rb +6 -0
- data/lib/embarista/digest_helper.rb +59 -0
- data/lib/embarista/git.rb +18 -0
- data/lib/embarista/manifest_helper.rb +14 -0
- data/lib/embarista/s3sync.rb +68 -0
- data/lib/embarista/sass_functions.rb +30 -0
- data/lib/embarista/server.rb +2 -2
- data/lib/embarista/version.rb +1 -1
- data/spec/erb_filter_spec.rb +2 -2
- data/spec/precompile_handlebars_filter_spec.rb +2 -2
- data/spec/rewrite_minispade_requires_filter_spec.rb +2 -2
- data/spec/spec_helper.rb +16 -35
- data/spec/spec_helpers/memory_file_wrapper.rb +27 -0
- data/spec/spec_helpers/memory_manifest.rb +15 -0
- data/spec/strip_ember_asserts_filter_spec.rb +2 -2
- metadata +34 -24
data/.travis.yml
ADDED
data/Gemfile
CHANGED
@@ -2,11 +2,9 @@ source :rubygems
|
|
2
2
|
|
3
3
|
gemspec
|
4
4
|
|
5
|
-
gem 'rake-pipeline', github: 'livingsocial/rake-pipeline'
|
6
|
-
|
7
|
-
gem '
|
8
|
-
ref: 'ba0b8a00356b4c854930a8e849b5629d51ffd70f'
|
9
|
-
|
5
|
+
gem 'rake-pipeline', github: 'livingsocial/rake-pipeline'
|
6
|
+
gem 'rake-pipeline-web-filters', github: 'wycats/rake-pipeline-web-filters'
|
7
|
+
gem 'debugger'
|
10
8
|
gem 'pry'
|
11
9
|
gem 'pry-debugger'
|
12
10
|
gem 'pry-remote'
|
data/README.md
CHANGED
data/Rakefile
CHANGED
data/embarista.gemspec
CHANGED
@@ -14,8 +14,8 @@ Gem::Specification.new do |gem|
|
|
14
14
|
gem.require_paths = ["lib"]
|
15
15
|
gem.version = Embarista::VERSION
|
16
16
|
|
17
|
-
gem.add_dependency "rake-pipeline", '
|
18
|
-
gem.add_dependency "rake-pipeline-web-filters", '
|
17
|
+
gem.add_dependency "rake-pipeline", '> 0.6.0'
|
18
|
+
gem.add_dependency "rake-pipeline-web-filters", '>= 0.6.0'
|
19
19
|
gem.add_dependency "ruby_gntp"
|
20
20
|
gem.add_dependency "listen"
|
21
21
|
gem.add_dependency "colored"
|
data/lib/embarista.rb
CHANGED
@@ -7,6 +7,12 @@ module Embarista
|
|
7
7
|
|
8
8
|
autoload :JavascriptPipeline, 'embarista/javascript_pipeline'
|
9
9
|
autoload :Server, 'embarista/server'
|
10
|
+
|
11
|
+
autoload :Git, 'embarista/git'
|
12
|
+
autoload :S3sync, 'embarista/s3sync'
|
13
|
+
autoload :DigestHelper, 'embarista/digest_helper'
|
14
|
+
autoload :ManifestHelper, 'embarista/manifest_helper'
|
15
|
+
autoload :SassFunctions, 'embarista/sass_functions'
|
10
16
|
end
|
11
17
|
|
12
18
|
Rake::Pipeline::DSL::PipelineDSL.send(:include, Embarista::Helpers)
|
@@ -0,0 +1,59 @@
|
|
1
|
+
module Embarista
|
2
|
+
module DigestHelper
|
3
|
+
include FileUtils
|
4
|
+
extend self
|
5
|
+
|
6
|
+
def digest_and_copy_file(filename, target_dir = 'tmp')
|
7
|
+
file = Pathname.new(filename)
|
8
|
+
target_dir = Pathname.new(target_dir)
|
9
|
+
|
10
|
+
md5 = Digest::MD5.file(file).hexdigest
|
11
|
+
ext = file.extname
|
12
|
+
dirname = file.dirname
|
13
|
+
name_without_ext = file.basename.to_s.gsub(/#{ext}$/,'')
|
14
|
+
|
15
|
+
new_filename = "#{name_without_ext}-#{md5}#{ext}"
|
16
|
+
target_dir_with_path = target_dir + dirname
|
17
|
+
target_full_path = target_dir_with_path + new_filename
|
18
|
+
|
19
|
+
mkdir_p(target_dir_with_path)
|
20
|
+
cp(filename, target_full_path)
|
21
|
+
|
22
|
+
return dirname + new_filename
|
23
|
+
end
|
24
|
+
|
25
|
+
def digest_directory(origin, target)
|
26
|
+
origin = Pathname.new(origin).expand_path
|
27
|
+
target = Pathname.new(target).expand_path
|
28
|
+
|
29
|
+
target_base_dir = target + origin.basename
|
30
|
+
|
31
|
+
rm_rf target_base_dir
|
32
|
+
mkdir_p target_base_dir
|
33
|
+
|
34
|
+
cd(origin) do
|
35
|
+
glob_pattern_with_symlink_support = "**{,/*/**}/*.*" # http://stackoverflow.com/questions/357754/can-i-traverse-symlinked-directories-in-ruby-with-a-glob
|
36
|
+
files = Dir.glob(glob_pattern_with_symlink_support).reject { |file| File.directory?(file) }.reject { |file| file =~ /manifest*\.yml/ }
|
37
|
+
|
38
|
+
manifest_hash = files.each_with_object({}) do |file, manifest|
|
39
|
+
manifest[file.to_s] = digest_and_copy_file(file, target_base_dir).to_s
|
40
|
+
end
|
41
|
+
|
42
|
+
manifest_hash = ManifestHelper.prefix_manifest('/', manifest_hash)
|
43
|
+
|
44
|
+
open('manifest.yml', 'w') do |file|
|
45
|
+
YAML.dump(manifest_hash, file)
|
46
|
+
end
|
47
|
+
|
48
|
+
open('manifest.json', 'w') do |file|
|
49
|
+
JSON.dump(manifest_hash, file)
|
50
|
+
end
|
51
|
+
|
52
|
+
cp('manifest.yml', target_base_dir + 'manifest-latest.yml')
|
53
|
+
cp('manifest.json', target_base_dir + 'manifest-latest.json')
|
54
|
+
|
55
|
+
return manifest_hash
|
56
|
+
end
|
57
|
+
end
|
58
|
+
end
|
59
|
+
end
|
@@ -0,0 +1,18 @@
|
|
1
|
+
module Embarista
|
2
|
+
module Git
|
3
|
+
BRANCH_TO_DEPLOY_FROM = 'master'
|
4
|
+
extend self
|
5
|
+
|
6
|
+
def is_dirty?
|
7
|
+
not `git status --porcelain`.empty?
|
8
|
+
end
|
9
|
+
|
10
|
+
def git_branches
|
11
|
+
`git branch --no-color -vv`
|
12
|
+
end
|
13
|
+
|
14
|
+
def can_deploy_from_curren_branch?
|
15
|
+
git_branches =~ /\A\* #{BRANCH_TO_DEPLOY_FROM}.*origin\/#{BRANCH_TO_DEPLOY_FROM}: (ahead|behind)/
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
@@ -0,0 +1,14 @@
|
|
1
|
+
module Embarista
|
2
|
+
module ManifestHelper
|
3
|
+
extend self
|
4
|
+
|
5
|
+
def prefix_manifest(prefix, manifest)
|
6
|
+
manifest.each_with_object({}) do |entry, new_manifest|
|
7
|
+
key = prefix + entry.first
|
8
|
+
value = prefix + entry.last
|
9
|
+
|
10
|
+
new_manifest[key] = value
|
11
|
+
end
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
@@ -0,0 +1,68 @@
|
|
1
|
+
module Embarista
|
2
|
+
class S3sync
|
3
|
+
attr_reader :origin, :bucket_name, :pwd, :tmp_root, :manifest_path
|
4
|
+
|
5
|
+
def initialize(origin, options)
|
6
|
+
bucket_name = options.fetch(:bucket_name)
|
7
|
+
manifest_path = options.fetch(:manifest_path)
|
8
|
+
aws_key = options.fetch(:aws_key)
|
9
|
+
aws_secret = options.fetch(:aws_secret)
|
10
|
+
|
11
|
+
@connection = AWS::S3::Base.establish_connection!(
|
12
|
+
:access_key_id => aws_key,
|
13
|
+
:secret_access_key => aws_secret
|
14
|
+
)
|
15
|
+
|
16
|
+
@pwd = Pathname.new('').expand_path
|
17
|
+
@origin = origin
|
18
|
+
@bucket_name = bucket_name
|
19
|
+
@tmp_root = @pwd + @origin
|
20
|
+
@manifest_path = manifest_path
|
21
|
+
end
|
22
|
+
|
23
|
+
def self.sync(origin, options)
|
24
|
+
new(origin, options).sync
|
25
|
+
end
|
26
|
+
|
27
|
+
def store(name, file)
|
28
|
+
puts " -> #{name}"
|
29
|
+
AWS::S3::S3Object.store(name, file, bucket_name)
|
30
|
+
end
|
31
|
+
|
32
|
+
def sync
|
33
|
+
delta_manifest = build_delta_manifest
|
34
|
+
|
35
|
+
if delta_manifest.empty?
|
36
|
+
puts 'everything is up to date'
|
37
|
+
return
|
38
|
+
end
|
39
|
+
|
40
|
+
delta_manifest.values.each do |file_name|
|
41
|
+
open(tmp_root.to_s + file_name) do |file|
|
42
|
+
store(file_name, file)
|
43
|
+
end
|
44
|
+
end
|
45
|
+
|
46
|
+
open(manifest_path) do |file|
|
47
|
+
store('manifest-latest.yml', file)
|
48
|
+
end
|
49
|
+
end
|
50
|
+
|
51
|
+
def build_delta_manifest
|
52
|
+
return local_manifest unless remote_manifest
|
53
|
+
|
54
|
+
new_manifest_values = local_manifest.values - remote_manifest.values
|
55
|
+
local_manifest.invert.slice(*new_manifest_values).invert
|
56
|
+
end
|
57
|
+
|
58
|
+
def remote_manifest
|
59
|
+
@remote_manifest ||= YAML.load(AWS::S3::S3Object.find('manifest-latest.yml', bucket_name).value)
|
60
|
+
rescue AWS::S3::NoSuchKey
|
61
|
+
puts 'no remote existing manifest, uploading everything'
|
62
|
+
end
|
63
|
+
|
64
|
+
def local_manifest
|
65
|
+
@local_manifest ||= YAML.load_file('public/manifest.yml')
|
66
|
+
end
|
67
|
+
end
|
68
|
+
end
|
@@ -0,0 +1,30 @@
|
|
1
|
+
module Embarista
|
2
|
+
module SassFunctions
|
3
|
+
def manifest_url(path)
|
4
|
+
Sass::Script::String.new("url(#{lookup_manifest_path(path)})")
|
5
|
+
end
|
6
|
+
|
7
|
+
private
|
8
|
+
|
9
|
+
def manifest
|
10
|
+
@_manifest ||= begin
|
11
|
+
# TODO: some switch so that this doesn't run in dev?
|
12
|
+
manifest_path = 'public/manifest.yml'
|
13
|
+
return {} unless File.exist?(manifest_path)
|
14
|
+
YAML.load_file(manifest_path)
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
18
|
+
def lookup_manifest_path(path)
|
19
|
+
if digest?
|
20
|
+
manifest.fetch(path.value)
|
21
|
+
else
|
22
|
+
path
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
def digest?
|
27
|
+
ENV.key?('RAKEP_DIGEST')
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
data/lib/embarista/server.rb
CHANGED
@@ -52,7 +52,7 @@ module Embarista
|
|
52
52
|
pipeline.rake_application = Rake.application
|
53
53
|
pipeline.setup
|
54
54
|
end
|
55
|
-
project.
|
55
|
+
project.invoke if clean_on_startup
|
56
56
|
end
|
57
57
|
|
58
58
|
def start_watching
|
@@ -130,7 +130,7 @@ module Embarista
|
|
130
130
|
if added.size > 0 || removed.size > 0
|
131
131
|
puts "BUILD (CLEAN) #{start}"
|
132
132
|
begin
|
133
|
-
project.
|
133
|
+
project.invoke
|
134
134
|
rescue
|
135
135
|
success = false
|
136
136
|
puts "ERROR: #{$!.inspect}"
|
data/lib/embarista/version.rb
CHANGED
data/spec/erb_filter_spec.rb
CHANGED
@@ -1,8 +1,6 @@
|
|
1
1
|
require 'spec_helper'
|
2
2
|
|
3
3
|
describe Embarista::Filters::ErbFilter do
|
4
|
-
MemoryFileWrapper = Rake::Pipeline::SpecHelpers::MemoryFileWrapper
|
5
|
-
|
6
4
|
let(:file_wrapper_class) { MemoryFileWrapper }
|
7
5
|
|
8
6
|
let(:input_files) {
|
@@ -28,6 +26,8 @@ describe Embarista::Filters::ErbFilter do
|
|
28
26
|
input.sub(/\.(erb)$/, '.txt')
|
29
27
|
end
|
30
28
|
filter.file_wrapper_class = file_wrapper_class
|
29
|
+
filter.manifest = MemoryManifest.new
|
30
|
+
filter.last_manifest = MemoryManifest.new
|
31
31
|
filter.input_files = input_files
|
32
32
|
filter.output_root = output_root
|
33
33
|
filter.rake_application = rake_application
|
@@ -2,8 +2,6 @@ require 'spec_helper'
|
|
2
2
|
require 'execjs'
|
3
3
|
|
4
4
|
describe Embarista::Filters::PrecompileHandlebarsFilter do
|
5
|
-
MemoryFileWrapper = Rake::Pipeline::SpecHelpers::MemoryFileWrapper
|
6
|
-
|
7
5
|
let(:file_wrapper_class) { MemoryFileWrapper }
|
8
6
|
|
9
7
|
let(:input_hbs) {
|
@@ -31,6 +29,8 @@ HBS
|
|
31
29
|
let(:subject) {
|
32
30
|
filter = described_class.new(:emberjs => emberjs, :handlebarsjs => handlebarsjs, :jquery_version => jquery_version)
|
33
31
|
filter.file_wrapper_class = file_wrapper_class
|
32
|
+
filter.manifest = MemoryManifest.new
|
33
|
+
filter.last_manifest = MemoryManifest.new
|
34
34
|
filter.input_files = input_files
|
35
35
|
filter.output_root = output_root
|
36
36
|
filter.rake_application = rake_application
|
@@ -1,8 +1,6 @@
|
|
1
1
|
require 'spec_helper'
|
2
2
|
|
3
3
|
describe Embarista::Filters::RewriteMinispadeRequiresFilter do
|
4
|
-
MemoryFileWrapper = Rake::Pipeline::SpecHelpers::MemoryFileWrapper
|
5
|
-
|
6
4
|
let(:file_wrapper_class) { MemoryFileWrapper }
|
7
5
|
|
8
6
|
let(:input_js) {
|
@@ -33,6 +31,8 @@ JS
|
|
33
31
|
let(:subject) {
|
34
32
|
filter = described_class.new(options)
|
35
33
|
filter.file_wrapper_class = file_wrapper_class
|
34
|
+
filter.manifest = MemoryManifest.new
|
35
|
+
filter.last_manifest = MemoryManifest.new
|
36
36
|
filter.input_files = input_files
|
37
37
|
filter.output_root = output_root
|
38
38
|
filter.rake_application = rake_application
|
data/spec/spec_helper.rb
CHANGED
@@ -1,45 +1,26 @@
|
|
1
1
|
require 'pry'
|
2
2
|
require 'embarista'
|
3
|
+
require 'fileutils'
|
3
4
|
|
4
|
-
|
5
|
-
|
5
|
+
require "spec_helpers/memory_file_wrapper"
|
6
|
+
require "spec_helpers/memory_manifest"
|
6
7
|
|
7
|
-
|
8
|
-
|
9
|
-
@@data = {}
|
10
|
-
|
11
|
-
def self.files
|
12
|
-
@@files
|
13
|
-
end
|
14
|
-
|
15
|
-
def self.data
|
16
|
-
@@data
|
17
|
-
end
|
18
|
-
|
19
|
-
def with_encoding(new_encoding)
|
20
|
-
self.class.new(root, path, new_encoding, body)
|
21
|
-
end
|
22
|
-
|
23
|
-
def fullpath
|
24
|
-
File.join(root, path)
|
25
|
-
end
|
8
|
+
RSpec.configure do |config|
|
9
|
+
original = Dir.pwd
|
26
10
|
|
27
|
-
|
28
|
-
@@files[fullpath] = self
|
29
|
-
self.body = ""
|
30
|
-
yield
|
31
|
-
end
|
11
|
+
config.include FileUtils
|
32
12
|
|
33
|
-
|
34
|
-
|
35
|
-
|
13
|
+
def tmp
|
14
|
+
File.expand_path("../tmp", __FILE__)
|
15
|
+
end
|
36
16
|
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
17
|
+
config.before do
|
18
|
+
rm_rf(tmp)
|
19
|
+
mkdir_p(tmp)
|
20
|
+
Dir.chdir(tmp)
|
41
21
|
end
|
42
|
-
end
|
43
22
|
|
44
|
-
|
23
|
+
config.after do
|
24
|
+
Dir.chdir(original)
|
25
|
+
end
|
45
26
|
end
|
@@ -0,0 +1,27 @@
|
|
1
|
+
class MemoryFileWrapper < Struct.new(:root, :path, :encoding, :body)
|
2
|
+
@@files = {}
|
3
|
+
|
4
|
+
def self.files
|
5
|
+
@@files
|
6
|
+
end
|
7
|
+
|
8
|
+
def with_encoding(new_encoding)
|
9
|
+
self.class.new(root, path, new_encoding, body)
|
10
|
+
end
|
11
|
+
|
12
|
+
def fullpath
|
13
|
+
File.join(root, path)
|
14
|
+
end
|
15
|
+
|
16
|
+
def create
|
17
|
+
@@files[fullpath] = self
|
18
|
+
self.body = ""
|
19
|
+
yield
|
20
|
+
end
|
21
|
+
|
22
|
+
alias read body
|
23
|
+
|
24
|
+
def write(contents)
|
25
|
+
self.body << contents
|
26
|
+
end
|
27
|
+
end
|
@@ -1,8 +1,6 @@
|
|
1
1
|
require 'spec_helper'
|
2
2
|
|
3
3
|
describe Embarista::Filters::StripEmberAssertsFilter do
|
4
|
-
MemoryFileWrapper = Rake::Pipeline::SpecHelpers::MemoryFileWrapper
|
5
|
-
|
6
4
|
let(:file_wrapper_class) { MemoryFileWrapper }
|
7
5
|
|
8
6
|
let(:input_js) {
|
@@ -31,6 +29,8 @@ JS
|
|
31
29
|
let(:subject) {
|
32
30
|
filter = described_class.new
|
33
31
|
filter.file_wrapper_class = file_wrapper_class
|
32
|
+
filter.manifest = MemoryManifest.new
|
33
|
+
filter.last_manifest = MemoryManifest.new
|
34
34
|
filter.input_files = input_files
|
35
35
|
filter.output_root = output_root
|
36
36
|
filter.rake_application = rake_application
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: embarista
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.1.
|
4
|
+
version: 1.1.3
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -10,33 +10,33 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date: 2012-11-
|
13
|
+
date: 2012-11-23 00:00:00.000000000Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: rake-pipeline
|
17
|
-
requirement: &
|
17
|
+
requirement: &2153730900 !ruby/object:Gem::Requirement
|
18
18
|
none: false
|
19
19
|
requirements:
|
20
|
-
- -
|
20
|
+
- - ! '>'
|
21
21
|
- !ruby/object:Gem::Version
|
22
22
|
version: 0.6.0
|
23
23
|
type: :runtime
|
24
24
|
prerelease: false
|
25
|
-
version_requirements: *
|
25
|
+
version_requirements: *2153730900
|
26
26
|
- !ruby/object:Gem::Dependency
|
27
27
|
name: rake-pipeline-web-filters
|
28
|
-
requirement: &
|
28
|
+
requirement: &2153729800 !ruby/object:Gem::Requirement
|
29
29
|
none: false
|
30
30
|
requirements:
|
31
|
-
- -
|
31
|
+
- - ! '>='
|
32
32
|
- !ruby/object:Gem::Version
|
33
33
|
version: 0.6.0
|
34
34
|
type: :runtime
|
35
35
|
prerelease: false
|
36
|
-
version_requirements: *
|
36
|
+
version_requirements: *2153729800
|
37
37
|
- !ruby/object:Gem::Dependency
|
38
38
|
name: ruby_gntp
|
39
|
-
requirement: &
|
39
|
+
requirement: &2153728700 !ruby/object:Gem::Requirement
|
40
40
|
none: false
|
41
41
|
requirements:
|
42
42
|
- - ! '>='
|
@@ -44,10 +44,10 @@ dependencies:
|
|
44
44
|
version: '0'
|
45
45
|
type: :runtime
|
46
46
|
prerelease: false
|
47
|
-
version_requirements: *
|
47
|
+
version_requirements: *2153728700
|
48
48
|
- !ruby/object:Gem::Dependency
|
49
49
|
name: listen
|
50
|
-
requirement: &
|
50
|
+
requirement: &2153727140 !ruby/object:Gem::Requirement
|
51
51
|
none: false
|
52
52
|
requirements:
|
53
53
|
- - ! '>='
|
@@ -55,10 +55,10 @@ dependencies:
|
|
55
55
|
version: '0'
|
56
56
|
type: :runtime
|
57
57
|
prerelease: false
|
58
|
-
version_requirements: *
|
58
|
+
version_requirements: *2153727140
|
59
59
|
- !ruby/object:Gem::Dependency
|
60
60
|
name: colored
|
61
|
-
requirement: &
|
61
|
+
requirement: &2153725500 !ruby/object:Gem::Requirement
|
62
62
|
none: false
|
63
63
|
requirements:
|
64
64
|
- - ! '>='
|
@@ -66,10 +66,10 @@ dependencies:
|
|
66
66
|
version: '0'
|
67
67
|
type: :runtime
|
68
68
|
prerelease: false
|
69
|
-
version_requirements: *
|
69
|
+
version_requirements: *2153725500
|
70
70
|
- !ruby/object:Gem::Dependency
|
71
71
|
name: rb-fsevent
|
72
|
-
requirement: &
|
72
|
+
requirement: &2153724240 !ruby/object:Gem::Requirement
|
73
73
|
none: false
|
74
74
|
requirements:
|
75
75
|
- - ! '>='
|
@@ -77,10 +77,10 @@ dependencies:
|
|
77
77
|
version: '0'
|
78
78
|
type: :runtime
|
79
79
|
prerelease: false
|
80
|
-
version_requirements: *
|
80
|
+
version_requirements: *2153724240
|
81
81
|
- !ruby/object:Gem::Dependency
|
82
82
|
name: rspec
|
83
|
-
requirement: &
|
83
|
+
requirement: &2153712800 !ruby/object:Gem::Requirement
|
84
84
|
none: false
|
85
85
|
requirements:
|
86
86
|
- - ! '>='
|
@@ -88,10 +88,10 @@ dependencies:
|
|
88
88
|
version: '0'
|
89
89
|
type: :development
|
90
90
|
prerelease: false
|
91
|
-
version_requirements: *
|
91
|
+
version_requirements: *2153712800
|
92
92
|
- !ruby/object:Gem::Dependency
|
93
93
|
name: rb-readline
|
94
|
-
requirement: &
|
94
|
+
requirement: &2153710360 !ruby/object:Gem::Requirement
|
95
95
|
none: false
|
96
96
|
requirements:
|
97
97
|
- - ! '>='
|
@@ -99,10 +99,10 @@ dependencies:
|
|
99
99
|
version: '0'
|
100
100
|
type: :development
|
101
101
|
prerelease: false
|
102
|
-
version_requirements: *
|
102
|
+
version_requirements: *2153710360
|
103
103
|
- !ruby/object:Gem::Dependency
|
104
104
|
name: execjs
|
105
|
-
requirement: &
|
105
|
+
requirement: &2153709380 !ruby/object:Gem::Requirement
|
106
106
|
none: false
|
107
107
|
requirements:
|
108
108
|
- - ! '>='
|
@@ -110,7 +110,7 @@ dependencies:
|
|
110
110
|
version: '0'
|
111
111
|
type: :development
|
112
112
|
prerelease: false
|
113
|
-
version_requirements: *
|
113
|
+
version_requirements: *2153709380
|
114
114
|
description: A collection of web filters for rake-pipeline
|
115
115
|
email:
|
116
116
|
- tech@yapp.us
|
@@ -120,19 +120,25 @@ extra_rdoc_files: []
|
|
120
120
|
files:
|
121
121
|
- .gitignore
|
122
122
|
- .rspec
|
123
|
+
- .travis.yml
|
123
124
|
- Gemfile
|
124
125
|
- LICENSE
|
125
126
|
- README.md
|
126
127
|
- Rakefile
|
127
128
|
- embarista.gemspec
|
128
129
|
- lib/embarista.rb
|
130
|
+
- lib/embarista/digest_helper.rb
|
129
131
|
- lib/embarista/filters.rb
|
130
132
|
- lib/embarista/filters/erb_filter.rb
|
131
133
|
- lib/embarista/filters/precompile_handlebars_filter.rb
|
132
134
|
- lib/embarista/filters/rewrite_minispade_requires_filter.rb
|
133
135
|
- lib/embarista/filters/strip_ember_asserts_filter.rb
|
136
|
+
- lib/embarista/git.rb
|
134
137
|
- lib/embarista/helpers.rb
|
135
138
|
- lib/embarista/javascript_pipeline.rb
|
139
|
+
- lib/embarista/manifest_helper.rb
|
140
|
+
- lib/embarista/s3sync.rb
|
141
|
+
- lib/embarista/sass_functions.rb
|
136
142
|
- lib/embarista/server.rb
|
137
143
|
- lib/embarista/version.rb
|
138
144
|
- spec/erb_filter_spec.rb
|
@@ -140,6 +146,8 @@ files:
|
|
140
146
|
- spec/precompile_handlebars_filter_spec.rb
|
141
147
|
- spec/rewrite_minispade_requires_filter_spec.rb
|
142
148
|
- spec/spec_helper.rb
|
149
|
+
- spec/spec_helpers/memory_file_wrapper.rb
|
150
|
+
- spec/spec_helpers/memory_manifest.rb
|
143
151
|
- spec/strip_ember_asserts_filter_spec.rb
|
144
152
|
- vendor/ember.js
|
145
153
|
- vendor/handlebars.js
|
@@ -157,7 +165,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
157
165
|
version: '0'
|
158
166
|
segments:
|
159
167
|
- 0
|
160
|
-
hash:
|
168
|
+
hash: 1510070683163627783
|
161
169
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
162
170
|
none: false
|
163
171
|
requirements:
|
@@ -166,7 +174,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
166
174
|
version: '0'
|
167
175
|
segments:
|
168
176
|
- 0
|
169
|
-
hash:
|
177
|
+
hash: 1510070683163627783
|
170
178
|
requirements: []
|
171
179
|
rubyforge_project:
|
172
180
|
rubygems_version: 1.8.10
|
@@ -180,4 +188,6 @@ test_files:
|
|
180
188
|
- spec/precompile_handlebars_filter_spec.rb
|
181
189
|
- spec/rewrite_minispade_requires_filter_spec.rb
|
182
190
|
- spec/spec_helper.rb
|
191
|
+
- spec/spec_helpers/memory_file_wrapper.rb
|
192
|
+
- spec/spec_helpers/memory_manifest.rb
|
183
193
|
- spec/strip_ember_asserts_filter_spec.rb
|