bake-toolkit 1.6.3 → 1.7.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
  SHA1:
3
- metadata.gz: 6ccfcd558947800743a439c620fc245fd0cf4e58
4
- data.tar.gz: fea010d1a29e106d660b7bf00918585f5b165cec
3
+ metadata.gz: a490c7db651ab2f105560e8ecd219f374bdc1ea3
4
+ data.tar.gz: 5dcc57cb1ff99210057f5a39d5e735962a3ee428
5
5
  SHA512:
6
- metadata.gz: 2b849c627ab09226f816b167380711b891b1af687d9c1038068ce5e5f30af49bce0f3b5ff98024b096e7c7731afd125d9cb9ac5e372cbd6b9a14eca112b9d509
7
- data.tar.gz: 8cd7af10d8a8fbba3172f624cb2e8f9042bca5284333d2ed0cf1507c043a02d4f224cb62df6b9b4a2755dd30b53354c4ba45febd32ef85cf2e139627ffc5a191
6
+ metadata.gz: a3db8a4eed4a2d21c891bbe20aecf9622ef0b00bde737f6f009ccfbf9e6f456cc3b777b8fa7190120a846ca7835d107c78a20df6f3950eb28147104c629b6b11
7
+ data.tar.gz: fe27f9b7f8807586e244afc439920106152e6216789559d72534e3fa7c340e28ef3dadc67ca4986b549a9df89a92e4d863196f92ab757b7d72767e78478dccbb
data/bin/bake CHANGED
@@ -5,7 +5,7 @@ $timeStart = Time.now
5
5
  $:.unshift(File.dirname(__FILE__)+"/../lib")
6
6
  require 'bake/version'
7
7
 
8
- $:.unshift(File.dirname(__FILE__)+"/../../cxxproject.git/lib")
8
+ $:.unshift(File.dirname(__FILE__)+"/../../cxxproject/lib")
9
9
 
10
10
  require "cxxproject/version"
11
11
 
data/bin/bakery CHANGED
@@ -5,7 +5,7 @@ $timeStart = Time.now
5
5
  $:.unshift(File.dirname(__FILE__)+"/../lib")
6
6
  require 'bake/version'
7
7
 
8
- $:.unshift(File.dirname(__FILE__)+"/../../cxxproject.git/lib")
8
+ $:.unshift(File.dirname(__FILE__)+"/../../cxxproject/lib")
9
9
 
10
10
  require "cxxproject/version"
11
11
  require 'cxxproject/utils/utils'
@@ -7,6 +7,15 @@
7
7
  <body>
8
8
  <h1>Changelog</h1>
9
9
 
10
+ November 4, 2014 - bake-toolkit 1.7.0<br>
11
+ <ul>
12
+ <li><b>Added: Option to define output directory relative/absolute for each project or for all projects.</b>
13
+ <li><b>Added: --set command line option to set variables</b>
14
+ <li><b>Added: Optional "Description" tag for projects in Project.meta</b>
15
+ <li><b>Changed: Variables in DefaultToolchain will be substituted separately for each project.</b>
16
+ </b>
17
+ </ul>
18
+
10
19
  August 8, 2014 - bake-toolkit 1.6.3<br>
11
20
  <ul>
12
21
  <li><b>Fixed: possible uninitialized variable could lead to crash bake</b>
@@ -11,8 +11,10 @@
11
11
  <b>Workaround 1</b>: Clean the project.<br>
12
12
  <b>Workaround 2</b>: Delete the archive/executable manually.<br>
13
13
  <b>Workaround 3</b>: Touch, edit, create another source file.<br>
14
+ <li>Pathes given to lint may be unit pathes, must be converted (will be fixed soon).
14
15
  </ul>
15
16
 
17
+
16
18
  </body>
17
19
 
18
20
  </html>
@@ -26,12 +26,13 @@ Features listed on this page are open for discussion.
26
26
  Reason: require statements take round about two seconds before the build can be started. Two seconds is very much when building a single file.
27
27
  <li>Exporter: add some more logic for exclude build directories to reduce useless definitions in Project.meta files
28
28
  <li>Additional redirect from errors and warnings in a log file.
29
- <li>Variables in main Project.meta which are usable in subprojects.
30
29
  <li>Conditional variables like ifeq ($(VIDEO_MODE_12BIT_JPEG), 1)
31
30
  <li>Better annotations undefined symbol errors (if e.g. filename is given in error message)
32
31
  <li>Doxygen parameter to generate Doxygen, maybe with AutoOpen from Eclipse?
33
- <li>Meta Config in Workspace root
34
32
  <li>Even shorter command line options
33
+ <li>Export defines to Eclipse
34
+ <li>Better error log in Eclipse if plugin does not work
35
+ <li>Doxygen support or even better generic docu support
35
36
  </ul>
36
37
 
37
38
  </body>
data/doc/index.html CHANGED
@@ -72,7 +72,7 @@ bake is used to build software <font color="#009900"><b>fast</b></font> and <fon
72
72
 
73
73
  <p>
74
74
  <hr>
75
- <table width="100%" border="0"><tr><td align="left">Described bake-toolkit version: 1.6.3</td><td align="right">August 8, 2014</td></tr></table>
75
+ <table width="100%" border="0"><tr><td align="left">Described bake-toolkit version: 1.7.0</td><td align="right">November 4, 2014</td></tr></table>
76
76
 
77
77
  </body>
78
78
 
@@ -16,7 +16,10 @@
16
16
  <h1>Variable substitution in Project.meta</h1>
17
17
 
18
18
  <h3>Substituted variables</h3>
19
- A variable can be defined with the Set keyword in Project.meta (see syntax documentation):
19
+ A variable can be defined with the --set command line option:
20
+ <pre id="rundrum"><code>bake ... --set MyVar=DEBUG</code></pre>
21
+ <p>
22
+ This can also be done by the Set keyword in Project.meta (see syntax documentation):
20
23
  <p>
21
24
  <table border="1">
22
25
  <tr><th bgcolor="#CCCCCC">Example</th><th bgcolor="#CCCCCC">Output</th></tr>
@@ -32,6 +35,7 @@ bake includes also some standard variables:
32
35
  <tr><td>$(ConfigName)</td> <td>lib</td></tr>
33
36
  <tr><td>$(ProjectName)</td> <td>canDriver</td></tr>
34
37
  <tr><td>$(ProjectDir)</td> <td>C:/Root/MyProject</td></tr>
38
+ <tr><td>$(MainProjectDir)</td> <td>C:/Root/Main</td></tr>
35
39
  <tr><td>$(OutputDir)</td> <td>Debug_bootloader</td></tr>
36
40
  <tr><td>$(ArtifactName)</td> <td>bootloader_1.0.elf</td></tr>
37
41
  <tr><td>$(ArtifactNameBase)</td> <td>bootloader_1.0</td></tr>
