bee 0.8.1 → 0.9.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 CHANGED
@@ -25,4 +25,4 @@ or go to URL http://www.apache.org/licenses/LICENSE-2.0).
25
25
 
26
26
  = Copyright
27
27
 
28
- bee version 0.8.1 (C) Michel Casabianca & Contributors - 2006-2010
28
+ bee version 0.9.0 (C) Michel Casabianca & Contributors - 2006-2010
data/egg/source.yml CHANGED
@@ -1,19 +1,19 @@
1
- - build: source
2
- default: all
3
- description: "Generate a sample Ruby source file"
1
+ - build: source
2
+ default: all
3
+ description: Generate a sample Ruby source file
4
4
 
5
5
  - properties:
6
- - name: source.rb
6
+ - name: source.rb
7
7
  - description: This script will generate a sample Ruby source file.
8
8
 
9
- - target: welcome
10
- description: "Print information message"
9
+ - target: welcome
10
+ description: Print information message
11
11
  script:
12
12
  - print: :description
13
13
 
14
- - target: prompt
15
- depends: welcome
16
- description: "Prompt for project information"
14
+ - target: prompt
15
+ depends: welcome
16
+ description: Prompt for project information
17
17
  script:
18
18
  - print: "Please answer following questions to generate the project:"
19
19
  - prompt:
@@ -21,20 +21,24 @@
21
21
  default: :name
22
22
  property: name
23
23
 
24
- - target: generate
25
- depends: prompt
26
- description: "Generate project"
24
+ - target: generate
25
+ depends: prompt
26
+ description: Generate source
27
27
  script:
28
- - print: "Generating project..."
28
+ - print: "Generating source..."
29
29
  - erb:
30
30
  src: "#{base}/source/source.rb"
31
31
  dest: "#{here}/#{name}"
32
+ - if: "RUBY_PLATFORM.split('-')[1] != 'mswin32'"
33
+ then:
34
+ - chmod: { files: "#{here}/#{name}", mode: 0755 }
32
35
 
33
- - target: customization
34
- depends: generate
35
- description: "Print information about project customization"
36
+ - target: customization
37
+ depends: generate
38
+ description: Print information about project customization
36
39
  script:
37
40
  - print: Source file '#{name}' has been generated in this directory.
38
41
 
39
- - target: all
42
+ - target: all
40
43
  depends: [welcome, prompt, generate, customization]
44
+
data/lib/bee.rb CHANGED
@@ -36,6 +36,7 @@ module Bee
36
36
  'description' => :optional,
37
37
  'context' => :optional,
38
38
  'extends' => :optional,
39
+ 'includes' => :optional,
39
40
  'abstract' => :optional
40
41
  }
41
42
 
@@ -49,6 +50,8 @@ module Bee
49
50
  attr_reader :name
50
51
  # Parent build.
51
52
  attr_reader :extends
53
+ # Included builds
54
+ attr_reader :includes
52
55
  # Abstractness.
53
56
  attr_reader :abstract
54
57
  # Default target, specified with default entry or fist target in build file.
@@ -174,6 +177,13 @@ module Bee
174
177
  @properties.extend(@parent.properties)
175
178
  @targets.extend(@parent.targets)
176
179
  end
180
+ # manage included builds
181
+ if @included
182
+ for include in @included.reverse
183
+ @properties.include(include.properties)
184
+ @targets.include(include.targets)
185
+ end
186
+ end
177
187
  end
178
188
 
179
189
  # Parse a build entry.
@@ -190,6 +200,7 @@ module Bee
190
200
  @targets.default = @default
191
201
  @description = entry['description']
192
202
  @extends = entry['extends']
203
+ @includes = Array(entry['includes'])
193
204
  @abstract = entry['abstract']
194
205
  # load parent build if any
195
206
  if @extends
@@ -203,6 +214,18 @@ module Bee
203
214
  @targets.default = @default
204
215
  @description = @description || @parent.description
205
216
  end
217
+ # load included build files if any
218
+ if @includes
219
+ @included = []
220
+ for include in @includes
221
+ absolute_path = Bee::Util::absolute_path(include, @base)
222
+ begin
223
+ @included << Bee::Build::load(absolute_path)
224
+ rescue Exception
225
+ error "Error loading included build file '#{include}': #{$!}"
226
+ end
227
+ end
228
+ end
206
229
  # load context files if any
207
230
  context = entry['context']
208
231
  if context
@@ -243,6 +266,9 @@ module Bee
243
266
  # Key for properties entry.
244
267
  KEY = 'properties'
245
268
 
269
+ # List of system properties
270
+ SYSTEM_PROPERTIES = [:base, :here]
271
+
246
272
  # List of properties in order of evaluation.
247
273
  attr_reader :list
248
274
  # Hash of properties by name.
@@ -309,6 +335,12 @@ module Bee
309
335
  end
310
336
  end
311
337
 
338
+ # Include properties of included build.
339
+ # - properties: properties of parent build.
340
+ def include(properties)
341
+ extend(properties)
342
+ end
343
+
312
344
  # Evaluate properties in context.
313
345
  # - context: build context where properties must be evaluated.
314
346
  def evaluate(context)
@@ -438,6 +470,25 @@ module Bee
438
470
  @default = @default || parent.default
439
471
  end
440
472
 
