taskmapper-cli 0.0.4 → 0.0.5

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/lib/tm.rb CHANGED
@@ -1,33 +1,33 @@
1
- require 'tm/version.rb'
1
+ require_relative 'tm/version.rb'
2
2
 
3
- require 'tm/string_extensions'
3
+ require_relative 'tm/string_extensions'
4
4
 
5
5
  # Taskmapper provider handler
6
- require 'tm/provider_handler'
6
+ require_relative 'tm/provider_handler'
7
7
 
8
8
  # Commands
9
- require 'tm/commands/command'
10
- require 'tm/commands/list_all_projects'
11
- require 'tm/commands/first_project'
12
- require 'tm/commands/last_project'
13
- require 'tm/commands/single_project'
14
- require 'tm/commands/list_all_tasks'
15
- require 'tm/commands/first_task'
16
- require 'tm/commands/last_task'
17
- require 'tm/commands/single_task'
18
- require 'tm/commands/create_task'
19
- require 'tm/commands/create_comment'
20
- require 'tm/commands/generate_provider'
9
+ require_relative 'tm/commands/command'
10
+ require_relative 'tm/commands/list_all_projects'
11
+ require_relative 'tm/commands/first_project'
12
+ require_relative 'tm/commands/last_project'
13
+ require_relative 'tm/commands/single_project'
14
+ require_relative 'tm/commands/list_all_tasks'
15
+ require_relative 'tm/commands/first_task'
16
+ require_relative 'tm/commands/last_task'
17
+ require_relative 'tm/commands/single_task'
18
+ require_relative 'tm/commands/create_task'
19
+ require_relative 'tm/commands/create_comment'
20
+ require_relative 'tm/commands/generate_provider'
21
21
 
22
22
  # Formatters
23
- require 'tm/commands/list_all_comments_for_task'
23
+ require_relative 'tm/commands/list_all_comments_for_task'
24
24
 
25
- require 'tm/format/format'
26
- require 'tm/format/csv'
27
- require 'tm/format/pretty'
28
- require 'tm/format/table'
25
+ require_relative 'tm/format/format'
26
+ require_relative 'tm/format/csv'
27
+ require_relative 'tm/format/pretty'
28
+ require_relative 'tm/format/table'
29
29
 
30
- require 'tm/exceptions'
30
+ require_relative 'tm/exceptions'
31
31
 
32
32
  module TM
33
33
 
