bunch 0.0.11 → 0.1.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/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: