rtask 006 → 007
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.
- data/History.txt +4 -0
 - data/README.txt +1 -1
 - data/Rakefile +1 -1
 - data/bin/rtask +50 -12
 - data/lib/rtask.rb +77 -29
 - metadata +11 -2
 
    
        data/History.txt
    CHANGED
    
    
    
        data/README.txt
    CHANGED
    
    | 
         @@ -1,7 +1,7 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            = RTask
         
     | 
| 
       2 
2 
     | 
    
         | 
| 
       3 
3 
     | 
    
         
             
            Author::    Keita Yamaguchi(山口 慶太) <keita.yamaguchi@gmail.com>
         
     | 
| 
       4 
     | 
    
         
            -
            Copyright:: © Keita Yamaguchi, 2007 
     | 
| 
      
 4 
     | 
    
         
            +
            Copyright:: © Keita Yamaguchi, 2007-2008. All rights reserved.
         
     | 
| 
       5 
5 
     | 
    
         
             
            License::   Ruby License
         
     | 
| 
       6 
6 
     | 
    
         | 
| 
       7 
7 
     | 
    
         
             
            RTask provides easy way to release Ruby’s gem packages. This also provides useful Rake tasks for releasing packages and uploading documents.
         
     | 
    
        data/Rakefile
    CHANGED
    
    
    
        data/bin/rtask
    CHANGED
    
    | 
         @@ -4,24 +4,62 @@ require "rubygems" 
     | 
|
| 
       4 
4 
     | 
    
         
             
            require "rtask"
         
     | 
| 
       5 
5 
     | 
    
         
             
            require "optparse"
         
     | 
| 
       6 
6 
     | 
    
         | 
| 
       7 
     | 
    
         
            -
            $task = RTask.new
         
     | 
| 
      
 7 
     | 
    
         
            +
            $task = RTask.new(:use => :all)
         
     | 
| 
       8 
8 
     | 
    
         | 
| 
       9 
     | 
    
         
            -
             
     | 
| 
       10 
     | 
    
         
            -
               
     | 
| 
       11 
     | 
    
         
            -
             
     | 
| 
       12 
     | 
    
         
            -
             
     | 
| 
       13 
     | 
    
         
            -
             
     | 
| 
      
 9 
     | 
    
         
            +
            def call_task(name)
         
     | 
| 
      
 10 
     | 
    
         
            +
              ARGV.clear
         
     | 
| 
      
 11 
     | 
    
         
            +
              ARGV[0] = name
         
     | 
| 
      
 12 
     | 
    
         
            +
              Rake.application.init
         
     | 
| 
      
 13 
     | 
    
         
            +
              # This is ugly, but needed for unknown reason
         
     | 
| 
      
 14 
     | 
    
         
            +
              # (filetask contains unused empty string).
         
     | 
| 
      
 15 
     | 
    
         
            +
              # Please teach me if you know about it.
         
     | 
| 
      
 16 
     | 
    
         
            +
              filetask = Rake.application.instance_eval{@tasks["html/index.html"]}
         
     | 
| 
      
 17 
     | 
    
         
            +
              filetask.instance_eval do
         
     | 
| 
      
 18 
     | 
    
         
            +
                @prerequisites.exclude("")
         
     | 
| 
      
 19 
     | 
    
         
            +
              end
         
     | 
| 
      
 20 
     | 
    
         
            +
              Rake.application.top_level
         
     | 
| 
      
 21 
     | 
    
         
            +
              exit
         
     | 
| 
      
 22 
     | 
    
         
            +
            end
         
     | 
| 
      
 23 
     | 
    
         
            +
             
     | 
| 
      
 24 
     | 
    
         
            +
            OptionParser.new(nil, 24) do |opt|
         
     | 
| 
      
 25 
     | 
    
         
            +
              opt.on("-r", "--release", RTask::MESSAGE[:release]) do
         
     | 
| 
      
 26 
     | 
    
         
            +
                call_task "release"
         
     | 
| 
      
 27 
     | 
    
         
            +
              end
         
     | 
| 
      
 28 
     | 
    
         
            +
             
     | 
| 
      
 29 
     | 
    
         
            +
              opt.on("-p", "--packages", RTask::MESSAGE[:packages]) do
         
     | 
| 
      
 30 
     | 
    
         
            +
                call_task "packages"
         
     | 