@@ -0,0 +1,11 @@
1
+ module TM
2
+ module Commands
3
+ class Command
4
+ def initialize(provider_handler, formatter, attributes = '')
5
+ @provider_handler = provider_handler
6
+ @formatter = formatter
7
+ @attributes = attributes.extend(TM::StringExtensions).to_hash
8
+ end
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,18 @@
1
+ module TM
2
+ module Commands
3
+ class CreateComment < Command
4
+
5
+ def execute(task_attribute = '', comment_attribute = '')
6
+ project = @provider_handler.taskmapper.project(@attributes)
7
+ task_attribute = task_attribute.extend(TM::StringExtensions).to_hash
8
+ ticket = project.tickets(task_attribute).first
9
+ comment_attribute = comment_attribute.extend(TM::StringExtensions).to_hash
10
+ comment = ticket.comment! comment_attribute
11
+ @formatter.before(comment)
12
+ @formatter.format(comment)
13
+ @formatter.after
14
+ end
15
+
16
+ end
17
+ end
18
+ end
@@ -0,0 +1,15 @@
1
+ module TM
2
+ module Commands
3
+ class CreateTask < Command
4
+
5
+ def execute(task_attributes = '')
6
+ project = @provider_handler.taskmapper.project(@attributes)
7
+ task_attributes = task_attributes.extend(TM::StringExtensions).to_hash
8
+ task= project.ticket! task_attributes
9
+ @formatter.before(task)
10
+ @formatter.format(task)
11
+ @formatter.after
12
+ end
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,12 @@
1
+ module TM
2
+ module Commands
3
+ class FirstProject < Command
4
+ def execute
5
+ project = @provider_handler.taskmapper.projects.first
6
+ @formatter.before(project)
7
+ @formatter.format(project)
8
+ @formatter.after
9
+ end
10
+ end
11
+ end
12
+ end
@@ -0,0 +1,13 @@
1
+ module TM
2
+ module Commands
3
+ class FirstTask < Command
4
+ def execute(search_attrs = '')
5
+ project = @provider_handler.taskmapper.project(@attributes)
6
+ ticket = project.tickets.first
7
+ @formatter.before(ticket)
8
+ @formatter.format(ticket)
9
+ @formatter.after
10
+ end
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,224 @@
1
+ require 'fileutils'
2
+
3
+ module TM
4
+ module Commands
5
+ class GenerateProvider
6
+ class << self
7
+ def create(provider_name)
8
+ short_name = provider_name
9
+ provider_name = "taskmapper-#{provider_name}"
10
+ FileUtils.mkdir_p "#{provider_name}/lib/provider"
11
+ create_readme(provider_name)
12
+ create_gemfile(provider_name)
13
+ create_version_file(provider_name, short_name)
14
+ create_rakefile(provider_name)
15
+ create_lib_file(provider_name, short_name)
16
+ create_provider_file(provider_name, short_name)
17
+ create_project_file(provider_name, short_name)
18
+ create_ticket_file(provider_name, short_name)
19
+ create_comment_file(provider_name, short_name)
20
+ create_gemspec(provider_name, short_name)
21
+ end
22
+
23
+ private
24
+ def provider_lib_path(provider_name)
25
+ "#{provider_name}/lib"
26
+ end
27
+
28
+ def create_gemfile(provider_name)
29
+ File.open("#{provider_name}/Gemfile", "w") do |file|
30
+ file.puts <<EOS
31
+ source 'https://rubygems.org'
32
+ gemspec
33
+ EOS
34
+ end
35
+ puts "Created #{provider_name}/Gemfile"
36
+ end
37
+
38
+ def create_rakefile(provider_name)
39
+ File.open("#{provider_name}/Rakefile", "w") do |file|
40
+ file.puts <<EOS
41
+ require 'rake/clean'
42
+ require 'rdoc/task'
43
+ require 'bundler/gem_tasks'
44
+
45
+ Rake::RDocTask.new do |rd|
46
+ rd.main = "README.rdoc"
47
+ rd.rdoc_files.include("README.rdoc","lib/**/*.rb")
48
+ rd.title = 'Your application title'
49
+ end
50
+
51
+ EOS
52
+ end
53
+ puts "Created #{provider_name}/Rakefile"
54
+ end
55
+
56
+ def create_version_file(provider_name, short_name)
57
+ File.open("#{provider_lib_path(provider_name)}/provider/version.rb", "w") do |file|
58
+ file.puts <<EOS
59
+ module TaskMapper
60
+ module #{short_name.capitalize}
61
+ VERSION = '0.0.1'
62
+ end
63
+ end
64
+ EOS
65
+ end
66
+ puts "Created #{provider_lib_path(provider_name)}/provider/version.rb"
67
+ end
68
+
69
+ def create_gemspec(provider_name, short_name)
70
+ File.open("#{provider_name}/#{provider_name}.gemspec", "w") do |file|
71
+ file.puts <<EOS
72
+ # Ensure we require the local version and not one we might have installed
73
+ # already
74
+ lib = File.expand_path('../lib', __FILE__)
75
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
76
+ require 'provider/version'
77
+
78
+ spec = Gem::Specification.new do |s|
79
+ s.name = '#{provider_name}'
80
+ s.version = TaskMapper::#{short_name.capitalize}::VERSION
81
+ s.author = 'Your Name Here'
82
+ s.email = 'your@email.address.com'
83
+ s.homepage = 'http://your.website.com'
84
+ s.platform = Gem::Platform::RUBY
85
+ s.summary = 'A description of your project'
86
+ # Add your other files here if you make them
87
+ s.files = %w(
88
+ lib/provider/version.rb
89
+ lib/#{provider_name}.rb
90
+ )
91
+ s.require_paths << 'lib'
92
+ s.has_rdoc = true
93
+ s.extra_rdoc_files = ['README.rdoc']
94
+ s.rdoc_options << '--title' << '#{provider_name}' << '--main' << 'README.rdoc' << '-ri'
95
+ s.add_development_dependency('rake')
96
+ s.add_development_dependency('rdoc')
97
+ s.add_development_dependency('bundler')
98
+ s.add_runtime_dependency('taskmapper')
99
+ end
100
+ EOS
101
+ end
102
+ puts "Created #{provider_name}/#{provider_name}.gemspec"
103
+ end
104
+
105
+ def create_readme(provider_name)
106
+ File.open("#{provider_name}/README.rdoc", "w") do |file|
107
+ file << "= #{provider_name.capitalize}"
108
+ file << "Describe your project here"
109
+ end
110
+ puts "Created #{provider_name}/README.rdoc"
111
+ end
112
+
113
+ def create_lib_file(provider_name, short_name)
114
+ File.open("#{provider_lib_path(provider_name)}/#{provider_name}.rb", "w") do |file|
115
+ file.puts <<EOS
116
+ #require YOUR_PROVIDER_API
117
+
118
+ %w{ #{short_name} project ticket comment }.each do |f|
119
+ require File.dirname(__FILE__) + '/provider/' + f + '.rb'
120
+ end
121
+ EOS
122
+ end
123
+ puts "Created #{provider_lib_path(provider_name)}/#{provider_name}.rb"
124
+ end
125
+
126
+ def create_provider_file(provider_name,short_name)
127
+ File.open("#{provider_lib_path(provider_name)}/provider/#{short_name}.rb", "w") do |file|
128
+ file.puts <<EOS
129
+ module TaskMapper::Provider
130
+ # This is the Yoursystem Provider for taskmapper
131
+ module #{short_name.capitalize}
132
+ include TaskMapper::Provider::Base
133
+ #TICKET_API = #{short_name.capitalize}::Ticket # The class to access the api's tickets
134
+ #PROJECT_API = #{short_name.capitalize}::Project # The class to access the api's projects
135
+
136
+ # This is for cases when you want to instantiate using TaskMapper::Provider::#{short_name.capitalize}.new(auth)
137
+ def self.new(auth = {})
138
+ TaskMapper.new(:#{short_name}, auth)
139
+ end
140
+
141
+ # Providers must define an authorize method. This is used to initialize and set authentication
142
+ # parameters to access the API
143
+ def authorize(auth = {})
144
+ # Set authentication parameters for whatever you're using to access the API
145
+ @authentication ||= TaskMapper::Authenticator.new(auth)
146
+ end
147
+
148
+ # declare needed overloaded methods here
149
+ end
150
+ end
151
+ EOS
152
+ end
153
+ puts "Created #{provider_lib_path(provider_name)}/provider/#{short_name}.rb"
154
+ end
155
+
156
+ def create_project_file(provider_name, short_name)
157
+ File.open("#{provider_lib_path(provider_name)}/provider/project.rb", "w") do |file|
158
+ file.puts <<EOS
159
+ module TaskMapper::Provider
160
+ module #{short_name.capitalize}
161
+ # Project class for #{provider_name}
162
+
163
+ class Project < TaskMapper::Provider::Base::Project
164
+ #API = #{short_name.capitalize}::Project # The class to access the api's projects
165
+ # declare needed overloaded methods here
166
+ def copy(project)
167
+ project.tickets.each do |ticket|
168
+ copy_ticket = self.ticket!(:title => ticket.title, :description => ticket.description)
169
+ ticket.comments.each do |comment|
170
+ copy_ticket.comment!(:body => comment.body)
171
+ sleep 1
172
+ end
173
+ end
174
+ end
175
+ end
176
+ end
177
+ EOS
178
+ end
179
+ puts "Created #{provider_lib_path(provider_name)}/provider/project.rb"
180
+ end
181
+
182
+ def create_ticket_file(provider_name, short_name)
183
+ File.open("#{provider_lib_path(provider_name)}/provider/ticket.rb", "w") do |file|
184
+ file.puts <<EOS
185
+ module TaskMapper::Provider
186
+ module #{short_name.capitalize}
187
+ # Ticket class for #{provider_name}
188
+
189
+ class Ticket < TaskMapper::Provider::Base::Ticket
190
+ #API = #{short_name.capitalize}::Ticket # The class to access the api's
191
+ #tickets
192
+ #declare needed overloaded methods here
193
+
194
+ end
195
+ end
196
+ end
197
+ EOS
198
+ end
199
+ puts "Created #{provider_lib_path(provider_name)}/provider/ticket.rb"
200
+ end
201
+
202
+ def create_comment_file(provider_name, short_name)
203
+ File.open("#{provider_lib_path(provider_name)}/provider/comment.rb", "w") do |file|
204
+ file.puts <<EOS
205
+ module TaskMapper::Provider
206
+ module #{short_name.capitalize}
207
+ # The comment class for #{provider_name}
208
+ # Do any mapping between TaskMapper and your system's comment model here
209
+ # versions of the ticket.
210
+
211
+ class Comment < TaskMapper::Provider::Base::Comment
212
+ #API = #{short_name.capitalize}::Comment # the class to access the api's
213
+ #comment
214
+ end
215
+ end
216
+ end
217
+ EOS
218
+ end
219
+ puts "Created #{provider_lib_path(provider_name)}/provider/comment.rb"
220
+ end
221
+ end
222
+ end
223
+ end
224
+ end
@@ -0,0 +1,12 @@
1
+ module TM
2
+ module Commands
3
+ class LastProject < Command
4
+ def execute
5
+ project = @provider_handler.taskmapper.projects.last
6
+ @formmater.before(project)
7
+ @formatter.format(project)
8
+ @formatter.after
9
+ end
10
+ end
11
+ end
12
+ end
@@ -0,0 +1,13 @@
1
+ module TM
2
+ module Commands
3
+ class LastTask < Command
4
+ def execute(search_attrs = '')
5
+ project = @provider_handler.taskmapper.project(@attributes)
6
+ ticket = project.tickets.last
7
+ @formatter.before(ticket)
8
+ @formatter.format(ticket)
9
+ @formatter.after
10
+ end
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,16 @@
1
+ module TM
2
+ module Commands
3
+ class ListAllCommentsForTask < Command
4
+ def execute(search_attrs = '')
5
+ project = @provider_handler.taskmapper.project(@attributes)
6
+ ticket = project.tickets(search_attrs.extend(TM::StringExtensions).to_hash).first
7
+ comments = ticket.comments
8
+ @formatter.before(comments.first)
9
+ comments.each do |comment|
10
+ @formatter.format(comment)
11
+ end
12
+ @formatter.after
13
+ end
14
+ end
15
+ end
16
+ end
@@ -0,0 +1,14 @@
1
+ module TM
2
+ module Commands
3
+ class ListAllProjects < Command
4
+ def execute
5
+ projects = @provider_handler.taskmapper.projects
6
+ @formatter.before(projects.first)
7
+ projects.each do |project|
8
+ @formatter.format(project)
9
+ end
10
+ @formatter.after
11
+ end
12
+ end
13
+ end
14
+ end
@@ -0,0 +1,15 @@
1
+ module TM
2
+ module Commands
3
+ class ListAllTasks < Command
4
+ def execute(search_attrs = '')
5
+ project = @provider_handler.taskmapper.project(@attributes)
6
+ tickets = project.tickets
7
+ @formatter.before(tickets.first)
8
+ tickets.each do |ticket|
9
+ @formatter.format(ticket)
10
+ end
11
+ @formatter.after
12
+ end
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,12 @@
1
+ module TM
2
+ module Commands
3
+ class SingleProject < Command
4
+ def execute
5
+ project = @provider_handler.taskmapper.project(@attributes)
6
+ @formatter.before(project)
7
+ @formatter.format(project)
8
+ @formatter.after
9
+ end
10
+ end
11
+ end
12
+ end
@@ -0,0 +1,13 @@
1
+ module TM
2
+ module Commands
3
+ class SingleTask < Command
4
+ def execute(search_attrs = '')
5
+ project = @provider_handler.taskmapper.project(@attributes)
6
+ ticket = project.tickets(search_attrs.extend(TM::StringExtensions).to_hash).first
7
+ @formatter.before(ticket)
8
+ @formatter.format(ticket)
9
+ @formatter.after
10
+ end
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,4 @@
1
+ module TM
2
+ class Error < StandardError; end
3
+ class InvalidProvider < Error; end
4
+ end
@@ -0,0 +1,11 @@
1
+ module TM
2
+ module Format
3
+ class CSV
4
+ include Format
5
+
6
+ def format(entity)
7
+ puts "#{normalize_entity(entity).values.join(", ")}"
8
+ end
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,20 @@
1
+ module TM
2
+ module Format
3
+ PROJECT_KEYS = %w[id name description created_at updated_at]
4
+ TICKET_KEYS = %w[status priority title resolution assignee requestor project_id]
5
+ COMMENT_KEYS = %w[author body ticket_id]
6
+
7
+ def before(entity); end
8
+ def after; end
9
+
10
+ def normalize_entity(entity)
11
+ entity.keys.inject({}) do |hash, key|
12
+ if PROJECT_KEYS.include?(key) || TICKET_KEYS.include?(key) || COMMENT_KEYS.include?(key)
13
+ hash[key] = entity[key]
14
+ end
15
+ hash
16
+ end
17
+ end
18
+
19
+ end
20
+ end
@@ -0,0 +1,16 @@
1
+ require 'rainbow'
2
+
3
+ module TM
4
+ module Format
5
+ class Pretty
6
+ include Format
7
+
8
+ def format(entity)
9
+ normalize_entity(entity).each_pair do |title, value|
10
+ printf("%s: ", title.bright)
11
+ printf("%s\n", value.to_s.color(:green))
12
+ end
13
+ end
14
+ end
15
+ end
16
+ end
@@ -0,0 +1,22 @@
1
+ require 'terminal-table'
2
+
3
+ module TM
4
+ module Format
5
+ class Table
6
+ include Format
7
+
8
+ def before(entity = {})
9
+ @@table = Terminal::Table.new :headings => normalize_entity(entity).keys
10
+ @@table.align_column(0, :right)
11
+ end
12
+
13
+ def format(entity)
14
+ @@table << normalize_entity(entity).values
15
+ end
16
+
17
+ def after
18
+ puts @@table.to_s
19
+ end
20
+ end
21
+ end
22
+ end
@@ -0,0 +1,33 @@
1
+ require 'taskmapper'
2
+ require 'taskmapper-kanbanpad'
3
+ require 'taskmapper-github'
4
+ require 'taskmapper-basecamp'
5
+ require 'taskmapper-bugherd'
6
+ require 'taskmapper-bugzilla'
7
+ require 'taskmapper-fogbugz'
8
+ require 'taskmapper-github'
9
+ require 'taskmapper-kanbanpad'
10
+ require 'taskmapper-lighthouse'
11
+ require 'taskmapper-pivotal'
12
+ require 'taskmapper-rally'
13
+ require 'taskmapper-redmine'
14
+ require 'taskmapper-trac'
15
+ require 'taskmapper-unfuddle'
16
+ require 'taskmapper-zendesk'
17
+
18
+ module TM
19
+ class ProviderHandler
20
+ attr_reader :taskmapper
21
+
22
+ def initialize(taskmapper)
23
+ @taskmapper = taskmapper
24
+ end
25
+
26
+ def self.build_handler(provider, authentication)
27
+ self.new(TaskMapper.new(provider.to_sym,
28
+ authentication.extend(TM::StringExtensions).to_hash))
29
+ rescue NameError
30
+ raise TM::InvalidProvider, "Provider doesn't exists"
31
+ end
32
+ end
33
+ end
@@ -0,0 +1,12 @@
1
+ module TM
2
+ module StringExtensions
3
+ def to_hash
4
+ return '' if self.nil?
5
+ self.split(/,/).inject({}) do |hash, kv|
6
+ arg, val = kv.split(/:/)
7
+ hash[arg.to_sym] = val
8
+ hash
9
+ end
10
+ end
11
+ end
12
+ end
@@ -1,3 +1,3 @@
1
1
  module Tm
2
- VERSION = '0.0.4'
2
+ VERSION = '0.0.5'
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: taskmapper-cli
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.4
4
+ version: 0.0.5
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -16,17 +16,33 @@ dependencies:
16
16
  requirement: !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
- - - '='
19
+ - - ! '>='
20
20
  - !ruby/object:Gem::Version
21
- version: 1.0.1
21
+ version: '0'
22
22
  type: :runtime
23
23
  prerelease: false
24
24
  version_requirements: !ruby/object:Gem::Requirement
25
25
  none: false
26
26
  requirements:
27
- - - '='
27
+ - - ! '>='
28
+ - !ruby/object:Gem::Version
29
+ version: '0'
30
+ - !ruby/object:Gem::Dependency
31
+ name: taskmapper-basecamp
32
+ requirement: !ruby/object:Gem::Requirement
33
+ none: false
34
+ requirements:
35
+ - - ! '>='
36
+ - !ruby/object:Gem::Version
37
+ version: '0'
38
+ type: :runtime
39
+ prerelease: false
40
+ version_requirements: !ruby/object:Gem::Requirement
41
+ none: false
42
+ requirements:
43
+ - - ! '>='
28
44
  - !ruby/object:Gem::Version
29
- version: 1.0.1
45
+ version: '0'
30
46
  - !ruby/object:Gem::Dependency
31
47
  name: taskmapper-github
32
48
  requirement: !ruby/object:Gem::Requirement
@@ -203,6 +219,22 @@ dependencies:
203
219
  - - ! '>='
204
220
  - !ruby/object:Gem::Version
205
221
  version: '0'
222
+ - !ruby/object:Gem::Dependency
223
+ name: taskmapper-zendesk
224
+ requirement: !ruby/object:Gem::Requirement
225
+ none: false
226
+ requirements:
227
+ - - ! '>='
228
+ - !ruby/object:Gem::Version
229
+ version: '0'
230
+ type: :runtime
231
+ prerelease: false
232
+ version_requirements: !ruby/object:Gem::Requirement
233
+ none: false
234
+ requirements:
235
+ - - ! '>='
236
+ - !ruby/object:Gem::Version
237
+ version: '0'
206
238
  - !ruby/object:Gem::Dependency
207
239
  name: rainbow
208
240
  requirement: !ruby/object:Gem::Requirement
@@ -326,6 +358,26 @@ extra_rdoc_files:
326
358
  files:
327
359
  - bin/tm
328
360
  - lib/tm/version.rb
361
+ - lib/tm/string_extensions.rb
362
+ - lib/tm/exceptions.rb
363
+ - lib/tm/provider_handler.rb
364
+ - lib/tm/format/format.rb
365
+ - lib/tm/format/csv.rb
366
+ - lib/tm/format/pretty.rb
367
+ - lib/tm/format/table.rb
368
+ - lib/tm/commands/command.rb
369
+ - lib/tm/commands/create_comment.rb
370
+ - lib/tm/commands/create_task.rb
371
+ - lib/tm/commands/first_project.rb
372
+ - lib/tm/commands/first_task.rb
373
+ - lib/tm/commands/generate_provider.rb
374
+ - lib/tm/commands/last_project.rb
375
+ - lib/tm/commands/last_task.rb
376
+ - lib/tm/commands/list_all_comments_for_task.rb
377
+ - lib/tm/commands/list_all_projects.rb
378
+ - lib/tm/commands/list_all_tasks.rb
379
+ - lib/tm/commands/single_project.rb
380
+ - lib/tm/commands/single_task.rb
329
381
  - lib/tm.rb
330
382
  - README.rdoc
331
383
  - tm.rdoc
@@ -349,7 +401,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
349
401
  version: '0'
350
402
  segments:
351
403
  - 0
352
- hash: 1821152514098397477
404
+ hash: 2762427979354817147
353
405
  required_rubygems_version: !ruby/object:Gem::Requirement
354
406
  none: false
355
407
  requirements:
@@ -358,7 +410,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
358
410
  version: '0'
359
411
  segments:
360
412
  - 0
361
- hash: 1821152514098397477
413
+ hash: 2762427979354817147
362
414
  requirements: []
363
415
  rubyforge_project:
364
416
  rubygems_version: 1.8.25