build 2.3.0 → 2.4.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 3b19e67cd76f4bd488029dcb8135bcc850eb615159844e944d2fb681b3c9b7b8
4
- data.tar.gz: cdc7dd22f324d150f6e01c4d44f0669ba1cdc86d8d0933559c1fc3d07209d2df
3
+ metadata.gz: 2ff45ea87e1981c7bca236c6e1be7b945eac13d2334966d817b15141cf805dce
4
+ data.tar.gz: ccc2fbfede04a3da49894eeeb590830cddc3db7d792b3ea5e90e14eac7827cfb
5
5
  SHA512:
6
- metadata.gz: 541389b0145a378284f6b97ade7b1956dee8dde448d9039d2ce6f907195ae2db64c42af24b714f00f8d05ab09626b82b2dcd72dd8434278099366edea1de71e9
7
- data.tar.gz: 821824ac2ec275383fe3d4a47d571145daf70d1017642d3722dcfddc8a487bfa26563c38fb5751c80dffdec8be2f9fde57d84bf8a91d58652c694a1ea053d2ca
6
+ metadata.gz: 2b636b894115ad36203394a084a3d915c753ecf61fb0c1498ca1e398b2b9fd8128c678c050e61c426eb5cca8d005c6819ee27908eca3bc7a81c751367af3cb34
7
+ data.tar.gz: 0437a28306e544b779b030688fb6957e7dda8bed1d449eaf39fd48878e967b8186bb3be0169aec2739568d9d149b0e160b476d004687c147284654473b699a33
data/lib/build/name.rb CHANGED
@@ -22,6 +22,10 @@ module Build
22
22
  class Name
23
23
  def initialize(text)
24
24
  @text = text
25
+
26
+ @identifier = nil
27
+ @target = nil
28
+ @key = nil
25
29
  end
26
30
 
27
31
  def self.from_target(string)
@@ -30,18 +34,27 @@ module Build
30
34
 
31
35
  attr :text
32
36
 
37
+ # @return [String] suitable for constant identifier.
33
38
  def identifier
34
39
  @identifier ||= @text.gsub(/\s+/, '')
35
40
  end
36
41
 
42
+ # @return [String] suitable for target name.
37
43
  def target
38
44
  @target ||= @text.gsub(/\s+/, '-').downcase
39
45
  end
40
46
 
47
+ # @return [String] suitable for variable name.
48
+ def key(*postfix)
49
+ @key ||= ([@text] + postfix).collect{|part| part.downcase.gsub(/\s+/, '_')}.join('_')
50
+ end
51
+
52
+ # @return [String] suitable for C macro name.
41
53
  def macro(prefix = [])
42
54
  (Array(prefix) + [@text]).collect{|name| name.upcase.gsub(/\s+/, '_')}.join('_')
43
55
  end
44
56
 
57
+ # @return [String] suitable for C header guard macro.
45
58
  def header_guard(path)
46
59
  macro(path) + '_H'
47
60
  end
data/lib/build/version.rb CHANGED
@@ -19,5 +19,5 @@
19
19
  # THE SOFTWARE.
20
20
 
21
21
  module Build
22
- VERSION = "2.3.0"
22
+ VERSION = "2.4.0"
23
23
  end
@@ -34,6 +34,10 @@ RSpec.describe Build::Name do
34
34
  expect(name.target).to be == 'foo-bar'
35
35
  end
36
36
 
37
+ it "should generate useful key names" do
38
+ expect(name.key('executable')).to be == 'foo_bar_executable'
39
+ end
40
+
37
41
  it "should generate useful macro names" do
38
42
  expect(name.macro).to be == 'FOO_BAR'
39
43
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: build
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.3.0
4
+ version: 2.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Samuel Williams
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-03-14 00:00:00.000000000 Z
11
+ date: 2019-03-25 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: build-graph
@@ -200,7 +200,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
200
200
  - !ruby/object:Gem::Version
201
201
  version: '0'
202
202
  requirements: []
203
- rubygems_version: 3.0.2
203
+ rubygems_version: 3.0.3
204
204
  signing_key:
205
205
  specification_version: 4
206
206
  summary: Build is a framework for working with task based build systems.