albacore 0.2.5 → 0.2.6

Sign up to get free protection for your applications and to get access to all the features.
Files changed (131) hide show
  1. data/.autotest +4 -4
  2. data/.bundle/config +2 -2
  3. data/.rvmrc +1 -1
  4. data/Gemfile +12 -12
  5. data/README.markdown +92 -68
  6. data/VERSION +1 -1
  7. data/lib/albacore.rb +9 -9
  8. data/lib/albacore/albacoretask.rb +50 -50
  9. data/lib/albacore/aspnetcompiler.rb +58 -58
  10. data/lib/albacore/assemblyinfo.rb +140 -140
  11. data/lib/albacore/assemblyinfolanguages/cppcliengine.rb +17 -0
  12. data/lib/albacore/assemblyinfolanguages/csharpengine.rb +18 -18
  13. data/lib/albacore/assemblyinfolanguages/vbnetengine.rb +18 -18
  14. data/lib/albacore/config/aspnetcompilerconfig.rb +29 -29
  15. data/lib/albacore/config/assemblyinfoconfig.rb +13 -13
  16. data/lib/albacore/config/config.rb +22 -22
  17. data/lib/albacore/config/cscconfig.rb +28 -28
  18. data/lib/albacore/config/docuconfig.rb +23 -23
  19. data/lib/albacore/config/execconfig.rb +15 -15
  20. data/lib/albacore/config/fluentmigratorrunnerconfig.rb +15 -15
  21. data/lib/albacore/config/msbuildconfig.rb +29 -29
  22. data/lib/albacore/config/mspectestrunnerconfig.rb +15 -15
  23. data/lib/albacore/config/mstesttestrunnerconfig.rb +15 -15
  24. data/lib/albacore/config/nantconfig.rb +15 -15
  25. data/lib/albacore/config/nchurnconfig.rb +15 -15
  26. data/lib/albacore/config/ncoverconsoleconfig.rb +15 -15
  27. data/lib/albacore/config/ncoverreportconfig.rb +15 -15
  28. data/lib/albacore/config/ndependconfig.rb +15 -15
  29. data/lib/albacore/config/netversion.rb +21 -21
  30. data/lib/albacore/config/nugetpackconfig.rb +3 -3
  31. data/lib/albacore/config/nugetpublishconfig.rb +19 -0
  32. data/lib/albacore/config/nugetpushconfig.rb +19 -0
  33. data/lib/albacore/config/nunittestrunnerconfig.rb +14 -14
  34. data/lib/albacore/config/specflowreportconfig.rb +24 -24
  35. data/lib/albacore/config/sqlcmdconfig.rb +15 -15
  36. data/lib/albacore/config/unzipconfig.rb +15 -15
  37. data/lib/albacore/config/vssgetconfig.rb +14 -0
  38. data/lib/albacore/config/xbuildconfig.rb +15 -15
  39. data/lib/albacore/config/xunittestrunnerconfig.rb +15 -15
  40. data/lib/albacore/config/zipdirectoryconfig.rb +15 -15
  41. data/lib/albacore/csc.rb +66 -62
  42. data/lib/albacore/docu.rb +41 -41
  43. data/lib/albacore/exec.rb +18 -18
  44. data/lib/albacore/fluentmigratorrunner.rb +51 -46
  45. data/lib/albacore/msbuild.rb +55 -55
  46. data/lib/albacore/mspectestrunner.rb +50 -50
  47. data/lib/albacore/mstesttestrunner.rb +43 -43
  48. data/lib/albacore/nant.rb +38 -38
  49. data/lib/albacore/nchurn.rb +74 -74
  50. data/lib/albacore/ncoverconsole.rb +68 -68
  51. data/lib/albacore/ncoverreport.rb +62 -62
  52. data/lib/albacore/ncoverreports/assemblyfilter.rb +9 -9
  53. data/lib/albacore/ncoverreports/branchcoverage.rb +9 -9
  54. data/lib/albacore/ncoverreports/classfilter.rb +9 -9
  55. data/lib/albacore/ncoverreports/codecoveragebase.rb +25 -25
  56. data/lib/albacore/ncoverreports/cyclomaticcomplexity.rb +23 -23
  57. data/lib/albacore/ncoverreports/documentfilter.rb +9 -9
  58. data/lib/albacore/ncoverreports/fullcoveragereport.rb +13 -13
  59. data/lib/albacore/ncoverreports/methodcoverage.rb +9 -9
  60. data/lib/albacore/ncoverreports/methodfilter.rb +9 -9
  61. data/lib/albacore/ncoverreports/namespacefilter.rb +9 -9
  62. data/lib/albacore/ncoverreports/reportfilterbase.rb +26 -26
  63. data/lib/albacore/ncoverreports/summaryreport.rb +18 -18
  64. data/lib/albacore/ncoverreports/symbolcoverage.rb +9 -9
  65. data/lib/albacore/ndepend.rb +33 -33
  66. data/lib/albacore/nugetpublish.rb +47 -0
  67. data/lib/albacore/nugetpush.rb +46 -0
  68. data/lib/albacore/nunittestrunner.rb +41 -41
  69. data/lib/albacore/nuspec.rb +133 -109
  70. data/lib/albacore/output.rb +99 -99
  71. data/lib/albacore/plink.rb +47 -47
  72. data/lib/albacore/specflowreport.rb +62 -62
  73. data/lib/albacore/sqlcmd.rb +80 -80
  74. data/lib/albacore/support/attrmethods.rb +33 -33
  75. data/lib/albacore/support/createtask.rb +50 -30
  76. data/lib/albacore/support/failure.rb +15 -15
  77. data/lib/albacore/support/logging.rb +38 -38
  78. data/lib/albacore/support/openstruct.rb +13 -13
  79. data/lib/albacore/support/runcommand.rb +45 -45
  80. data/lib/albacore/support/supportlinux.rb +23 -23
  81. data/lib/albacore/support/updateattributes.rb +13 -13
  82. data/lib/albacore/support/yamlconfig.rb +18 -18
  83. data/lib/albacore/unzip.rb +28 -28
  84. data/lib/albacore/vssget.rb +44 -0
  85. data/lib/albacore/xbuild.rb +54 -54
  86. data/lib/albacore/xunittestrunner.rb +52 -52
  87. data/lib/albacore/zipdirectory.rb +105 -105
  88. data/rakefile.rb +297 -297
  89. data/spec/albacoremodel_spec.rb +53 -53
  90. data/spec/assemblyinfo_spec.rb +541 -541
  91. data/spec/attrmethods_spec.rb +136 -136
  92. data/spec/config_spec.rb +34 -34
  93. data/spec/createtask_spec.rb +236 -236
  94. data/spec/csc_spec.rb +253 -253
  95. data/spec/docu_spec.rb +109 -109
  96. data/spec/exec_spec.rb +45 -45
  97. data/spec/fluentmigratorrunner_spec.rb +254 -185
  98. data/spec/msbuild_spec.rb +215 -215
  99. data/spec/mspec_spec.rb +28 -28
  100. data/spec/mstesttestrunner_spec.rb +142 -142
  101. data/spec/nant_spec.rb +110 -110
  102. data/spec/nchurn_spec.rb +75 -75
  103. data/spec/ncoverconsole_spec.rb +353 -353
  104. data/spec/ncoverreport_spec.rb +619 -619
  105. data/spec/ndepend_spec.rb +72 -72
  106. data/spec/nunittestrunner_spec.rb +122 -122
  107. data/spec/nuspec_spec.rb +78 -78
  108. data/spec/patches/docu_patch.rb +12 -12
  109. data/spec/patches/fail_patch.rb +8 -8
  110. data/spec/patches/system_patch.rb +20 -20
  111. data/spec/plink_spec.rb +62 -62
  112. data/spec/runcommand_spec.rb +94 -94
  113. data/spec/spec_helper.rb +17 -17
  114. data/spec/specflowreport_spec.rb +146 -146
  115. data/spec/sqlcmd_spec.rb +334 -334
  116. data/spec/support/assemblyinfotester.rb +51 -51
  117. data/spec/support/ironruby_validator.rb +26 -26
  118. data/spec/support/msbuildtestdata.rb +32 -32
  119. data/spec/support/nanttestdata.rb +33 -33
  120. data/spec/support/ncoverconsoletestdata.rb +19 -19
  121. data/spec/support/ncoverreporttestdata.rb +26 -26
  122. data/spec/support/nokogiri_validator.rb +15 -15
  123. data/spec/support/outputtestdata.rb +12 -12
  124. data/spec/support/ziptestdata.rb +12 -12
  125. data/spec/unzip_spec.rb +15 -15
  126. data/spec/xbuild_spec.rb +15 -15
  127. data/spec/xunit_spec.rb +168 -168
  128. data/spec/yamlconfig_spec.rb +49 -49
  129. data/spec/zip_spec.rb +104 -104
  130. data/watchrtesting.rb +8 -8
  131. metadata +15 -119