473
+ # Include included build file targets.
474
+ # - included: included build file targets.
475
+ def include(included)
476
+ # set appropriate targets for targets of parent
477
+ for targets in included.hash.values
478
+ for target in targets
479
+ target.targets = self
480
+ end
481
+ end
482
+ # look for targets already defined
483
+ duplicates = @hash.keys & included.hash.keys
484
+ error "Included target(s) '#{duplicates.join('\', \'')}' already defined" if
485
+ duplicates.length > 0
486
+ # insert included targets
487
+ for name in included.hash.keys
488
+ @hash[name] = included.hash[name]
489
+ end
490
+ end
491
+
441
492
  # Run targets.
442
493
  # - targets: list of target names to run.
443
494
  def run(targets, dry)
data/lib/bee_console.rb CHANGED
@@ -62,7 +62,7 @@ targets Targets to run (default target if omitted).'
62
62
  | |__ ___ ___
63
63
  ____ | '_ \ / _ \/ _ \ _____ _____ _____ _____ _____ _____ _____ _____ _____
64
64
  |____| | |_) | __/ __/ |_____|_____|_____|_____|_____|_____|_____|_____|_____|
65
- |_.__/ \___|\___| 0.8.1 http://bee.rubyforge.org
65
+ |_.__/ \___|\___| 0.9.0 http://bee.rubyforge.org
66
66
 
67
67
  EOF
68
68
 
@@ -1453,10 +1453,14 @@ EOF
1453
1453
  require 'zlib'
1454
1454
  # parse parameters
1455
1455
  params_desc = {
1456
- :root => { :mandatory => false, :type => :string },
1457
- :includes => { :mandatory => true, :type => :string_or_array },
1458
- :excludes => { :mandatory => false, :type => :string_or_array, :default => nil },
1459
- :dotmatch => { :mandatory => false, :type => :boolean, :default => false },
1456
+ :root => { :mandatory => false, :type => :string,
1457
+ :default => '.' },
1458
+ :includes => { :mandatory => false, :type => :string_or_array,
1459
+ :default => '**/*' },
1460
+ :excludes => { :mandatory => false, :type => :string_or_array,
1461
+ :default => nil },
1462
+ :dotmatch => { :mandatory => false, :type => :boolean,
1463
+ :default => false },
1460
1464
  :dest => { :mandatory => true, :type => :string }
1461
1465
  }
1462
1466
  check_parameters(parameters, params_desc)
metadata CHANGED
@@ -1,7 +1,12 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: bee
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.8.1
4
+ prerelease: false
5
+ segments:
6
+ - 0
7
+ - 9
8
+ - 0
9
+ version: 0.9.0
5
10
  platform: ruby
6
11
  authors:
7
12
  - Michel Casabianca & Contributors
@@ -9,39 +14,51 @@ autorequire:
9
14
  bindir: bin
10
15
  cert_chain: []
11
16
 
12
- date: 2010-04-16 00:00:00 +02:00
17
+ date: 2010-06-03 00:00:00 +02:00
13
18
  default_executable: bee
14
19
  dependencies:
15
20
  - !ruby/object:Gem::Dependency
16
21
  name: archive-tar-minitar
17
- type: :runtime
18
- version_requirement:
19
- version_requirements: !ruby/object:Gem::Requirement
22
+ prerelease: false
23
+ requirement: &id001 !ruby/object:Gem::Requirement
20
24
  requirements:
21
25
  - - ">="
22
26
  - !ruby/object:Gem::Version
27
+ segments:
28
+ - 0
29
+ - 5
30
+ - 1
23
31
  version: 0.5.1
24
- version:
32
+ type: :runtime
33
+ version_requirements: *id001
25
34
  - !ruby/object:Gem::Dependency
26
35
  name: highline
27
- type: :runtime
28
- version_requirement:
29
- version_requirements: !ruby/object:Gem::Requirement
36
+ prerelease: false
37
+ requirement: &id002 !ruby/object:Gem::Requirement
30
38
  requirements:
31
39
  - - ">="
32
40
  - !ruby/object:Gem::Version
41
+ segments:
42
+ - 1
43
+ - 5
44
+ - 2
33
45
  version: 1.5.2
34
- version:
46
+ type: :runtime
47
+ version_requirements: *id002
35
48
  - !ruby/object:Gem::Dependency
36
49
  name: rubyzip
37
- type: :runtime
38
- version_requirement:
39
- version_requirements: !ruby/object:Gem::Requirement
50
+ prerelease: false
51
+ requirement: &id003 !ruby/object:Gem::Requirement
40
52
  requirements:
41
53
  - - ">="
42
54
  - !ruby/object:Gem::Version
55
+ segments:
56
+ - 0
57
+ - 9
58
+ - 1
43
59
  version: 0.9.1
44
- version:
60
+ type: :runtime
61
+ version_requirements: *id003
45
62
  description:
46
63
  email: michel.casabianca@gmail.com
47
64
  executables:
@@ -108,18 +125,20 @@ required_ruby_version: !ruby/object:Gem::Requirement
108
125
  requirements:
109
126
  - - ">="
110
127
  - !ruby/object:Gem::Version
128
+ segments:
129
+ - 0
111
130
  version: "0"
112
- version:
113
131
  required_rubygems_version: !ruby/object:Gem::Requirement
114
132
  requirements:
115
133
  - - ">="
116
134
  - !ruby/object:Gem::Version
135
+ segments:
136
+ - 0
117
137
  version: "0"
118
- version:
119
138
  requirements: []
120
139
 
121
140
  rubyforge_project: bee
122
- rubygems_version: 1.3.5
141
+ rubygems_version: 1.3.6
123
142
  signing_key:
124
143
  specification_version: 3
125
144
  summary: bee is a build tool