fluent_command_builder 0.1.29 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -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: []