| 
      
 31 
     | 
    
         
            +
              end
         
     | 
| 
      
 32 
     | 
    
         
            +
             
     | 
| 
      
 33 
     | 
    
         
            +
              opt.on("--gem", RTask::MESSAGE[:gem]) do
         
     | 
| 
      
 34 
     | 
    
         
            +
                call_task "gem"
         
     | 
| 
      
 35 
     | 
    
         
            +
              end
         
     | 
| 
      
 36 
     | 
    
         
            +
             
     | 
| 
      
 37 
     | 
    
         
            +
              opt.on("--tgz", RTask::MESSAGE[:tgz]) do
         
     | 
| 
      
 38 
     | 
    
         
            +
                call_task "tgz"
         
     | 
| 
       14 
39 
     | 
    
         
             
              end
         
     | 
| 
       15 
40 
     | 
    
         | 
| 
       16 
     | 
    
         
            -
              opt.on(" 
     | 
| 
       17 
     | 
    
         
            -
                 
     | 
| 
       18 
     | 
    
         
            -
             
     | 
| 
       19 
     | 
    
         
            -
             
     | 
| 
      
 41 
     | 
    
         
            +
              opt.on("--zip", RTask::MESSAGE[:zip]) do
         
     | 
| 
      
 42 
     | 
    
         
            +
                call_task "zip"
         
     | 
| 
      
 43 
     | 
    
         
            +
              end
         
     | 
| 
      
 44 
     | 
    
         
            +
             
     | 
| 
      
 45 
     | 
    
         
            +
              opt.on("--rdoc", "Build the rdoc HTML Files") do
         
     | 
| 
      
 46 
     | 
    
         
            +
                call_task "rdoc"
         
     | 
| 
      
 47 
     | 
    
         
            +
              end
         
     | 
| 
      
 48 
     | 
    
         
            +
             
     | 
| 
      
 49 
     | 
    
         
            +
              opt.on("--publish", RTask::MESSAGE[:publish]) do
         
     | 
| 
      
 50 
     | 
    
         
            +
                call_task "publish"
         
     | 
| 
      
 51 
     | 
    
         
            +
              end
         
     | 
| 
      
 52 
     | 
    
         
            +
             
     | 
| 
      
 53 
     | 
    
         
            +
              opt.on("-c", "--clean", "Remove packages and temporary products") do
         
     | 
| 
      
 54 
     | 
    
         
            +
                call_task "clean"
         
     | 
| 
       20 
55 
     | 
    
         
             
              end
         
     | 
| 
       21 
56 
     | 
    
         | 
| 
       22 
57 
     | 
    
         
             
              opt.on("-h", "--help", "Show this message") do
         
     | 
| 
       23 
     | 
    
         
            -
                puts opt.help
         
     | 
| 
       24 
     | 
    
         
            -
             
     | 
| 
      
 58 
     | 
    
         
            +
                puts opt.help; exit
         
     | 
| 
      
 59 
     | 
    
         
            +
              end
         
     | 
| 
      
 60 
     | 
    
         
            +
             
     | 
| 
      
 61 
     | 
    
         
            +
              opt.on("-v", "--version", "Show RTask version") do
         
     | 
| 
      
 62 
     | 
    
         
            +
                puts RTask::VERSION; exit
         
     | 
| 
       25 
63 
     | 
    
         
             
              end
         
     | 
| 
       26 
64 
     | 
    
         | 
| 
       27 
65 
     | 
    
         
             
              opt.parse!(ARGV)
         
     | 
    
        data/lib/rtask.rb
    CHANGED
    
    | 
         @@ -24,7 +24,8 @@ require 'gemify' 
     | 
|
| 
       24 
24 
     | 
    
         
             
            #   rake tgz           # Create the tgz package
         
     | 
| 
       25 
25 
     | 
    
         
             
            #
         
     | 
| 
       26 
26 
     | 
    
         
             
            class RTask
         
     | 
| 
       27 
     | 
    
         
            -
              VERSION = " 
     | 
| 
      
 27 
     | 
    
         
            +
              VERSION = "007"
         
     | 
| 
      
 28 
     | 
    
         
            +
              MESSAGE = Hash.new
         
     | 
| 
       28 
29 
     | 
    
         | 
| 
       29 
30 
     | 
    
         
             
              attr_reader :project, :package, :version
         
     | 
| 
       30 
31 
     | 
    
         | 
| 
         @@ -44,20 +45,46 @@ class RTask 
     | 
|
| 
       44 
45 
     | 
    
         
             
                yield self if block_given?
         
     | 
| 
       45 
46 
     | 
    
         
             
              end
         
     | 
| 
       46 
47 
     | 
    
         | 
| 
       47 
     | 
    
         
            -
              #  
     | 
| 
      
 48 
     | 
    
         
            +
              # define task
         
     | 
| 
      
 49 
     | 
    
         
            +
              def self.define_task(description, rule)
         
     | 
| 
      
 50 
     | 
    
         
            +
                name = rule
         
     | 
| 
      
 51 
     | 
    
         
            +
                if rule.kind_of?(Hash)
         
     | 
| 
      
 52 
     | 
    
         
            +
                  name = rule.keys.first
         
     | 
| 
      
 53 
     | 
    
         
            +
                end
         
     | 
| 
      
 54 
     | 
    
         
            +
             
     | 
| 
      
 55 
     | 
    
         
            +
                MESSAGE[name] = description
         
     | 
| 
      
 56 
     | 
    
         
            +
             
     | 
| 
      
 57 
     | 
    
         
            +
                define_method("register_task_#{name}") do |rtask|
         
     | 
| 
      
 58 
     | 
    
         
            +
                  desc description if description
         
     | 
| 
      
 59 
     | 
    
         
            +
                  task(rule){ rtask.send name if rtask.respond_to?(name) }
         
     | 
| 
      
 60 
     | 
    
         
            +
                end
         
     | 
| 
      
 61 
     | 
    
         
            +
              end
         
     | 
| 
      
 62 
     | 
    
         
            +
             
     | 
| 
      
 63 
     | 
    
         
            +
              # Specifies to use tasks
         
     | 
| 
       48 
64 
     | 
    
         
             
              def use(*names)
         
     | 
| 
       49 
65 
     | 
    
         
             
                if names[0] == :all
         
     | 
| 
       50 
     | 
    
         
            -
                  names = [:clean, :rdoc, :publish, :release, : 
     | 
| 
      
 66 
     | 
    
         
            +
                  names = [:clean, :rdoc, :publish, :release, :packages]
         
     | 
| 
       51 
67 
     | 
    
         
             
                end
         
     | 
| 
       52 
68 
     | 
    
         
             
                names.each do |name|
         
     | 
| 
       53 
     | 
    
         
            -
                   
     | 
| 
      
 69 
     | 
    
         
            +
                  register = "register_task_#{name}"
         
     | 
| 
      
 70 
     | 
    
         
            +
                  case name
         
     | 
| 
      
 71 
     | 
    
         
            +
                  when :clean, :rdoc
         
     | 
| 
      
 72 
     | 
    
         
            +
                    send(name)
         
     | 
| 
      
 73 
     | 
    
         
            +
                  when :packages
         
     | 
| 
      
 74 
     | 
    
         
            +
                    send(register, self)
         
     | 
| 
      
 75 
     | 
    
         
            +
                    send("register_task_gem", self)
         
     | 
| 
      
 76 
     | 
    
         
            +
                    send("register_task_tgz", self)
         
     | 
| 
      
 77 
     | 
    
         
            +
                    send("register_task_zip", self)
         
     | 
| 
      
 78 
     | 
    
         
            +
                  else
         
     | 
| 
      
 79 
     | 
    
         
            +
                    send(register, self)
         
     | 
| 
      
 80 
     | 
    
         
            +
                  end
         
     | 
| 
       54 
81 
     | 
    
         
             
                end
         
     | 
| 
       55 
82 
     | 
    
         
             
              end
         
     | 
| 
       56 
83 
     | 
    
         | 
| 
       57 
84 
     | 
    
         
             
              # Task for cleaning.
         
     | 
| 
       58 
85 
     | 
    
         
             
              def clean
         
     | 
| 
       59 
86 
     | 
    
         
             
                require 'rake/clean'
         
     | 
| 
       60 
     | 
    
         
            -
                CLEAN.include [' 
     | 
| 
      
 87 
     | 
    
         
            +
                CLEAN.include ['html', '*.gem', '*.tgz', '*.zip', '.config', '**/.DS_Store']
         
     | 
| 
       61 
88 
     | 
    
         
             
              end
         
     | 
| 
       62 
89 
     | 
    
         | 
| 
       63 
90 
     | 
    
         
             
              # Task for generating documents using rdoc.
         
     | 
| 
         @@ -66,7 +93,7 @@ class RTask 
     | 
|
| 
       66 
93 
     | 
    
         
             
                Rake::RDocTask.new do |doc|
         
     | 
| 
       67 
94 
     | 
    
         
             
                  doc.title = "#{@package}-#{@version} documentation"
         
     | 
| 
       68 
95 
     | 
    
         
             
                  doc.main = "README.txt"
         
     | 
| 
       69 
     | 
    
         
            -
                  doc.rdoc_files.include("{README,History,License}.txt", "lib 
     | 
| 
      
 96 
     | 
    
         
            +
                  doc.rdoc_files.include("{README,History,License}.txt", "lib/*.rb")
         
     | 
| 
       70 
97 
     | 
    
         
             
                  doc.options << "--line-numbers" << "--inline-source" << "-c UTF-8"
         
     | 
| 
       71 
98 
     | 
    
         
             
                  yield doc if block_given?
         
     | 
| 
       72 
99 
     | 
    
         
             
                end
         
     | 
| 
         @@ -75,20 +102,14 @@ class RTask 
     | 
|
| 
       75 
102 
     | 
    
         
             
              # Task for uploading API documentation.
         
     | 
| 
       76 
103 
     | 
    
         
             
              def publish
         
     | 
| 
       77 
104 
     | 
    
         
             
                require 'rake/contrib/rubyforgepublisher'
         
     | 
| 
       78 
     | 
    
         
            -
                 
     | 
| 
       79 
     | 
    
         
            -
                 
     | 
| 
       80 
     | 
    
         
            -
                  pub = Rake::RubyForgePublisher.new(@project, @user["username"])
         
     | 
| 
       81 
     | 
    
         
            -
                  pub.upload
         
     | 
| 
       82 
     | 
    
         
            -
                end
         
     | 
| 
      
 105 
     | 
    
         
            +
                pub = Rake::RubyForgePublisher.new(@project, @user["username"])
         
     | 
| 
      
 106 
     | 
    
         
            +
                pub.upload
         
     | 
| 
       83 
107 
     | 
    
         
             
              end
         
     | 
| 
       84 
108 
     | 
    
         | 
| 
      
 109 
     | 
    
         
            +
              define_task "Upload API documentation", :publish => [:rdoc]
         
     | 
| 
      
 110 
     | 
    
         
            +
             
     | 
| 
       85 
111 
     | 
    
         
             
              # Task for release the package.
         
     | 
| 
       86 
112 
     | 
    
         
             
              def release
         
     | 
| 
       87 
     | 
    
         
            -
                desc 'Release new gem version'
         
     | 
| 
       88 
     | 
    
         
            -
                task :release do real_release end
         
     | 
| 
       89 
     | 
    
         
            -
              end
         
     | 
| 
       90 
     | 
    
         
            -
             
     | 
| 
       91 
     | 
    
         
            -
              def real_release #:nodoc:
         
     | 
| 
       92 
113 
     | 
    
         
             
                if @lib_version and @version.to_s != @lib_version.to_s
         
     | 
| 
       93 
114 
     | 
    
         
             
                  puts "Version confilict between the library and in .gemified"
         
     | 
| 
       94 
115 
     | 
    
         
             
                  puts "library: " + @lib_version.to_s
         
     | 
| 
         @@ -98,8 +119,9 @@ class RTask 
     | 
|
| 
       98 
119 
     | 
    
         
             
                filename = "#{@package}-#{@version}"
         
     | 
| 
       99 
120 
     | 
    
         
             
                gem = filename + ".gem"
         
     | 
| 
       100 
121 
     | 
    
         
             
                tgz = filename + ".tgz"
         
     | 
| 
      
 122 
     | 
    
         
            +
                zip = filename + ".zip"
         
     | 
| 
       101 
123 
     | 
    
         
             
                if File.exist?(gem) and File.exist?(tgz)
         
     | 
| 
       102 
     | 
    
         
            -
                  @rubyforge.add_release @project, @package, @version, gem, tgz
         
     | 
| 
      
 124 
     | 
    
         
            +
                  @rubyforge.add_release @project, @package, @version, gem, tgz, zip
         
     | 
| 
       103 
125 
     | 
    
         
             
                  puts "Released #{gem} and #{tgz}"
         
     | 
| 
       104 
126 
     | 
    
         
             
                else
         
     | 
| 
       105 
127 
     | 
    
         
             
                  puts "Please make gem and tgz files first: rake gem tgz"
         
     | 
| 
         @@ -107,24 +129,50 @@ class RTask 
     | 
|
| 
       107 
129 
     | 
    
         
             
                end
         
     | 
| 
       108 
130 
     | 
    
         
             
              end
         
     | 
| 
       109 
131 
     | 
    
         | 
| 
       110 
     | 
    
         
            -
               
     | 
| 
       111 
     | 
    
         
            -
             
     | 
| 
       112 
     | 
    
         
            -
             
     | 
| 
       113 
     | 
    
         
            -
             
     | 
| 
       114 
     | 
    
         
            -
              end
         
     | 
| 
      
 132 
     | 
    
         
            +
              define_task 'Release new gem', :release => [:packages]
         
     | 
| 
      
 133 
     | 
    
         
            +
             
     | 
| 
      
 134 
     | 
    
         
            +
              # Task for creating packages
         
     | 
| 
      
 135 
     | 
    
         
            +
              define_task "Create packages", :packages => [:gem, :tgz, :zip]
         
     | 
| 
       115 
136 
     | 
    
         | 
| 
       116 
     | 
    
         
            -
               
     | 
| 
      
 137 
     | 
    
         
            +
              # Task for creating gem
         
     | 
| 
      
 138 
     | 
    
         
            +
              def gem
         
     | 
| 
       117 
139 
     | 
    
         
             
                sh "gemify -I"
         
     | 
| 
       118 
140 
     | 
    
         
             
              end
         
     | 
| 
       119 
141 
     | 
    
         | 
| 
       120 
     | 
    
         
            -
               
     | 
| 
       121 
     | 
    
         
            -
              def tgz
         
     | 
| 
       122 
     | 
    
         
            -
                desc "Create the tgz package"
         
     | 
| 
       123 
     | 
    
         
            -
                task :tgz do real_tgz end
         
     | 
| 
       124 
     | 
    
         
            -
              end
         
     | 
| 
      
 142 
     | 
    
         
            +
              define_task "Create the gem package", :gem
         
     | 
| 
       125 
143 
     | 
    
         | 
| 
       126 
     | 
    
         
            -
               
     | 
| 
      
 144 
     | 
    
         
            +
              # Task for creating tgz
         
     | 
| 
      
 145 
     | 
    
         
            +
              def tgz
         
     | 
| 
       127 
146 
     | 
    
         
             
                tgz = "#{@package}-#{@version}.tgz"
         
     | 
| 
       128 
147 
     | 
    
         
             
                sh "tar -T Manifest.txt -c -z -f #{tgz}"
         
     | 
| 
       129 
148 
     | 
    
         
             
              end
         
     | 
| 
      
 149 
     | 
    
         
            +
             
     | 
| 
      
 150 
     | 
    
         
            +
              define_task "Create the tgz package", :tgz
         
     | 
| 
      
 151 
     | 
    
         
            +
             
     | 
| 
      
 152 
     | 
    
         
            +
              # Task for creating zip
         
     | 
| 
      
 153 
     | 
    
         
            +
              def zip
         
     | 
| 
      
 154 
     | 
    
         
            +
                require "zip/zipfilesystem"
         
     | 
| 
      
 155 
     | 
    
         
            +
                filename = "#{@package}-#{@version}.zip"
         
     | 
| 
      
 156 
     | 
    
         
            +
                rm filename if File.exist?(filename)
         
     | 
| 
      
 157 
     | 
    
         
            +
                Zip::ZipFile.open(filename, Zip::ZipFile::CREATE) do |zip|
         
     | 
| 
      
 158 
     | 
    
         
            +
                  manifest.each do |file|
         
     | 
| 
      
 159 
     | 
    
         
            +
                    zip.file.open(File.join("#{package}-#{@version}", file), "w") do |out|
         
     | 
| 
      
 160 
     | 
    
         
            +
                      out.write(File.open(file).read)
         
     | 
| 
      
 161 
     | 
    
         
            +
                    end
         
     | 
| 
      
 162 
     | 
    
         
            +
                  end
         
     | 
| 
      
 163 
     | 
    
         
            +
                end
         
     | 
| 
      
 164 
     | 
    
         
            +
              end
         
     | 
| 
      
 165 
     | 
    
         
            +
             
     | 
| 
      
 166 
     | 
    
         
            +
              define_task "Create the zip package", :zip
         
     | 
| 
      
 167 
     | 
    
         
            +
             
     | 
| 
      
 168 
     | 
    
         
            +
              private
         
     | 
| 
      
 169 
     | 
    
         
            +
             
     | 
| 
      
 170 
     | 
    
         
            +
              def manifest
         
     | 
| 
      
 171 
     | 
    
         
            +
                manifest = Dir.glob("*Manifest*", File::FNM_CASEFOLD).first
         
     | 
| 
      
 172 
     | 
    
         
            +
                unless manifest
         
     | 
| 
      
 173 
     | 
    
         
            +
                  puts "Please make manifest"
         
     | 
| 
      
 174 
     | 
    
         
            +
                  exit
         
     | 
| 
      
 175 
     | 
    
         
            +
                end
         
     | 
| 
      
 176 
     | 
    
         
            +
                File.read(manifest).split("\n")
         
     | 
| 
      
 177 
     | 
    
         
            +
              end
         
     | 
| 
       130 
178 
     | 
    
         
             
            end
         
     | 
    
        metadata
    CHANGED
    
    | 
         @@ -1,7 +1,7 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            --- !ruby/object:Gem::Specification 
         
     | 
| 
       2 
2 
     | 
    
         
             
            name: rtask
         
     | 
| 
       3 
3 
     | 
    
         
             
            version: !ruby/object:Gem::Version 
         
     | 
| 
       4 
     | 
    
         
            -
              version: " 
     | 
| 
      
 4 
     | 
    
         
            +
              version: "007"
         
     | 
| 
       5 
5 
     | 
    
         
             
            platform: ruby
         
     | 
| 
       6 
6 
     | 
    
         
             
            authors: 
         
     | 
| 
       7 
7 
     | 
    
         
             
            - Keita Yamaguchi
         
     | 
| 
         @@ -9,7 +9,7 @@ autorequire: 
     | 
|
| 
       9 
9 
     | 
    
         
             
            bindir: bin
         
     | 
| 
       10 
10 
     | 
    
         
             
            cert_chain: []
         
     | 
| 
       11 
11 
     | 
    
         | 
| 
       12 
     | 
    
         
            -
            date: 2008-04- 
     | 
| 
      
 12 
     | 
    
         
            +
            date: 2008-04-18 00:00:00 +09:00
         
     | 
| 
       13 
13 
     | 
    
         
             
            default_executable: 
         
     | 
| 
       14 
14 
     | 
    
         
             
            dependencies: 
         
     | 
| 
       15 
15 
     | 
    
         
             
            - !ruby/object:Gem::Dependency 
         
     | 
| 
         @@ -30,6 +30,15 @@ dependencies: 
     | 
|
| 
       30 
30 
     | 
    
         
             
                  - !ruby/object:Gem::Version 
         
     | 
| 
       31 
31 
     | 
    
         
             
                    version: "0"
         
     | 
| 
       32 
32 
     | 
    
         
             
                version: 
         
     | 
| 
      
 33 
     | 
    
         
            +
            - !ruby/object:Gem::Dependency 
         
     | 
| 
      
 34 
     | 
    
         
            +
              name: rubyzip
         
     | 
| 
      
 35 
     | 
    
         
            +
              version_requirement: 
         
     | 
| 
      
 36 
     | 
    
         
            +
              version_requirements: !ruby/object:Gem::Requirement 
         
     | 
| 
      
 37 
     | 
    
         
            +
                requirements: 
         
     | 
| 
      
 38 
     | 
    
         
            +
                - - ">="
         
     | 
| 
      
 39 
     | 
    
         
            +
                  - !ruby/object:Gem::Version 
         
     | 
| 
      
 40 
     | 
    
         
            +
                    version: "0"
         
     | 
| 
      
 41 
     | 
    
         
            +
                version: 
         
     | 
| 
       33 
42 
     | 
    
         
             
            description: 
         
     | 
| 
       34 
43 
     | 
    
         
             
            email: keita.yamaguchi@gmail.com
         
     | 
| 
       35 
44 
     | 
    
         
             
            executables: 
         
     |