backtalk 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,4 @@
1
+ #!/usr/bin/env ruby
2
+ require 'backtalk'
3
+
4
+ Backtalk::run!
@@ -0,0 +1,21 @@
1
+ require 'rubygems/builder'
2
+ require 'tmpdir'
3
+
4
+ require 'backtalk/backtalkfile'
5
+
6
+ module Backtalk
7
+
8
+ def self.run!
9
+ backtalkfile = Backtalkfile.new "Backtalkfile"
10
+ Dir.mktmpdir do | dir |
11
+ backtalkfile.prep_build dir
12
+ gem = Gem::Builder.new backtalkfile.gem_spec
13
+ output_file = File.basename(backtalkfile.gem_spec.cache_file)
14
+ Dir.chdir dir do
15
+ gem.build
16
+ end
17
+ FileUtils.cp(File.join(dir, output_file), output_file)
18
+ end
19
+ end
20
+
21
+ end
@@ -0,0 +1,64 @@
1
+ require 'fileutils'
2
+ require 'rubygems/package'
3
+
4
+ module Backtalk
5
+
6
+ class Backtalkfile
7
+
8
+ def initialize(filename)
9
+ @definition = Definition.new
10
+ @definition.instance_eval(File.read(filename), filename)
11
+ end
12
+
13
+ def gem_spec
14
+ gem_spec = @definition.as_gem_spec
15
+ gem_spec.files = collect_sass_files.map! { |filename| "styles/#{filename}" } + %W(lib/#{@definition.gem_name}.rb)
16
+ gem_spec
17
+ end
18
+
19
+ def prep_build(dest)
20
+ collect_sass_files.each do | filename |
21
+ output = File.join(dest, 'styles', filename)
22
+ FileUtils.mkdir_p File.dirname(output)
23
+ FileUtils.cp filename, output
24
+ end
25
+ add_loader dest
26
+ end
27
+
28
+ private
29
+
30
+ def collect_sass_files
31
+ Dir['**/*.scss']
32
+ end
33
+
34
+ def add_loader(dest)
35
+ FileUtils.mkdir_p File.join(dest, 'lib')
36
+ FileUtils.cp File.expand_path('sass_importer.rb', File.dirname(__FILE__)), File.join(dest, 'lib', "#{@definition.gem_name}.rb")
37
+ end
38
+
39
+ end
40
+
41
+ class Backtalkfile::Definition
42
+
43
+ attr_accessor :gem_name
44
+ attr_writer :version
45
+ attr_writer :authors
46
+
47
+ def as_gem_spec
48
+ Gem::Specification.new do |s|
49
+ s.name = @gem_name
50
+ s.version = @version
51
+ s.authors = @authors
52
+ s.summary = "Sass package #{@gem_name}"
53
+ end
54
+ end
55
+
56
+ private
57
+
58
+ def definition
59
+ yield self
60
+ end
61
+
62
+ end
63
+
64
+ end
@@ -0,0 +1 @@
1
+ Sass.load_paths << File.join(File.dirname(__FILE__), '..', 'styles')
metadata ADDED
@@ -0,0 +1,65 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: backtalk
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.0.0
5
+ prerelease:
6
+ platform: ruby
7
+ authors:
8
+ - Chris Northwood
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2015-10-04 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: sass
16
+ requirement: !ruby/object:Gem::Requirement
17
+ none: false
18
+ requirements:
19
+ - - ! '>='
20
+ - !ruby/object:Gem::Version
21
+ version: '0'
22
+ type: :runtime
23
+ prerelease: false
24
+ version_requirements: !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - ! '>='
28
+ - !ruby/object:Gem::Version
29
+ version: '0'
30
+ description: Making Sassy gems
31
+ email: chris@pling.org.uk
32
+ executables:
33
+ - backtalk
34
+ extensions: []
35
+ extra_rdoc_files: []
36
+ files:
37
+ - lib/backtalk.rb
38
+ - lib/backtalk/backtalkfile.rb
39
+ - lib/backtalk/sass_importer.rb
40
+ - bin/backtalk
41
+ homepage: https://github.com/cnorthwood/backtalk
42
+ licenses: []
43
+ post_install_message:
44
+ rdoc_options: []
45
+ require_paths:
46
+ - lib
47
+ required_ruby_version: !ruby/object:Gem::Requirement
48
+ none: false
49
+ requirements:
50
+ - - ! '>='
51
+ - !ruby/object:Gem::Version
52
+ version: '0'
53
+ required_rubygems_version: !ruby/object:Gem::Requirement
54
+ none: false
55
+ requirements:
56
+ - - ! '>='
57
+ - !ruby/object:Gem::Version
58
+ version: '0'
59
+ requirements: []
60
+ rubyforge_project:
61
+ rubygems_version: 1.8.24
62
+ signing_key:
63
+ specification_version: 3
64
+ summary: Backtalk
65
+ test_files: []