genomer 0.0.8 → 0.0.9

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/.gitignore CHANGED
@@ -1,5 +1,6 @@
1
1
  tmp
2
2
  *.gem
3
+ *.html
3
4
 
4
5
  # rcov generated
5
6
  coverage
@@ -0,0 +1,9 @@
1
+ == 0.0.9 ==
2
+
3
+ * Genomer now has different behaviour dependent on whether inside or outside
4
+ a genomer project directory. These differences are as follows:
5
+ * The 'init' command cannot be called inside an existing genomer project.
6
+ * All other commands cannot be when not inside a genomer project.
7
+ * Genomer no long throws an error when not inside a genomer project
8
+ directory, since a Gemfile is no longer attempted to be loaded.
9
+ * Version number can be shown using --version flag
data/README.mkd CHANGED
@@ -1,4 +1,4 @@
1
- ![Genomer: A swiss army knife for genome projects](http://genomer.s3.amazonaws.com/icon/genomer.png)
1
+ ![Genomer: A swiss army knife for genome projects](http://genomer.s3.amazonaws.com/icon/genomer/genomer.png)
2
2
 
3
3
  ## About
4
4
 
@@ -33,6 +33,12 @@ reproducible.
33
33
  [plasmid]: https://github.com/michaelbarton/chromosome-pfluorescens-r124-plasmid
34
34
  [genome]: https://github.com/michaelbarton/chromosome-pfluorescens-r124-genome
35
35
 
36
+ ## Screencasts
37
+
38
+ * [Installing Genomer](http://www.youtube.com/watch?v=bXws8RnBsUU)
39
+ * [Genomer example usage](http://www.youtube.com/watch?v=HfsdJOELFjs)
40
+ * [Generating Genbank upload files for a simple plasmid](http://www.youtube.com/watch?v=jVn62pMnIRA)
41
+
36
42
  ## Installing
37
43
 
38
44
  Ruby and RubyGems are required to use genomer and related plugins. Genomer is
@@ -3,7 +3,29 @@ Feature: Listing available commands
3
3
  A user can use the help command
4
4
  To list the available options to the console
5
5
 
6
- Scenario: Running genomer with no commands
6
+ @disable-bundler
7
+ Scenario: Running genomer with no commands outside a project
8
+ When I run the genomer command with no arguments
9
+ Then the exit status should be 0
10
+ And the output should contain:
11
+ """
12
+ Use `genomer init NAME` to create a new genomer project called NAME
13
+
14
+ """
15
+
16
+ @disable-bundler
17
+ Scenario: Running genomer with the --version flag outside a project
18
+ When I run the genomer command with the arguments "--version"
19
+ Then the exit status should be 0
20
+ And the output should match:
21
+ """
22
+ Genomer version \d+.\d+.\d+
23
+ """
24
+
25
+ @disable-bundler
26
+ Scenario: Running genomer with no commands inside a project
27
+ Given I run the genomer command with the arguments "init project"
28
+ And I cd to "project"
7
29
  When I run the genomer command with no arguments
8
30
  Then the exit status should be 0
9
31
  And the output should contain:
@@ -13,7 +35,21 @@ Feature: Listing available commands
13
35
 
14
36
  """
15
37
 
16
- Scenario: Running genomer with the help command
38
+ @disable-bundler
39
+ Scenario: Running genomer with the --version flag inside a project
40
+ Given I run the genomer command with the arguments "init project"
41
+ And I cd to "project"
42
+ When I run the genomer command with the arguments "--version"
43
+ Then the exit status should be 0
44
+ And the output should match:
45
+ """
46
+ Genomer version \d+.\d+.\d+
47
+ """
48
+
49
+ @disable-bundler
50
+ Scenario: Running the genomer help command inside a genomer project
51
+ Given I run the genomer command with the arguments "init project"
52
+ And I cd to "project"
17
53
  When I run the genomer command with the arguments "help"
18
54
  Then the exit status should be 0
19
55
  And the output should contain:
@@ -57,23 +57,7 @@ Feature: Creating a new genomer project
57
57
 
58
58
  """
59
59
 
60
- @disable-bundler
61
- Scenario: Using the files generated in a new project
62
- Given I run the genomer command with the arguments "init project"
63
- And I cd to "project"
64
- And I overwrite "Gemfile" with:
65
- """
66
- gem 'genomer', :path => '../../../'
67
- gem 'genomer-plugin-simple', :path => '../../../genomer-plugin-simple'
68
- """
69
- When I run the genomer command with the arguments "simple describe"
70
- Then the exit status should be 0
71
- And the output should contain:
72
- """
73
- The scaffold contains 1 entries
74
- """
75
-
76
- Scenario: Creating a new project where the directory already exists
60
+ Scenario: Creating a new project when the directory already exists
77
61
  Given a directory named "project"
78
62
  When I run the genomer command with the arguments "init project"
79
63
  Then the exit status should be 1
@@ -81,3 +65,13 @@ Feature: Creating a new genomer project
81
65
  """
82
66
  Error. Directory 'project' already exists.
83
67
  """
68
+
69
+ Scenario: Creating a new project when already inside a genomer project
70
+ Given I run the genomer command with the arguments "init project"
71
+ And I cd to "project"
72
+ When I run the genomer command with the arguments "init another_project"
73
+ Then the exit status should be 1
74
+ And the stderr should contain:
75
+ """
76
+ Error. This directory contains a 'Gemfile' and already appears to be a genomer project.
77
+ """
@@ -8,8 +8,7 @@ Feature: Showing man pages for available commands
8
8
  Then the exit status should be 0
9
9
  And the output should contain:
10
10
  """
11
- genomer man COMMAND
12
- run `genomer help` for a list of available commands
11
+ Use `genomer init NAME` to create a new genomer project called NAME
13
12
 
14
13
  """
15
14
 
@@ -74,4 +73,8 @@ Feature: Showing man pages for available commands
74
73
  Scenario: Getting the man page for init
75
74
  When I run the genomer command with the arguments "man init"
76
75
  Then the exit status should be 0
77
- And the output should contain "GENOMER-INIT(1)"
76
+ And the output should contain:
77
+ """
78
+ Use `genomer init NAME` to create a new genomer project called NAME
79
+
80
+ """
@@ -2,12 +2,37 @@ require 'unindent'
2
2
  require 'tempfile'
3
3
  require 'md2man'
4
4
 
5
+ require 'genomer/version'
6
+
5
7
  class Genomer::Runtime
6
8
 
7
9
  attr :command
8
10
  attr :arguments
9
11
  attr :flags
10
12
 
13
+ MESSAGES = {
14
+ :error => {
15
+ :init_again =>
16
+ "This directory contains a 'Gemfile' and already appears to be a genomer project."
17
+ },
18
+ :output => {
19
+ :version => "Genomer version #{Genomer::VERSION}",
20
+ :not_project =>
21
+ "Use `genomer init NAME` to create a new genomer project called NAME",
22
+ :simple_help =>
23
+ "genomer COMMAND [options]\nrun `genomer help` for a list of available commands",
24
+ :man =>
25
+ "genomer man COMMAND\nrun `genomer help` for a list of available commands"
26
+ }
27
+ }
28
+
29
+
30
+ def message(type,msg)
31
+ content = MESSAGES[type][msg]
32
+ type == :error ? raise(Genomer::Error, content) : content
33
+ end
34
+
35
+
11
36
  def initialize(settings)
12
37
  @command = settings.rest.shift
13
38
  @arguments = settings.rest
@@ -15,23 +40,24 @@ class Genomer::Runtime
15
40
  end
16
41
 
17
42
  def execute!
18
- case command
19
- when nil then short_help
20
- when "help" then help
21
- when "init" then init
22
- when "man" then man
23
- else run_plugin
43
+ return message :output, :version if flags[:version]
44
+
45
+ if genomer_project?
46
+ case command
47
+ when nil then message :output, :simple_help
48
+ when "help" then help
49
+ when "init" then message :error, :init_again
50
+ when "man" then man
51
+ else run_plugin
52
+ end
53
+ else
54
+ case command
55
+ when "init" then init
56
+ else message :output, :not_project
57
+ end
24
58
  end
25
59
  end
26
60
 
27
- def short_help
28
- msg =<<-EOF
29
- genomer COMMAND [options]
30
- run `genomer help` for a list of available commands
31
- EOF
32
- msg.unindent
33
- end
34
-
35
61
  def help
36
62
  msg =<<-EOF
37
63
  genomer COMMAND [options]
@@ -42,11 +68,13 @@ class Genomer::Runtime
42
68
  EOF
43
69
  msg.unindent!
44
70
 
45
- msg << Genomer::Plugin.plugins.inject(String.new) do |str,p|
46
- str << ' '
47
- str << p.name.gsub("genomer-plugin-","").ljust(12)
48
- str << p.summary
49
- str << "\n"
71
+ if File.exists?('Gemfile')
72
+ msg << Genomer::Plugin.plugins.inject(String.new) do |str,p|
73
+ str << ' '
74
+ str << p.name.gsub("genomer-plugin-","").ljust(12)
75
+ str << p.summary
76
+ str << "\n"
77
+ end
50
78
  end
51
79
  msg.strip
52
80
  end
@@ -65,12 +93,7 @@ class Genomer::Runtime
65
93
 
66
94
  Kernel.exec "man #{groffed_man_file(location).path}"
67
95
  else
68
- msg =<<-EOF
69
- genomer man COMMAND
70
- run `genomer help` for a list of available commands
71
- EOF
72
- msg.unindent!
73
- msg.strip
96
+ message :output, :man
74
97
  end
75
98
  end
76
99
 
@@ -110,11 +133,14 @@ class Genomer::Runtime
110
133
  end
111
134
 
112
135
  "Genomer project '#{project_name}' created.\n"
113
-
114
136
  end
115
137
 
116
138
  def run_plugin
117
139
  Genomer::Plugin[command].new(arguments,flags).run
118
140
  end
119
141
 
142
+ def genomer_project?
143
+ File.exists?('Gemfile')
144
+ end
145
+
120
146
  end
@@ -1,3 +1,3 @@
1
1
  module Genomer
2
- VERSION = "0.0.8"
2
+ VERSION = "0.0.9"
3
3
  end
@@ -1,7 +1,6 @@
1
1
  require 'spec_helper'
2
2
 
3
3
  describe Genomer::Runtime do
4
- include FakeFS::SpecHelpers
5
4
 
6
5
  subject do
7
6
  Genomer::Runtime.new MockSettings.new arguments, flags
@@ -10,141 +9,62 @@ describe Genomer::Runtime do
10
9
  let(:flags){ {} }
11
10
  let(:arguments){ [] }
12
11
 
13
- describe "with the command" do
12
+ describe "run" do
14
13
 
15
- describe "none" do
14
+ context "inside a genomer project" do
16
15
 
17
- it "should print the short help description" do
18
- msg = <<-EOF
19
- genomer COMMAND [options]
20
- run `genomer help` for a list of available commands
21
- EOF
22
- subject.execute!.should == msg.unindent
16
+ before do
17
+ stub.instance_of(described_class).genomer_project?{ true }
23
18
  end
24
19
 
25
- end
20
+ describe "passed no arguments" do
26
21
 
27
- describe "unknown" do
28
-
29
- let(:arguments){ %w|unknown| }
30
-
31
- it "should print an error message" do
32
- error = <<-EOF
33
- Unknown command or plugin 'unknown.'
22
+ it "should print the short help description" do
23
+ msg = <<-EOF
24
+ genomer COMMAND [options]
34
25
  run `genomer help` for a list of available commands
35
- EOF
36
- lambda{ subject.execute! }.should raise_error(Genomer::Error,error.unindent)
37
- end
38
-
39
- end
40
-
41
- describe "init" do
42
-
43
- let(:arguments){ %w|init project_name| }
26
+ EOF
27
+ subject.execute!.should == msg.unindent.strip
28
+ end
44
29
 
45
- after do
46
- FileUtils.rm_rf('project_name') if File.exists?('project_name')
47
30
  end
48
31
 
49
- describe "with project name argument" do
32
+ describe "passed the --version flag" do
50
33
 
51
- before do
52
- @msg = subject.execute!
34
+ let(:flags) do
35
+ {:version => true}
53
36
  end
54
37
 
55
- it "should print message that project has been created" do
56
- @msg.should == "Genomer project 'project_name' created.\n"
38
+ it "should print the version information" do
39
+ msg = "Genomer version #{Genomer::VERSION}"
40
+ subject.execute!.should == msg.unindent
57
41
  end
58
42
 
59
- it "should create a directory from the named argument" do
60
- File.exists?('project_name').should be_true
61
- end
43
+ end
62
44
 
63
- it "should create an 'assembly' directory" do
64
- File.exists?(File.join('project_name','assembly')).should be_true
65
- end
45
+ describe "passed an unknown command" do
66
46
 
67
- it "should create a 'scaffold.yml' file" do
68
- file = File.join('project_name','assembly','scaffold.yml')
69
- File.exists?(file).should be_true
70
- File.read(file).should == <<-EOF.unindent
71
- # Specify your genome scaffold in YAML format here. Reference nucleotide
72
- # sequences in the 'sequences.fna' file using the first space delimited
73
- # word of each fasta header.
74
- #
75
- # Go to http://next.gs/getting-started/ to start writing genome scaffold
76
- # files.
77
- #
78
- # A simple one contig example is also provided below. Delete this as you
79
- # start writing your own scaffold.
80
- ---
81
- -
82
- sequence:
83
- source: "contig1"
84
- EOF
85
- end
47
+ let(:arguments){ %w|unknown| }
86
48
 
87
- it "should create a 'sequence.fna' file" do
88
- file = File.join('project_name','assembly','sequence.fna')
89
- File.exists?(file).should be_true
90
- File.read(file).should == <<-EOF.unindent
91
- ; Add your assembled contigs and scaffolds sequences to this file.
92
- ; These sequences can be referenced in the 'scaffold.yml' file
93
- ; using the first space delimited word in each fasta header.
94
- > contig1
95
- ATGC
96
- EOF
97
- end
98
-
99
- it "should create a 'annotations.gff' file" do
100
- file = File.join('project_name','assembly','annotations.gff')
101
-
102
- File.exists?(file).should be_true
103
- File.read(file).should == <<-EOF.unindent
104
- ##gff-version 3
105
- ## Add your gff3 formatted annotations to this file
49
+ it "should print an error message" do
50
+ error = <<-EOF
51
+ Unknown command or plugin 'unknown.'
52
+ run `genomer help` for a list of available commands
106
53
  EOF
54
+ lambda{ subject.execute! }.should raise_error(Genomer::Error,error.unindent)
107
55
  end
108
56
 
109
- it "should create a 'Gemfile' file" do
110
- file = File.join('project_name','Gemfile')
111
- version = Genomer::VERSION.split('.')[0..1] << '0'
112
-
113
-
114
- File.exists?(file).should be_true
115
- File.read(file).should == <<-EOF.unindent
116
- source :rubygems
117
-
118
- gem 'genomer', '~> #{version.join('.')}'
119
- EOF
120
- end
121
57
  end
122
58
 
123
- describe "when project already exists" do
59
+ describe "passed help command with no available plugins" do
124
60
 
125
- before do
126
- Dir.mkdir('project_name')
127
- end
61
+ let(:arguments){ %w|help| }
128
62
 
129
- it "should raise an error" do
130
- lambda{ subject.execute! }.should raise_error(Genomer::Error,
131
- "Directory 'project_name' already exists.")
63
+ before do
64
+ mock(Genomer::Plugin).plugins{ gems }
65
+ mock(File).exists?('Gemfile'){ true }
132
66
  end
133
67
 
134
- end
135
-
136
- end
137
-
138
- describe "help" do
139
-
140
- before do
141
- mock(Genomer::Plugin).plugins{ gems }
142
- end
143
-
144
- let(:arguments){ %w|help| }
145
-
146
- describe "with no available plugins" do
147
-
148
68
  let(:gems) do
149
69
  []
150
70
  end
@@ -165,9 +85,16 @@ describe Genomer::Runtime do
165
85
  it "should show the man command" do
166
86
  subject.execute!.should include "man View man page for the specified plugin"
167
87
  end
168
- end
88
+ end
89
+
90
+ describe "passed help command with one available plugin" do
91
+
92
+ let(:arguments){ %w|help| }
169
93
 
170
- describe "with available genomer plugins" do
94
+ before do
95
+ mock(Genomer::Plugin).plugins{ gems }
96
+ mock(File).exists?('Gemfile'){ true }
97
+ end
171
98
 
172
99
  let(:gems) do
173
100
  [Gem::Specification.new do |s|
@@ -182,15 +109,7 @@ describe Genomer::Runtime do
182
109
 
183
110
  end
184
111
 
185
- end
186
-
187
- describe "man" do
188
-
189
- before do
190
- stub(Genomer::Plugin).plugins{ gems }
191
- end
192
-
193
- describe "and no command specified" do
112
+ describe "passed the man command with no arguments" do
194
113
 
195
114
  let(:arguments){ %w|man| }
196
115
 
@@ -202,9 +121,9 @@ describe Genomer::Runtime do
202
121
  subject.execute!.should include msg.unindent.strip
203
122
  end
204
123
 
205
- end
124
+ end
206
125
 
207
- describe "and a command specified" do
126
+ describe "passed the man command with an argument" do
208
127
 
209
128
  let(:arguments){ %w|man simple| }
210
129
  let(:man_file){ 'a' }
@@ -223,7 +142,7 @@ describe Genomer::Runtime do
223
142
 
224
143
  end
225
144
 
226
- describe "and the init command specified" do
145
+ describe "passed the man command with the argument 'init'" do
227
146
 
228
147
  let(:arguments){ %w|man init| }
229
148
  let(:man_file){ File.expand_path File.dirname(__FILE__) + '/../../man/genomer-init.1.ronn' }
@@ -242,7 +161,7 @@ describe Genomer::Runtime do
242
161
 
243
162
  end
244
163
 
245
- describe "with a subcommand specified" do
164
+ describe "passed the man command for a plugin" do
246
165
 
247
166
  let(:arguments){ %w|man simple subcommand| }
248
167
  let(:man_file){ 'a' }
@@ -261,23 +180,145 @@ describe Genomer::Runtime do
261
180
 
262
181
  end
263
182
 
264
- describe "with an unknown subcommand specified" do
183
+ describe "passed the man command with an unknown plugin argument" do
265
184
 
266
- let(:arguments){ %w|man simple subcommand| }
267
- let(:man_file){ 'a' }
185
+ let(:arguments){ %w|man simple subcommand| }
186
+ let(:man_file){ 'a' }
187
+
188
+ before do
189
+ mock(subject).man_file(['simple','subcommand']){ man_file }
190
+ mock(File).exists?(man_file){false}
191
+ end
192
+
193
+ it "should raise a genomer error" do
194
+ lambda{ subject.execute! }.
195
+ should raise_error(Genomer::Error,"No manual entry for command 'simple subcommand'")
196
+ end
197
+
198
+ end
199
+
200
+ describe "passed the init command" do
201
+
202
+ after do
203
+ FileUtils.rm_rf('project_name') if File.exists?('project_name')
204
+ end
205
+
206
+ let(:arguments){ %w|init project_name| }
207
+
208
+ it "should raise a genomer error" do
209
+ lambda{ subject.execute! }.
210
+ should raise_error(Genomer::Error,"This directory contains a 'Gemfile' and already appears to be a genomer project.")
211
+ end
212
+
213
+ end
214
+ end
215
+
216
+ context "outside a genomer project" do
217
+
218
+ before do
219
+ stub.instance_of(described_class).genomer_project?{ false }
220
+ end
221
+
222
+ describe "passed no arguments" do
223
+
224
+ it "should print the short help description" do
225
+ msg = <<-EOF
226
+ Use `genomer init NAME` to create a new genomer project called NAME
227
+ EOF
228
+ subject.execute!.should == msg.unindent.strip
229
+ end
230
+
231
+ end
232
+
233
+ describe "passed the init command with a project name argument" do
234
+
235
+ let(:arguments){ %w|init project_name| }
236
+
237
+ after do
238
+ FileUtils.rm_rf('project_name') if File.exists?('project_name')
239
+ end
268
240
 
269
241
  before do
270
- mock(subject).man_file(['simple','subcommand']){ man_file }
271
- mock(File).exists?(man_file){false}
242
+ @msg = subject.execute!
272
243
  end
273
244
 
274
- it "should call man for the groffed path" do
275
- lambda{ subject.execute! }.
276
- should raise_error(Genomer::Error,"No manual entry for command 'simple subcommand'")
245
+ it "should print message that project has been created" do
246
+ @msg.should == "Genomer project 'project_name' created.\n"
277
247
  end
278
248
 
249
+ it "should create the expected directories" do
250
+ File.exists?('project_name').should be_true
251
+ File.exists?(File.join('project_name','assembly')).should be_true
252
+ end
253
+
254
+ it "should create a 'scaffold.yml' file" do
255
+ file = File.join('project_name','assembly','scaffold.yml')
256
+ File.exists?(file).should be_true
257
+ File.read(file).should == <<-EOF.unindent
258
+ # Specify your genome scaffold in YAML format here. Reference nucleotide
259
+ # sequences in the 'sequences.fna' file using the first space delimited
260
+ # word of each fasta header.
261
+ #
262
+ # Go to http://next.gs/getting-started/ to start writing genome scaffold
263
+ # files.
264
+ #
265
+ # A simple one contig example is also provided below. Delete this as you
266
+ # start writing your own scaffold.
267
+ ---
268
+ -
269
+ sequence:
270
+ source: "contig1"
271
+ EOF
272
+ end
273
+
274
+ it "should create a 'sequence.fna' file" do
275
+ file = File.join('project_name','assembly','sequence.fna')
276
+ File.exists?(file).should be_true
277
+ File.read(file).should == <<-EOF.unindent
278
+ ; Add your assembled contigs and scaffolds sequences to this file.
279
+ ; These sequences can be referenced in the 'scaffold.yml' file
280
+ ; using the first space delimited word in each fasta header.
281
+ > contig1
282
+ ATGC
283
+ EOF
284
+ end
285
+
286
+ it "should create a 'annotations.gff' file" do
287
+ file = File.join('project_name','assembly','annotations.gff')
288
+
289
+ File.exists?(file).should be_true
290
+ File.read(file).should == <<-EOF.unindent
291
+ ##gff-version 3
292
+ ## Add your gff3 formatted annotations to this file
293
+ EOF
294
+ end
295
+
296
+ it "should create a 'Gemfile' file" do
297
+ file = File.join('project_name','Gemfile')
298
+ version = Genomer::VERSION.split('.')[0..1] << '0'
299
+
300
+
301
+ File.exists?(file).should be_true
302
+ File.read(file).should == <<-EOF.unindent
303
+ source :rubygems
304
+
305
+ gem 'genomer', '~> #{version.join('.')}'
306
+ EOF
307
+ end
279
308
  end
280
309
 
310
+ describe "passed the --version flag" do
311
+
312
+ let(:flags) do
313
+ {:version => true}
314
+ end
315
+
316
+ it "should print the version information" do
317
+ msg = "Genomer version #{Genomer::VERSION}"
318
+ subject.execute!.should == msg.unindent
319
+ end
320
+
321
+ end
281
322
  end
282
323
 
283
324
  end
@@ -5,6 +5,7 @@ require 'fakefs/spec_helpers'
5
5
  require 'scaffolder/test/helpers'
6
6
 
7
7
  require 'genomer'
8
+ require 'genomer/version'
8
9
 
9
10
  # Requires supporting files with custom matchers and macros, etc,
10
11
  # in ./support/ and its subdirectories.
@@ -22,17 +23,13 @@ RSpec.configure do |config|
22
23
 
23
24
  attr :rest
24
25
 
25
- def initialize(rest = [], command_args = {})
26
+ def initialize(rest = [], args = {})
26
27
  @rest = rest
27
- @args = command_args
28
+ @args = args
28
29
  end
29
30
 
30
- def [](arg)
31
- @args[arg]
32
- end
33
-
34
- def flags
35
- @args
31
+ def method_missing(method, *args, &block)
32
+ @args.send(method, *args, &block)
36
33
  end
37
34
 
38
35
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: genomer
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.8
4
+ version: 0.0.9
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-01-17 00:00:00.000000000 Z
12
+ date: 2013-02-11 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rake
@@ -230,6 +230,7 @@ files:
230
230
  - .document
231
231
  - .gitignore
232
232
  - .travis.yml
233
+ - CHANGELOG.mkd
233
234
  - Gemfile
234
235
  - LICENSE.txt
235
236
  - README.mkd
@@ -274,7 +275,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
274
275
  version: '0'
275
276
  segments:
276
277
  - 0
277
- hash: -1310621877616390557
278
+ hash: -2610476547918174305
278
279
  required_rubygems_version: !ruby/object:Gem::Requirement
279
280
  none: false
280
281
  requirements: