bunch 0.0.11 → 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
data/bunch.gemspec CHANGED
@@ -20,6 +20,8 @@ Gem::Specification.new do |s|
20
20
 
21
21
  s.add_runtime_dependency 'mime-types'
22
22
 
23
+ s.add_development_dependency 'coffee-script'
24
+ s.add_development_dependency 'sass'
23
25
  s.add_development_dependency 'yard'
24
26
  s.add_development_dependency 'rdiscount'
25
27
  s.add_development_dependency 'shoulda-context'
data/lib/bunch.rb CHANGED
@@ -48,22 +48,24 @@ class << Bunch
48
48
  end
49
49
 
50
50
  def content_for(path)
51
- tree_for(normalized_path(path)).content
51
+ tree_for(normalized_path(path), {}).content
52
52
  end
53
53
 
54
- def tree_for(path)
55
- case
56
- when IGNORED_PATTERNS.any? { |p| File.basename(path) =~ p }
57
- Bunch::NullNode.new(path)
58
- when File.directory?(path)
59
- Bunch::DirectoryNode.new(path)
60
- when path =~ /\.coffee$/
61
- Bunch::CoffeeNode.new(path)
62
- when path =~ /\.s(a|c)ss$/
63
- Bunch::SassNode.new(path)
64
- else
65
- Bunch::FileNode.new(path)
66
- end
54
+ def tree_for(path, options)
55
+ node = case
56
+ when IGNORED_PATTERNS.any? { |p| File.basename(path) =~ p }
57
+ Bunch::NullNode.new(path)
58
+ when File.directory?(path)
59
+ Bunch::DirectoryNode.new(path)
60
+ when path =~ /\.coffee$/
61
+ Bunch::CoffeeNode.new(path)
62
+ when path =~ /\.s(a|c)ss$/
63
+ Bunch::SassNode.new(path)
64
+ else
65
+ Bunch::FileNode.new(path)
66
+ end
67
+ node.options = options
68
+ node
67
69
  end
68
70
 
69
71
  protected
@@ -1,5 +1,7 @@
1
1
  module Bunch
2
2
  class AbstractNode
3
+ attr_accessor :options
4
+
3
5
  def content
4
6
  raise NotImplementedError
5
7
  end
data/lib/bunch/cli.rb CHANGED
@@ -22,7 +22,7 @@ module Bunch
22
22
 
23
23
  def generate_files
24
24
  Bunch.load_ignores(@input)
25
- tree = Bunch.tree_for(@input.to_s)
25
+ tree = Bunch.tree_for(@input.to_s, @opts)
26
26
 
27
27
  if @output
28
28
  FileUtils.mkdir_p(@output.to_s)
@@ -74,6 +74,10 @@ module Bunch
74
74
  options[:all] = true
75
75
  end
76
76
 
77
+ opts.on '-r', '--recurse', 'Recursively generate one output file for every input file and directory.' do
78
+ options[:recurse] = true
79
+ end
80
+
77
81
  opts.on_tail '-h', '--help', 'Show this message.' do
78
82
  puts opts
79
83
  exit
@@ -12,7 +12,10 @@ module Bunch
12
12
 
13
13
  def children
14
14
  @children ||= begin
15
- children = filenames.map &Bunch.method(:tree_for)
15
+ children = filenames.map do |filename|
16
+ Bunch.tree_for(filename, @options)
17
+ end
18
+
16
19
  ordering_file = @root.join('_.yml')
17
20
 
18
21
  if File.exist?(ordering_file)
@@ -51,6 +54,18 @@ module Bunch
51
54
  super
52
55
  end
53
56
 
57
+ def write_to_dir(dir)
58
+ super
59
+
60
+ if @options[:recurse]
61
+ directory_name = File.join(dir, name)
62
+ FileUtils.mkdir(directory_name)
63
+ children.each do |child|
64
+ child.write_to_dir(directory_name)
65
+ end
66
+ end
67
+ end
68
+
54
69
  def inspect
55
70
  "#<DirectoryNode @root=#{@root.inspect} @children=#{children.inspect}>"
56
71
  end
data/lib/bunch/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Bunch
2
- VERSION = "0.0.11"
2
+ VERSION = "0.1.0"
3
3
  end
metadata CHANGED
@@ -1,82 +1,136 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: bunch
3
- version: !ruby/object:Gem::Version
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
4
5
  prerelease:
5
- version: 0.0.11
6
6
  platform: ruby
7
- authors:
7
+ authors:
8
8
  - Ryan Fitzgerald
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
-
13
- date: 2012-01-31 00:00:00 Z
14
- dependencies:
15
- - !ruby/object:Gem::Dependency
12
+ date: 2012-07-13 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
16
15
  name: mime-types
17
- prerelease: false
18
- requirement: &id001 !ruby/object:Gem::Requirement
16
+ requirement: !ruby/object:Gem::Requirement
19
17
  none: false
20
- requirements:
21
- - - ">="
22
- - !ruby/object:Gem::Version
23
- version: "0"
18
+ requirements:
19
+ - - ! '>='
20
+ - !ruby/object:Gem::Version
21
+ version: '0'
24
22
  type: :runtime
25
- version_requirements: *id001
26
- - !ruby/object:Gem::Dependency
27
- name: yard
28
23
  prerelease: false
29
- requirement: &id002 !ruby/object:Gem::Requirement
24
+ version_requirements: !ruby/object:Gem::Requirement
30
25
  none: false
31
- requirements:
32
- - - ">="
33
- - !ruby/object:Gem::Version
34
- version: "0"
26
+ requirements:
27
+ - - ! '>='
28
+ - !ruby/object:Gem::Version
29
+ version: '0'
30
+ - !ruby/object:Gem::Dependency
31
+ name: coffee-script
32
+ requirement: !ruby/object:Gem::Requirement
33
+ none: false
34
+ requirements:
35
+ - - ! '>='
36
+ - !ruby/object:Gem::Version
37
+ version: '0'
35
38
  type: :development
36
- version_requirements: *id002
37
- - !ruby/object:Gem::Dependency
38
- name: rdiscount
39
39
  prerelease: false
40
- requirement: &id003 !ruby/object:Gem::Requirement
40
+ version_requirements: !ruby/object:Gem::Requirement
41
41
  none: false
42
- requirements:
43
- - - ">="
44
- - !ruby/object:Gem::Version
45
- version: "0"
42
+ requirements:
43
+ - - ! '>='
44
+ - !ruby/object:Gem::Version
45
+ version: '0'
46
+ - !ruby/object:Gem::Dependency
47
+ name: sass
48
+ requirement: !ruby/object:Gem::Requirement
49
+ none: false
50
+ requirements:
51
+ - - ! '>='
52
+ - !ruby/object:Gem::Version
53
+ version: '0'
46
54
  type: :development
47
- version_requirements: *id003
48
- - !ruby/object:Gem::Dependency
49
- name: shoulda-context
50
55
  prerelease: false
51
- requirement: &id004 !ruby/object:Gem::Requirement
56
+ version_requirements: !ruby/object:Gem::Requirement
52
57
  none: false
53
- requirements:
54
- - - ">="
55
- - !ruby/object:Gem::Version
56
- version: "0"
58
+ requirements:
59
+ - - ! '>='
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ - !ruby/object:Gem::Dependency
63
+ name: yard
64
+ requirement: !ruby/object:Gem::Requirement
65
+ none: false
66
+ requirements:
67
+ - - ! '>='
68
+ - !ruby/object:Gem::Version
69
+ version: '0'
70
+ type: :development
71
+ prerelease: false
72
+ version_requirements: !ruby/object:Gem::Requirement
73
+ none: false
74
+ requirements:
75
+ - - ! '>='
76
+ - !ruby/object:Gem::Version
77
+ version: '0'
78
+ - !ruby/object:Gem::Dependency
79
+ name: rdiscount
80
+ requirement: !ruby/object:Gem::Requirement
81
+ none: false
82
+ requirements:
83
+ - - ! '>='
84
+ - !ruby/object:Gem::Version
85
+ version: '0'
57
86
  type: :development
58
- version_requirements: *id004
59
- - !ruby/object:Gem::Dependency
60
- name: mocha
61
87
  prerelease: false
62
- requirement: &id005 !ruby/object:Gem::Requirement
88
+ version_requirements: !ruby/object:Gem::Requirement
89
+ none: false
90
+ requirements:
91
+ - - ! '>='
92
+ - !ruby/object:Gem::Version
93
+ version: '0'
94
+ - !ruby/object:Gem::Dependency
95
+ name: shoulda-context
96
+ requirement: !ruby/object:Gem::Requirement
63
97
  none: false
64
- requirements:
65
- - - ">="
66
- - !ruby/object:Gem::Version
67
- version: "0"
98
+ requirements:
99
+ - - ! '>='
100
+ - !ruby/object:Gem::Version
101
+ version: '0'
68
102
  type: :development
69
- version_requirements: *id005
103
+ prerelease: false
104
+ version_requirements: !ruby/object:Gem::Requirement
105
+ none: false
106
+ requirements:
107
+ - - ! '>='
108
+ - !ruby/object:Gem::Version
109
+ version: '0'
110
+ - !ruby/object:Gem::Dependency
111
+ name: mocha
112
+ requirement: !ruby/object:Gem::Requirement
113
+ none: false
114
+ requirements:
115
+ - - ! '>='
116
+ - !ruby/object:Gem::Version
117
+ version: '0'
118
+ type: :development
119
+ prerelease: false
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ none: false
122
+ requirements:
123
+ - - ! '>='
124
+ - !ruby/object:Gem::Version
125
+ version: '0'
70
126
  description: Directory-structure-based asset bundling.
71
- email:
127
+ email:
72
128
  - rfitz@academia.edu
73
- executables:
129
+ executables:
74
130
  - bunch
75
131
  extensions: []
76
-
77
132
  extra_rdoc_files: []
78
-
79
- files:
133
+ files:
80
134
  - .gitignore
81
135
  - .yardopts
82
136
  - Gemfile
@@ -119,33 +173,32 @@ files:
119
173
  - test/middleware_test.rb
120
174
  - test/rack_test.rb
121
175
  - test/test_helper.rb
122
- homepage: ""
176
+ homepage: ''
123
177
  licenses: []
124
-
125
178
  post_install_message:
126
179
  rdoc_options: []
127
-
128
- require_paths:
180
+ require_paths:
129
181
  - lib
130
- required_ruby_version: !ruby/object:Gem::Requirement
182
+ required_ruby_version: !ruby/object:Gem::Requirement
131
183
  none: false
132
- requirements:
133
- - - ">="
134
- - !ruby/object:Gem::Version
135
- version: "0"
136
- required_rubygems_version: !ruby/object:Gem::Requirement
184
+ requirements:
185
+ - - ! '>='
186
+ - !ruby/object:Gem::Version
187
+ version: '0'
188
+ required_rubygems_version: !ruby/object:Gem::Requirement
137
189
  none: false
138
- requirements:
139
- - - ">="
140
- - !ruby/object:Gem::Version
141
- version: "0"
190
+ requirements:
191
+ - - ! '>='
192
+ - !ruby/object:Gem::Version
193
+ version: '0'
142
194
  requirements: []
143
-
144
195
  rubyforge_project: bunch
145
- rubygems_version: 1.8.15
196
+ rubygems_version: 1.8.24
146
197
  signing_key:
147
198
  specification_version: 3
148
199
  summary: Directory-structure-based asset bundling.
149
- test_files: []
150
-
200
+ test_files:
201
+ - test/middleware_test.rb
202
+ - test/rack_test.rb
203
+ - test/test_helper.rb
151
204
  has_rdoc: