build 2.3.0 → 2.4.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.
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.