fluent_command_builder 0.1.29 → 0.2.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.
@@ -26,3 +26,4 @@ require File.expand_path(File.dirname(__FILE__) + '/fluent_command_builder/comma
26
26
  require File.expand_path(File.dirname(__FILE__) + '/fluent_command_builder/command_builders/simian_23.rb')
27
27
  require File.expand_path(File.dirname(__FILE__) + '/fluent_command_builder/command_builders/tf_2010.rb')
28
28
  require File.expand_path(File.dirname(__FILE__) + '/fluent_command_builder/command_builders/tf_tee_2010.rb')
29
+ require File.expand_path(File.dirname(__FILE__) + '/fluent_command_builder/command_builders/xcodebuild_43.rb')
@@ -5,39 +5,28 @@ module FluentCommandBuilder
5
5
 
6
6
  attr_accessor :command_name, :path
7
7
 
8
- def initialize command_name, path=nil
8
+ def initialize(command_name, path=nil)
9
9
  @command_name = command_name
10
10
  @path = path
11
11
  @args = ''
12
12
  end
13
13
 
14
- def format value, delimiter=nil, key_value_separator=nil
15
-
16
- if value.kind_of? Array and delimiter.nil?
17
- return array_to_s(value.map { |v| quote_if_includes_space v }, ' ')
18
- end
19
-
20
- if value.kind_of? CommandBase
21
- return value.to_s
14
+ def format(value, delimiter=' ', key_value_separator='=')
15
+ case
16
+ when value.kind_of?(Hash)
17
+ format_hash value, delimiter, key_value_separator
18
+ when value.kind_of?(Array)
19
+ format_array value, delimiter
20
+ else
21
+ value.to_s
22
22
  end
23
-
24
- value_as_array = case
25
- when value.kind_of?(Hash)
26
- hash_to_array value, key_value_separator
27
- when value.kind_of?(Array)
28
- value
29
- else
30
- [value.to_s]
31
- end
32
- value_as_string = array_to_s value_as_array, delimiter
33
- quote_if_includes_space value_as_string
34
23
  end
35
24
 
36
- def append value
25
+ def append(value)
37
26
  @args << value.to_s
38
27
  end
39
28
 
40
- def append_arg arg
29
+ def append_arg(arg)
41
30
  append " #{arg.to_s}"
42
31
  end
43
32
 
@@ -57,15 +46,15 @@ module FluentCommandBuilder
57
46
  executable
58
47
  end
59
48
 
60
- def hash_to_array hash, key_value_separator
61
- hash.map { |k, v| k.to_s + key_value_separator + v.to_s }
49
+ def format_hash(hash, delimiter, key_value_separator)
50
+ hash.map { |k, v| quote_if_includes_space(k.to_s) + key_value_separator + quote_if_includes_space(v.to_s) }.join delimiter
62
51
  end
63
52
 
64
- def array_to_s array, delimiter
65
- array.join delimiter
53
+ def format_array(array, delimiter)
54
+ array.map { |v| quote_if_includes_space v }.join delimiter
66
55
  end
67
56
 
68
- def quote_if_includes_space value
57
+ def quote_if_includes_space(value)
69
58
  value.to_s.include?(' ') ? %Q["#{value}"] : value
70
59
  end
71
60
 
@@ -0,0 +1,141 @@
1
+ require File.expand_path(File.dirname(__FILE__) + '/../command_base')
2
+ require File.expand_path(File.dirname(__FILE__) + '/../command_builder')
3
+
4
+ module FluentCommandBuilder
5
+ module XCodeBuild
6
+ module V43
7
+ COMMAND_NAME = 'xcodebuild'
8
+ class XCodeBuild < CommandBase
9
+ def initialize(builder)
10
+ super builder
11
+ end
12
+ def build_project(build_action=nil)
13
+ BuildProject.new @builder, build_action
14
+ end
15
+ def build_workspace(workspace_name, build_action=nil)
16
+ BuildWorkspace.new @builder, workspace_name, build_action
17
+ end
18
+ def version
19
+ Version.new @builder
20
+ end
21
+ def showsdks
22
+ @builder.append ' -showsdks'
23
+ yield @builder if block_given?
24
+ self
25
+ end
26
+ def list
27
+ @builder.append ' -list'
28
+ yield @builder if block_given?
29
+ self
30
+ end
31
+ def list_project(project_name)
32
+ @builder.append " -list -project #{@builder.format project_name}"
33
+ yield @builder if block_given?
34
+ self
35
+ end
36
+ def list_workspace(workspace_name)
37
+ @builder.append " -list -workspace #{@builder.format workspace_name}"
38
+ yield @builder if block_given?
39
+ self
40
+ end
41
+ end
42
+ class BuildProject < CommandBase
43
+ def initialize(builder, build_action=nil)
44
+ super builder
45
+ @builder.append ' '
46
+ @builder.append "#{@builder.format build_action, ' '}" unless build_action.nil?
47
+ end
48
+ def project(project_name)
49
+ @builder.append " -project #{@builder.format project_name}"
50
+ yield @builder if block_given?
51
+ self
52
+ end
53
+ def target(target_name)
54
+ @builder.append " -target #{@builder.format target_name}"
55
+ yield @builder if block_given?
56
+ self
57
+ end
58
+ def configuration(configuration_name)
59
+ @builder.append " -configuration #{@builder.format configuration_name}"
60
+ yield @builder if block_given?
61
+ self
62
+ end
63
+ def sdk(sdk_name)
64
+ @builder.append " -sdk #{@builder.format sdk_name}"
65
+ yield @builder if block_given?
66
+ self
67
+ end
68
+ def setting(setting, value)
69
+ @builder.append " #{@builder.format setting}=#{@builder.format value}"
70
+ yield @builder if block_given?
71
+ self
72
+ end
73
+ def user_default(value)
74
+ @builder.append " -userdefault=#{@builder.format value}"
75
+ yield @builder if block_given?
76
+ self
77
+ end
78
+ end
79
+ class BuildWorkspace < CommandBase
80
+ def initialize(builder, workspace_name, build_action=nil)
81
+ super builder
82
+ @builder.append " -workspace #{@builder.format workspace_name}"
83
+ @builder.append " #{@builder.format build_action, ' '}" unless build_action.nil?
84
+ end
85
+ def scheme(scheme_name)
86
+ @builder.append " -scheme #{@builder.format scheme_name}"
87
+ yield @builder if block_given?
88
+ self
89
+ end
90
+ def configuration(configuration_name)
91
+ @builder.append " -configuration #{@builder.format configuration_name}"
92
+ yield @builder if block_given?
93
+ self
94
+ end
95
+ def sdk(sdk_name)
96
+ @builder.append " -sdk #{@builder.format sdk_name}"
97
+ yield @builder if block_given?
98
+ self
99
+ end
100
+ def setting(setting, value)
101
+ @builder.append " #{@builder.format setting}=#{@builder.format value}"
102
+ yield @builder if block_given?
103
+ self
104
+ end
105
+ def user_default(value)
106
+ @builder.append " -userdefault=#{@builder.format value}"
107
+ yield @builder if block_given?
108
+ self
109
+ end
110
+ end
111
+ class Version < CommandBase
112
+ def initialize(builder)
113
+ super builder
114
+ @builder.append ' -version'
115
+ end
116
+ def sdk(sdk_name)
117
+ @builder.append " -sdk #{@builder.format sdk_name}"
118
+ yield @builder if block_given?
119
+ self
120
+ end
121
+ def info_item(info_item)
122
+ @builder.append " #{@builder.format info_item}"
123
+ yield @builder if block_given?
124
+ self
125
+ end
126
+ end
127
+ def xcodebuild
128
+ builder = CommandBuilder.new COMMAND_NAME
129
+ command = XCodeBuild.new builder
130
+ yield builder if block_given?
131
+ command
132
+ end
133
+ end
134
+ end
135
+ def xcodebuild_43
136
+ builder = CommandBuilder.new XCodeBuild::V43::COMMAND_NAME
137
+ command = XCodeBuild::V43::XCodeBuild.new builder
138
+ yield builder if block_given?
139
+ command
140
+ end
141
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fluent_command_builder
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.29
4
+ version: 0.2.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,11 +9,11 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-05-18 00:00:00.000000000 Z
12
+ date: 2012-05-25 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rake
16
- requirement: &70264604127160 !ruby/object:Gem::Requirement
16
+ requirement: &70234007044380 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ! '>='
@@ -21,7 +21,7 @@ dependencies:
21
21
  version: '0'
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *70264604127160
24
+ version_requirements: *70234007044380
25
25
  description: A command line builder with a fluent interface written in Ruby.
26
26
  email: matthew-github@matthewriley.name
27
27
  executables: []
@@ -58,6 +58,7 @@ files:
58
58
  - lib/fluent_command_builder/command_builders/simian_23.rb
59
59
  - lib/fluent_command_builder/command_builders/tf_2010.rb
60
60
  - lib/fluent_command_builder/command_builders/tf_tee_2010.rb
61
+ - lib/fluent_command_builder/command_builders/xcodebuild_43.rb
61
62
  - lib/fluent_command_builder.rb
62
63
  homepage: http://rubygems.org/gems/fluent_command_builder
63
64
  licenses: []