@@ -67,6 +67,8 @@ z-index: 100;
67
67
  <span class="help" onMouseover="showProject()" onMouseout="notip()">Project</span> {<br>
68
68
  &nbsp; <br>
69
69
 
70
+ &nbsp; <span class="help" onMouseover="showDescription()" onMouseout="notip()">Description</span> &#60;text&#62;<br><br>
71
+
70
72
  &nbsp; <span class="help" onMouseover="showResponsible()" onMouseout="notip()">Responsible</span> {<br>
71
73
  &nbsp; &nbsp; <span class="help" onMouseover="showPerson()" onMouseout="notip()">Person</span> &#60;name&#62;,
72
74
  <span class="help" onMouseover="showPersonEmail()" onMouseout="notip()">email</span>: &#60;adr&#62;<br>
@@ -102,7 +104,7 @@ z-index: 100;
102
104
  &nbsp; &nbsp; <span class="help" onMouseover="showPostSteps()" onMouseout="notip()">PostSteps</span> {<br>
103
105
  &nbsp; &nbsp; &nbsp; <span class="mycomment"># Same as for PreSteps</span><br>
104
106
  &nbsp; &nbsp; }<br>
105
- &nbsp; &nbsp; <span class="help" onMouseover="showDefaultToolchain()" onMouseout="notip()">DefaultToolchain</span> &#60;basedOn&#62; {<br>
107
+ &nbsp; &nbsp; <span class="help" onMouseover="showDefaultToolchain()" onMouseout="notip()">DefaultToolchain</span> &#60;basedOn&#62; <span class="help" onMouseover="showOutputDir()" onMouseout="notip()">outputDir</span>: &#60;dir&#62; {<br>
106
108
  &nbsp; &nbsp; &nbsp; <span class="help" onMouseover="showDefaultCompiler()" onMouseout="notip()">Compiler</span> ASM | CPP | C,
107
109
  <span class="help" onMouseover="showCommand()" onMouseout="notip()">command</span>: &#60;cmd&#62; {</i><br>
108
110
  &nbsp; &nbsp; &nbsp; &nbsp; <span class="help" onMouseover="showDefaultFlags()" onMouseout="notip()">Flags</span> &#60;flags&#62;<br>
@@ -129,7 +131,7 @@ z-index: 100;
129
131
  &nbsp; &nbsp; }<br>
130
132
  &nbsp; &nbsp; <span class="help" onMouseover="showExcludeFiles()" onMouseout="notip()">ExcludeFiles</span> &#60;pattern&#62;<br>
131
133
  &nbsp; &nbsp; <span class="help" onMouseover="showIncludeDir()" onMouseout="notip()">IncludeDir</span> &#60;dir&#62;<br>
132
- &nbsp; &nbsp; <span class="help" onMouseover="showToolchainProject()" onMouseout="notip()">Toolchain</span> {<br>
134
+ &nbsp; &nbsp; <span class="help" onMouseover="showToolchainProject()" onMouseout="notip()">Toolchain</span> <span class="help" onMouseover="showOutputDir()" onMouseout="notip()">outputDir</span>: &#60;dir&#62; {<br>
133
135
  &nbsp; &nbsp; &nbsp; <span class="help" onMouseover="showCompiler()" onMouseout="notip()">Compiler</span> ASM | CPP | C,
134
136
  <span class="help" onMouseover="showCommand()" onMouseout="notip()">command</span>: &#60;cmd&#62; {</i><br>
135
137
  &nbsp; &nbsp; &nbsp; &nbsp; <span class="help" onMouseover="showFlags()" onMouseout="notip()">Flags</span> &#60;flags&#62;, add: &#60;flags&#62;, remove: &#60;flags&#62;<br>
@@ -189,17 +191,23 @@ function showProject() {
189
191
 
190
192
  function showResponsible() {
191
193
  str = "Specify all responsible persons of the project."
192
- ddrivetip("Responsible", "Not yet, but in future,", "0..1", "-",str)
194
+ ddrivetip("Responsible", "No,", "0..1", "-",str)
195
+ }
196
+
197
+ function showDescription() {
198
+ str = 'Description of the project.'
199
+ ddrivetip("Description", "No", "0..1", "-",str)
193
200
  }
194
201
 
202
+
195
203
  function showPerson() {
196
204
  str = 'Person who is responsible for the project.'
197
- ddrivetip("Person", "Not yet, but in future", "0..1", "-",str)
205
+ ddrivetip("Person", "No", "0..1", "-",str)
198
206
  }
199
207
 
200
208
  function showPersonEmail() {
201
209
  str = 'Use always double quotes (") for the email address.'
202
- ddrivetip("email", "Not yet, but in future", "-", "-",str)
210
+ ddrivetip("email", "No", "-", "-",str)
203
211
  }
204
212
 
205
213
  function showExecutableConfig() {
@@ -346,6 +354,16 @@ function showCommandLine() {
346
354
  ddrivetip("CommandLine", "No","0..n","-",getCommandLineDesc())
347
355
  }
348
356
 
357
+ function showOutputDir() {
358
+ str = 'Specifies the output folder.<p>'+
359
+ 'Use always relative paths, not absolute paths due to portability.<p>'+
360
+ 'Use always "/" and not "\\".<p>'+
361
+ 'If the first part of the path is equal to a project name, it is used as a shortcut to this project root. <br>'+
362
+ 'To avoid this magic, use something like this: <br>'+
363
+ '<i> &nbsp; &nbsp; IncludeDir "./abc/include"</i><br>'
364
+ ddrivetip("outputdir", "No","0..1","-",str)
365
+ }
366
+
349
367
  function showExtends() {
350
368
  ddrivetip("extends", "No","0..1","-","Inherit settings from a parent config.<br>For more information see docu page 'Derive configs'.")
351
369
  }
@@ -33,6 +33,8 @@ module Cxxproject
33
33
  ["lib"]
34
34
  elsif c.name == "DefaultToolchain"
35
35
  ["basedOn"]
36
+ elsif c.name == "Description"
37
+ ["text"]
36
38
  else
37
39
  ["name"]
38
40
  end
@@ -72,6 +72,7 @@ module Cxxproject
72
72
 
73
73
  class DefaultToolchain < ModelElement
74
74
  has_attr 'basedOn', String, :defaultValueLiteral => ""
75
+ has_attr 'outputDir', String, :defaultValueLiteral => ""
75
76
  contains_many 'compiler', Compiler, 'parent'
76
77
  contains_one 'archiver', Archiver, 'parent'
77
78
  contains_one 'linker', Linker, 'parent'
@@ -79,6 +80,7 @@ module Cxxproject
79
80
  end
80
81
 
81
82
  class Toolchain < ModelElement
83
+ has_attr 'outputDir', String, :defaultValueLiteral => ""
82
84
  contains_many 'compiler', Compiler, 'parent'
83
85
  contains_one 'archiver', Archiver, 'parent'
84
86
  contains_one 'linker', Linker, 'parent'
@@ -90,6 +92,10 @@ module Cxxproject
90
92
  has_attr 'email', String, :defaultValueLiteral => ""
91
93
  end
92
94
 
95
+ class Description < ModelElement
96
+ has_attr 'text', String, :defaultValueLiteral => ""
97
+ end
98
+
93
99
  class Responsible < ModelElement
94
100
  contains_many "person", Person, 'parent'
95
101
  end
@@ -212,9 +218,7 @@ module Cxxproject
212
218
  end
213
219
 
214
220
  class Project < ModelElement
215
- #has_attr 'name', String do
216
- # annotation :details => {'internal' => 'true'}
217
- #end
221
+ contains_one 'description', Description, 'parent'
218
222
  contains_one 'responsible', Responsible, 'parent'
219
223
  contains_many 'config', BaseConfig_INTERNAL, 'parent'
220
224
 
data/lib/bake/options.rb CHANGED
@@ -10,10 +10,12 @@ module Cxxproject
10
10
  attr_reader :roots, :include_filter, :exclude_filter # String List
11
11
  attr_reader :clean, :rebuild, :single, :verbose, :nocache, :color, :show_includes, :linkOnly, :check_uninc, :printLess, :no_autodir, :clobber, :lint, :debug, :cmake # Boolean
12
12
  attr_reader :threads, :socket, :lint_min, :lint_max # Fixnum
13
+ attr_reader :vars # map
13
14
 
14
15
  def initialize(argv)
15
16
  super(argv)
16
17
 
18
+ @vars = {}
17
19
  @build_config = ""
18
20
  @main_dir = nil
19
21
  @project = nil
@@ -68,6 +70,7 @@ module Cxxproject
68
70
  add_option(Option.new("-v2",false) { set_v(2) })
69
71
 
70
72
  add_option(Option.new("--debug",false) { set_debug })
73
+ add_option(Option.new("--set",true) { |x| set_set(x) })
71
74
 
72
75
  add_option(Option.new("--clobber",false) { set_clobber })
73
76
  add_option(Option.new("--ignore_cache",false) { set_nocache })
@@ -124,6 +127,7 @@ module Cxxproject
124
127
  puts " 'PRE' or 'POST' excludes all PreSteps respectively PostSteps."
125
128
  puts " --show_abs_paths Compiler prints absolute filename paths instead of relative paths."
126
129
  puts " --no_autodir Disable auto completion of paths like in IncludeDir"
130
+ puts " --set <key>=<value> Sets a variable. Overwrites variables defined in Project.metas (can be used multiple times)."
127
131
  puts ""
128
132
  puts " --version Print version."
129
133
  puts " -h, --help Print this help."
@@ -331,6 +335,15 @@ module Cxxproject
331
335
  @socket = String === num ? num.to_i : num
332
336
  end
333
337
 
338
+ def set_set(str)
339
+ ar = str.split("=")
340
+ if not str.include?"=" or ar[0].length == 0
341
+ Printer.printError "Error: --set must be followed by key=value"
342
+ ExitHelper.exit(1)
343
+ end
344
+ @vars[ar[0]] = ar[1..-1].join("=")
345
+ end
346
+
334
347
  def set_lint_min(num)
335
348
  @lint_min = String === num ? num.to_i : num
336
349
  end
data/lib/bake/subst.rb CHANGED
@@ -2,7 +2,7 @@ module Cxxproject
2
2
 
3
3
  class Subst
4
4
 
5
- def self.itute(config, projName, options, isMainProj)
5
+ def self.itute(config, projName, options, isMainProj, toolchain)
6
6
 
7
7
  @@configName = config.name
8
8
  @@projDir = config.parent.get_project_dir
@@ -23,7 +23,11 @@ module Cxxproject
23
23
  end
24
24
  end
25
25
 
26
- @@userVarMap = {} if isMainProj
26
+ if isMainProj
27
+ @@userVarMap = {}
28
+ else
29
+ @@userVarMap = @@userVarMapMain.clone
30
+ end
27
31
 
28
32
  config.set.each do |s|
29
33
 
@@ -57,8 +61,13 @@ module Cxxproject
57
61
  end
58
62
 
59
63
  end
64
+
65
+ @@userVarMapMain = @@userVarMap.clone if isMainProj
60
66
 
61
- 3.times {subst(config)}
67
+ 3.times {
68
+ subst(config);
69
+ substToolchain(toolchain)
70
+ }
62
71
 
63
72
  @@resolvedVars = 0
64
73
  lastFoundInVar = -1
@@ -86,8 +95,10 @@ module Cxxproject
86
95
 
87
96
  @@resolvedVars += 1
88
97
  var = str[posStart+2..posEnd-1]
89
-
90
- if @@userVarMap.has_key?(var)
98
+
99
+ if @@options.vars.has_key?(var)
100
+ substStr << @@options.vars[var]
101
+ elsif @@userVarMap.has_key?(var)
91
102
  substStr << @@userVarMap[var]
92
103
  elsif var == "MainConfigName"
93
104
  substStr << @@options.build_config
@@ -138,9 +149,21 @@ module Cxxproject
138
149
  substStr
139
150
  end
140
151
 
152
+ def self.substToolchain(elem)
153
+ elem.each do |k, e|
154
+ if Hash === e or Array === e
155
+ substToolchain(e)
156
+ elsif String === e
157
+ elem[k] = substString(e)
158
+ end
159
+ end
160
+ end
161
+
162
+
141
163
  def self.subst(elem)
142
164
  elem.class.ecore.eAllAttributes_derived.each do |a|
143
165
  next if a.name == "file_name" or a.name == "line_number"
166
+ #next if Metamodel::DefaultToolchain === elem
144
167
  next if a.eType.name != "EString"
145
168
  substStr = substString(elem.getGeneric(a.name))
146
169
  elem.setGeneric(a.name, substStr)
data/lib/bake/util.rb CHANGED
@@ -39,6 +39,7 @@ end
39
39
  def integrateToolchain(tcs, toolchain)
40
40
  return tcs unless toolchain
41
41
 
42
+ tcs[:OUTPUT_DIR] = toolchain.outputDir if toolchain.outputDir != ""
42
43
  integrateLinker(tcs, toolchain.linker) if toolchain.respond_to?"linker"
43
44
  integrateArchiver(tcs, toolchain.archiver)
44
45
  toolchain.compiler.each do |c|
data/lib/bake/version.rb CHANGED
@@ -1,11 +1,11 @@
1
1
  module Cxxproject
2
2
  class Version
3
3
  def self.bake
4
- "1.6.3"
4
+ "1.7.0"
5
5
  end
6
6
  end
7
7
 
8
- expectedCxx = "0.5.74"
8
+ expectedCxx = "0.5.75"
9
9
  expectedRGen = "0.6.0"
10
10
  expectedRText = "0.2.0"
11
11
 
data/lib/tocxx.rb CHANGED
@@ -38,6 +38,7 @@ module Cxxproject
38
38
 
39
39
  def initialize(options)
40
40
  @options = options
41
+ @configTcMap = {}
41
42
 
42
43
  RakeFileUtils.verbose_flag = @options.verbose
43
44
  end
@@ -382,20 +383,31 @@ module Cxxproject
382
383
  Printer.printError "Error: --cmake not supported by this version."
383
384
  end
384
385
 
386
+ def getTc(config)
387
+ tcs = nil
388
+ if not Metamodel::CustomConfig === config
389
+ tcs = Utils.deep_copy(@defaultToolchain)
390
+ integrateToolchain(tcs, config.toolchain)
391
+ else
392
+ tcs = Utils.deep_copy(Cxxproject::Toolchain::Provider.default)
393
+ end
394
+ @configTcMap[config] = tcs
395
+ end
396
+
385
397
  def substVars
386
398
  @mainConfig = @project2config[@mainProjectName]
387
399
 
388
- Subst.itute(@mainConfig, @mainProjectName, @options, true)
389
- @project2config.each do |projName, config|
390
- Subst.itute(config, projName, @options, false) if projName != @mainProjectName
391
- end
392
-
393
400
  basedOn = @mainConfig.defaultToolchain.basedOn
394
401
  basedOn = "GCC_Lint" if @options.lint
395
402
 
396
403
  basedOnToolchain = Cxxproject::Toolchain::Provider[basedOn]
397
404
  @defaultToolchain = Utils.deep_copy(basedOnToolchain)
398
405
  integrateToolchain(@defaultToolchain, @mainConfig.defaultToolchain)
406
+
407
+ Subst.itute(@mainConfig, @mainProjectName, @options, true, getTc(@mainConfig))
408
+ @project2config.each do |projName, config|
409
+ Subst.itute(config, projName, @options, false, getTc(config)) if projName != @mainProjectName
410
+ end
399
411
  end
400
412
 
401
413
  def convert2bb
@@ -407,13 +419,7 @@ module Cxxproject
407
419
  bbModule = ModuleBuildingBlock.new("Project "+projName)
408
420
  bbModule.contents = []
409
421
 
410
- tcs = nil
411
- if not Metamodel::CustomConfig === config
412
- tcs = Utils.deep_copy(@defaultToolchain)
413
- integrateToolchain(tcs, config.toolchain)
414
- else
415
- tcs = Utils.deep_copy(Cxxproject::Toolchain::Provider.default)
416
- end
422
+ tcs = @configTcMap[config]
417
423
 
418
424
  addSteps(config.postSteps, bbModule, projDir, "POST", tcs) if not @options.linkOnly
419
425
 
@@ -469,7 +475,10 @@ module Cxxproject
469
475
  end
470
476
  c.set_project_dir(projDir)
471
477
 
472
- if projName == @mainProjectName
478
+ if tcs[:OUTPUT_DIR] != nil
479
+ p = convPath(tcs[:OUTPUT_DIR], config)
480
+ c.set_output_dir(p)
481
+ elsif projName == @mainProjectName
473
482
  c.set_output_dir(@options.build_config)
474
483
  else
475
484
  c.set_output_dir(@options.build_config + "_" + @mainProjectName)
@@ -842,13 +851,6 @@ module Cxxproject
842
851
  @runTask.prerequisites.clear
843
852
  end
844
853
 
845
-
846
- #RubyProf.start
847
- #result = RubyProf.stop
848
- #printer = RubyProf::FlatPrinter.new(result)
849
- #printer.print(STDOUT)
850
-
851
-
852
854
  return true
853
855
  end
854
856
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: bake-toolkit
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.6.3
4
+ version: 1.7.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Alexander Schaal
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-08-08 00:00:00.000000000 Z
11
+ date: 2014-11-04 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: cxxproject
@@ -16,14 +16,14 @@ dependencies:
16
16
  requirements:
17
17
  - - '='
18
18
  - !ruby/object:Gem::Version
19
- version: 0.5.74
19
+ version: 0.5.75
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - '='
25
25
  - !ruby/object:Gem::Version
26
- version: 0.5.74
26
+ version: 0.5.75
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: rtext
29
29
  requirement: !ruby/object:Gem::Requirement