@@ -1,55 +1,55 @@
1
- require 'albacore/albacoretask'
2
- require 'albacore/config/msbuildconfig.rb'
3
-
4
- class MSBuild
5
- include Albacore::Task
6
- include Albacore::RunCommand
7
- include Configuration::MSBuild
8
-
9
- attr_accessor :solution, :verbosity, :loggermodule
10
- attr_array :targets
11
- attr_hash :properties
12
-
13
- def initialize
14
- super()
15
- update_attributes msbuild.to_hash
16
- end
17
-
18
- def execute
19
- build_solution(@solution)
20
- end
21
-
22
- def build_solution(solution)
23
- check_solution solution
24
-
25
- command_parameters = []
26
- command_parameters << "\"#{solution}\""
27
- command_parameters << "\"/verbosity:#{@verbosity}\"" if @verbosity != nil
28
- command_parameters << "\"/logger:#{@loggermodule}\"" if @loggermodule != nil
29
- command_parameters << build_properties if @properties != nil
30
- command_parameters << "\"/target:#{build_targets}\"" if @targets != nil
31
-
32
- result = run_command "MSBuild", command_parameters.join(" ")
33
-
34
- failure_message = 'MSBuild Failed. See Build Log For Detail'
35
- fail_with_message failure_message if !result
36
- end
37
-
38
- def check_solution(file)
39
- return if file
40
- msg = 'solution cannot be nil'
41
- fail_with_message msg
42
- end
43
-
44
- def build_targets
45
- @targets.join ";"
46
- end
47
-
48
- def build_properties
49
- option_text = []
50
- @properties.each do |key, value|
51
- option_text << "/p:#{key}\=\"#{value}\""
52
- end
53
- option_text.join(" ")
54
- end
55
- end
1
+ require 'albacore/albacoretask'
2
+ require 'albacore/config/msbuildconfig.rb'
3
+
4
+ class MSBuild
5
+ include Albacore::Task
6
+ include Albacore::RunCommand
7
+ include Configuration::MSBuild
8
+
9
+ attr_accessor :solution, :verbosity, :loggermodule
10
+ attr_array :targets
11
+ attr_hash :properties
12
+
13
+ def initialize
14
+ super()
15
+ update_attributes msbuild.to_hash
16
+ end
17
+
18
+ def execute
19
+ build_solution(@solution)
20
+ end
21
+
22
+ def build_solution(solution)
23
+ check_solution solution
24
+
25
+ command_parameters = []
26
+ command_parameters << "\"#{solution}\""
27
+ command_parameters << "\"/verbosity:#{@verbosity}\"" if @verbosity != nil
28
+ command_parameters << "\"/logger:#{@loggermodule}\"" if @loggermodule != nil
29
+ command_parameters << build_properties if @properties != nil
30
+ command_parameters << "\"/target:#{build_targets}\"" if @targets != nil
31
+
32
+ result = run_command "MSBuild", command_parameters.join(" ")
33
+
34
+ failure_message = 'MSBuild Failed. See Build Log For Detail'
35
+ fail_with_message failure_message if !result
36
+ end
37
+
38
+ def check_solution(file)
39
+ return if file
40
+ msg = 'solution cannot be nil'
41
+ fail_with_message msg
42
+ end
43
+
44
+ def build_targets
45
+ @targets.join ";"
46
+ end
47
+
48
+ def build_properties
49
+ option_text = []
50
+ @properties.each do |key, value|
51
+ option_text << "/p:#{key}\=\"#{value}\""
52
+ end
53
+ option_text.join(" ")
54
+ end
55
+ end
@@ -1,50 +1,50 @@
1
- require 'albacore/albacoretask'
2
-
3
- class MSpecTestRunner
4
- TaskName = :mspec
5
- include Albacore::Task
6
- include Albacore::RunCommand
7
-
8
- attr_accessor :html_output
9
- attr_array :assemblies, :options
10
-
11
- def initialize(command=nil)
12
- @assemblies=[]
13
- super()
14
- update_attributes Albacore.configuration.mspec.to_hash
15
- @command = command unless command.nil?
16
- end
17
-
18
- def get_command_line
19
- command = []
20
- command << @command
21
- command << get_command_parameters
22
- cmd = command.join(" ")
23
- @logger.debug "Build MSpec Test Runner Command Line: " + cmd
24
- return cmd
25
- end
26
-
27
- def get_command_parameters
28
- command_params = []
29
- command_params << build_assembly_list unless @assemblies.empty?
30
- command_params << @options.join(" ") unless @options.nil?
31
- command_params << build_html_output unless @html_output.nil?
32
- command_params
33
- end
34
-
35
- def execute()
36
- command_params = get_command_parameters
37
- result = run_command "MSpec", command_params.join(" ")
38
-
39
- failure_message = 'MSpec Failed. See Build Log For Detail'
40
- fail_with_message failure_message if !result
41
- end
42
-
43
- def build_assembly_list
44
- @assemblies.map{|asm| "\"#{asm}\""}.join(" ")
45
- end
46
-
47
- def build_html_output
48
- "--html \"#{@html_output}\""
49
- end
50
- end
1
+ require 'albacore/albacoretask'
2
+
3
+ class MSpecTestRunner
4
+ TaskName = :mspec
5
+ include Albacore::Task
6
+ include Albacore::RunCommand
7
+
8
+ attr_accessor :html_output
9
+ attr_array :assemblies, :options
10
+
11
+ def initialize(command=nil)
12
+ @assemblies=[]
13
+ super()
14
+ update_attributes Albacore.configuration.mspec.to_hash
15
+ @command = command unless command.nil?
16
+ end
17
+
18
+ def get_command_line
19
+ command = []
20
+ command << @command
21
+ command << get_command_parameters
22
+ cmd = command.join(" ")
23
+ @logger.debug "Build MSpec Test Runner Command Line: " + cmd
24
+ return cmd
25
+ end
26
+
27
+ def get_command_parameters
28
+ command_params = []
29
+ command_params << build_assembly_list unless @assemblies.empty?
30
+ command_params << @options.join(" ") unless @options.nil?
31
+ command_params << build_html_output unless @html_output.nil?
32
+ command_params
33
+ end
34
+
35
+ def execute()
36
+ command_params = get_command_parameters
37
+ result = run_command "MSpec", command_params.join(" ")
38
+
39
+ failure_message = 'MSpec Failed. See Build Log For Detail'
40
+ fail_with_message failure_message if !result
41
+ end
42
+
43
+ def build_assembly_list
44
+ @assemblies.map{|asm| "\"#{asm}\""}.join(" ")
45
+ end
46
+
47
+ def build_html_output
48
+ "--html \"#{@html_output}\""
49
+ end
50
+ end
@@ -1,43 +1,43 @@
1
- require 'albacore/albacoretask'
2
-
3
- class MSTestTestRunner
4
- TaskName = :mstest
5
- include Albacore::Task
6
- include Albacore::RunCommand
7
-
8
- attr_array :assemblies, :tests, :options
9
-
10
- def initialize(command=nil)
11
- @options=[]
12
- @assemblies=[]
13
- @tests=[]
14
- super()
15
- update_attributes Albacore.configuration.mstest.to_hash
16
- @command = command unless command.nil?
17
- end
18
-
19
- def get_command_line
20
- command_params = []
21
- command_params << @command
22
- command_params << get_command_parameters
23
- commandline = command_params.join(" ")
24
- @logger.debug "Build MSTest Test Runner Command Line: " + commandline
25
- commandline
26
- end
27
-
28
- def get_command_parameters
29
- command_params = []
30
- command_params << @options.join(" ") unless @options.nil?
31
- command_params << @assemblies.map{|asm| "/testcontainer:\"#{asm}\""}.join(' ') unless @assemblies.nil?
32
- command_params << @tests.map{|test| "/test:#{test}"}.join(' ') unless @tests.nil?
33
- command_params
34
- end
35
-
36
- def execute()
37
- command_params = get_command_parameters
38
- result = run_command "MSTest", command_params.join(" ")
39
-
40
- failure_message = 'MSTest Failed. See Build Log For Detail'
41
- fail_with_message failure_message if !result
42
- end
43
- end
1
+ require 'albacore/albacoretask'
2
+
3
+ class MSTestTestRunner
4
+ TaskName = :mstest
5
+ include Albacore::Task
6
+ include Albacore::RunCommand
7
+
8
+ attr_array :assemblies, :tests, :options
9
+
10
+ def initialize(command=nil)
11
+ @options=[]
12
+ @assemblies=[]
13
+ @tests=[]
14
+ super()
15
+ update_attributes Albacore.configuration.mstest.to_hash
16
+ @command = command unless command.nil?
17
+ end
18
+
19
+ def get_command_line
20
+ command_params = []
21
+ command_params << @command
22
+ command_params << get_command_parameters
23
+ commandline = command_params.join(" ")
24
+ @logger.debug "Build MSTest Test Runner Command Line: " + commandline
25
+ commandline
26
+ end
27
+
28
+ def get_command_parameters
29
+ command_params = []
30
+ command_params << @options.join(" ") unless @options.nil?
31
+ command_params << @assemblies.map{|asm| "/testcontainer:\"#{asm}\""}.join(' ') unless @assemblies.nil?
32
+ command_params << @tests.map{|test| "/test:#{test}"}.join(' ') unless @tests.nil?
33
+ command_params
34
+ end
35
+
36
+ def execute()
37
+ command_params = get_command_parameters
38
+ result = run_command "MSTest", command_params.join(" ")
39
+
40
+ failure_message = 'MSTest Failed. See Build Log For Detail'
41
+ fail_with_message failure_message if !result
42
+ end
43
+ end
@@ -1,38 +1,38 @@
1
- require 'albacore/albacoretask'
2
-
3
- class NAnt
4
- include Albacore::Task
5
- include Albacore::RunCommand
6
-
7
- attr_accessor :build_file
8
- attr_array :targets
9
- attr_hash :properties
10
-
11
- def initialize
12
- super()
13
- update_attributes Albacore.configuration.nant.to_hash
14
- end
15
-
16
- def execute
17
- command_parameters = []
18
- command_parameters << "-buildfile:#{@build_file}" unless @build_file.nil?
19
- command_parameters << "#{build_properties}" unless @properties.nil?
20
- command_parameters << "#{build_targets}" unless @targets.nil?
21
-
22
- result = run_command "NAnt", command_parameters.join(" ")
23
-
24
- failure_msg = 'NAnt task Failed. See Build Log For Detail.'
25
- fail_with_message failure_msg if !result
26
- end
27
-
28
- private
29
-
30
- def build_targets
31
- @targets.join " "
32
- end
33
-
34
- def build_properties
35
- @properties.map {|key, value| "-D:#{key}=#{value}" }.join(" ")
36
- end
37
-
38
- end
1
+ require 'albacore/albacoretask'
2
+
3
+ class NAnt
4
+ include Albacore::Task
5
+ include Albacore::RunCommand
6
+
7
+ attr_accessor :build_file
8
+ attr_array :targets
9
+ attr_hash :properties
10
+
11
+ def initialize
12
+ super()
13
+ update_attributes Albacore.configuration.nant.to_hash
14
+ end
15
+
16
+ def execute
17
+ command_parameters = []
18
+ command_parameters << "-buildfile:#{@build_file}" unless @build_file.nil?
19
+ command_parameters << "#{build_properties}" unless @properties.nil?
20
+ command_parameters << "#{build_targets}" unless @targets.nil?
21
+
22
+ result = run_command "NAnt", command_parameters.join(" ")
23
+
24
+ failure_msg = 'NAnt task Failed. See Build Log For Detail.'
25
+ fail_with_message failure_msg if !result
26
+ end
27
+
28
+ private
29
+
30
+ def build_targets
31
+ @targets.join " "
32
+ end
33
+
34
+ def build_properties
35
+ @properties.map {|key, value| "-D:#{key}=#{value}" }.join(" ")
36
+ end
37
+
38
+ end
@@ -1,74 +1,74 @@
1
- require 'albacore/albacoretask'
2
-
3
- class NChurn
4
- include Albacore::Task
5
- include Albacore::RunCommand
6
-
7
- attr_reader :from, :churn, :top, :report_as, :env_path, :adapter, :exclude, :include, :output
8
-
9
-
10
- def initialize
11
- super()
12
- update_attributes Albacore.configuration.nchurn.to_hash
13
- end
14
-
15
-
16
-
17
- def execute
18
- command_parameters = []
19
- command_parameters << ['-d',@from] if @from
20
- command_parameters << ['-i',@input.to_s] if @input
21
- command_parameters << ['-c',@churn.to_s] if @churn
22
- command_parameters << ['-t',@top.to_s] if @top
23
- command_parameters << ['-r',@report_as.to_s] if @report_as
24
- command_parameters << ['-p',@env_path.to_s] if @env_path
25
- command_parameters << ['-a',@adapter.to_s] if @adapter
26
- command_parameters << ['-x',@exclude] if @exclude
27
- command_parameters << ['-n',@include] if @include
28
- command_parameters << ['>',@output] if @output
29
-
30
- result = run_command "NChurn", command_parameters.join(" ")
31
-
32
- failure_msg = 'Churn Analysis Failed. See Build Log For Detail.'
33
- fail_with_message failure_msg if !result
34
- end
35
-
36
- def churn_precent(p)
37
- @churn = p/100.0
38
- end
39
- def input(p)
40
- @input = quotes(p)
41
- end
42
- def from(p)
43
- @from = quotes(p.strftime('%d-%m-%Y'))
44
- end
45
- def churn(p)
46
- @churn = p
47
- end
48
- def top(p)
49
- @top= p
50
- end
51
- def report_as(p)
52
- @report_as = p
53
- end
54
- def env_path(p)
55
- @env_path = quotes(p)
56
- end
57
- def adapter(p)
58
- @adapter = p
59
- end
60
- def exclude(p)
61
- @exclude = quotes(p)
62
- end
63
- def include(p)
64
- @include = quotes(p)
65
- end
66
- def output(p)
67
- @output = quotes(p)
68
- end
69
-
70
- private
71
- def quotes(s)
72
- %{"#{s}"}
73
- end
74
- end
1
+ require 'albacore/albacoretask'
2
+
3
+ class NChurn
4
+ include Albacore::Task
5
+ include Albacore::RunCommand
6
+
7
+ attr_reader :from, :churn, :top, :report_as, :env_path, :adapter, :exclude, :include, :output
8
+
9
+
10
+ def initialize
11
+ super()
12
+ update_attributes Albacore.configuration.nchurn.to_hash
13
+ end
14
+
15
+
16
+
17
+ def execute
18
+ command_parameters = []
19
+ command_parameters << ['-d',@from] if @from
20
+ command_parameters << ['-i',@input.to_s] if @input
21
+ command_parameters << ['-c',@churn.to_s] if @churn
22
+ command_parameters << ['-t',@top.to_s] if @top
23
+ command_parameters << ['-r',@report_as.to_s] if @report_as
24
+ command_parameters << ['-p',@env_path.to_s] if @env_path
25
+ command_parameters << ['-a',@adapter.to_s] if @adapter
26
+ command_parameters << ['-x',@exclude] if @exclude
27
+ command_parameters << ['-n',@include] if @include
28
+ command_parameters << ['>',@output] if @output
29
+
30
+ result = run_command "NChurn", command_parameters.join(" ")
31
+
32
+ failure_msg = 'Churn Analysis Failed. See Build Log For Detail.'
33
+ fail_with_message failure_msg if !result
34
+ end
35
+
36
+ def churn_precent(p)
37
+ @churn = p/100.0
38
+ end
39
+ def input(p)
40
+ @input = quotes(p)
41
+ end
42
+ def from(p)
43
+ @from = quotes(p.strftime('%d-%m-%Y'))
44
+ end
45
+ def churn(p)
46
+ @churn = p
47
+ end
48
+ def top(p)
49
+ @top= p
50
+ end
51
+ def report_as(p)
52
+ @report_as = p
53
+ end
54
+ def env_path(p)
55
+ @env_path = quotes(p)
56
+ end
57
+ def adapter(p)
58
+ @adapter = p
59
+ end
60
+ def exclude(p)
61
+ @exclude = quotes(p)
62
+ end
63
+ def include(p)
64
+ @include = quotes(p)
65
+ end
66
+ def output(p)
67
+ @output = quotes(p)
68
+ end
69
+
70
+ private
71
+ def quotes(s)
72
+ %{"#{s}"}
73
+ end
74
+ end