ki 0.4.11 → 0.4.12

Sign up to get free protection for your applications and to get access to all the features.
Files changed (82) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +1 -0
  3. data/.rubocop.yml +9 -0
  4. data/.ruby-gemset +1 -1
  5. data/.ruby-version +1 -1
  6. data/.travis.yml +10 -2
  7. data/Gemfile +2 -0
  8. data/Gemfile.lock +95 -85
  9. data/Guardfile +20 -14
  10. data/MIDDLEWARE.md +2 -2
  11. data/README.md +29 -1
  12. data/Rakefile +3 -1
  13. data/bin/ki +1 -0
  14. data/ki.gemspec +15 -14
  15. data/lib/ki.rb +8 -1
  16. data/lib/ki/base_request.rb +7 -5
  17. data/lib/ki/channel_manager.rb +2 -0
  18. data/lib/ki/helpers.rb +4 -5
  19. data/lib/ki/ki.rb +11 -2
  20. data/lib/ki/ki_app.rb +2 -0
  21. data/lib/ki/ki_cli.rb +9 -2
  22. data/lib/ki/ki_config.rb +5 -2
  23. data/lib/ki/ki_logger.rb +15 -0
  24. data/lib/ki/middleware/admin_interface_generator.rb +3 -1
  25. data/lib/ki/middleware/api_handler.rb +3 -1
  26. data/lib/ki/middleware/base_middleware.rb +2 -0
  27. data/lib/ki/middleware/coffee_compiler.rb +2 -0
  28. data/lib/ki/middleware/haml_compiler.rb +2 -0
  29. data/lib/ki/middleware/helpers/format_of_helper.rb +3 -1
  30. data/lib/ki/middleware/helpers/haml_compiler_helper.rb +7 -5
  31. data/lib/ki/middleware/helpers/public_file_helper.rb +2 -0
  32. data/lib/ki/middleware/helpers/redirect_to_helper.rb +2 -0
  33. data/lib/ki/middleware/helpers/view_helper.rb +2 -0
  34. data/lib/ki/middleware/init_middleware.rb +2 -0
  35. data/lib/ki/middleware/{doc_generator.rb → insta_doc.rb} +8 -6
  36. data/lib/ki/middleware/public_file_server.rb +2 -0
  37. data/lib/ki/middleware/realtime.rb +3 -1
  38. data/lib/ki/middleware/sass_compiler.rb +2 -0
  39. data/lib/ki/model.rb +8 -7
  40. data/lib/ki/modules/callbacks.rb +12 -20
  41. data/lib/ki/modules/model_helper.rb +2 -0
  42. data/lib/ki/modules/query_interface.rb +2 -0
  43. data/lib/ki/modules/restrictions.rb +5 -2
  44. data/lib/ki/orm.rb +20 -13
  45. data/lib/ki/utils/annotations.rb +33 -0
  46. data/lib/ki/utils/api_error.rb +14 -4
  47. data/lib/ki/utils/descendants.rb +9 -0
  48. data/lib/ki/utils/extra_irb.rb +3 -1
  49. data/lib/ki/utils/extra_ruby.rb +12 -0
  50. data/lib/ki/utils/indifferent_hash.rb +2 -0
  51. data/lib/ki/utils/logger.rb +5 -0
  52. data/lib/ki/version.rb +3 -1
  53. data/lib/ki/views/instadoc.haml +49 -9
  54. data/spec/config.yml.example +1 -1
  55. data/spec/examples/base/client.rb +20 -0
  56. data/spec/examples/base/logs/.keep +0 -0
  57. data/spec/examples/base/public/javascripts/app.js +12 -0
  58. data/spec/examples/json.northpole.ro/.ruby-version +1 -1
  59. data/spec/examples/json.northpole.ro/public/javascripts/app.coffee +1 -0
  60. data/spec/functional_spec.rb +2 -0
  61. data/spec/lib/ki/base_request_spec.rb +25 -23
  62. data/spec/lib/ki/channel_manager_spec.rb +2 -0
  63. data/spec/lib/ki/helpers_spec.rb +4 -2
  64. data/spec/lib/ki/indifferent_hash_spec.rb +2 -0
  65. data/spec/lib/ki/ki_app_spec.rb +2 -0
  66. data/spec/lib/ki/ki_config_spec.rb +5 -3
  67. data/spec/lib/ki/ki_spec.rb +2 -0
  68. data/spec/lib/ki/middleware/admin_generator_spec.rb +2 -0
  69. data/spec/lib/ki/middleware/haml_compiler_spec.rb +6 -3
  70. data/spec/lib/ki/middleware/helpers/format_of_helper_spec.rb +4 -2
  71. data/spec/lib/ki/middleware/init_middleware_spec.rb +3 -1
  72. data/spec/lib/ki/middleware/{doc_generator_spec.rb → insta_doc_spec.rb} +3 -1
  73. data/spec/lib/ki/middleware/realtime_spec.rb +12 -6
  74. data/spec/lib/ki/middleware_spec.rb +3 -1
  75. data/spec/lib/ki/model_spec.rb +26 -22
  76. data/spec/lib/ki/modules/model_helper_spec.rb +5 -3
  77. data/spec/lib/ki/modules/restrictions_spec.rb +16 -0
  78. data/spec/lib/ki/orm_spec.rb +18 -15
  79. data/spec/lib/ki/utils/api_error_spec.rb +9 -0
  80. data/spec/spec_helper.rb +13 -7
  81. data/spec/util_spec.rb +3 -1
  82. metadata +44 -30
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 027faaedcab27f0fd3f3d65e878da0dfd98e74da
4
- data.tar.gz: bc9e0f3ec9dd2c17fa4b238b829bd50afcdce5f3
3
+ metadata.gz: 35f976a6f383442703ea03ac1404d94c82700ded
4
+ data.tar.gz: b3ac5a018c3922d4487578f8146ec789f4fc7195
5
5
  SHA512:
6
- metadata.gz: aa073bd56faec752bea84241acd3602b85c010628d10f393c006d96337ed9952d064af70991b69b6a40108df3794433ed9ecc8ac6f469eb7c6682b0b5e6d538c
7
- data.tar.gz: 97eebe5a6b2e5b0e03d029e44dbe8bcdeacb9f16a7d721dd2644ff74be97fa67ab81dac38f19c3e9f057d442e6d57ca531281c136294d7744c394896fc243aed
6
+ metadata.gz: b0964d164dec6c2f62ee0f630c8c5c94e2df7a0755e68d68050ac2b48fc671ff15e2cb278a64fb24e24495354ec6fb632003da97f0f7c527684ef8f1825cd483
7
+ data.tar.gz: 667ecc89434a469d3b89709a720b4505ae38a61558fd8fe59525ae277a5ff1a45e2cd9f0eff48e2c138d7aa4f1cc6f646a0bd3f0ee711b8336f8d18466a710bc
data/.gitignore CHANGED
@@ -12,3 +12,4 @@ spec/examples/*/log
12
12
  spec/examples/*/Gemfile.lock
13
13
 
14
14
  /doc/*
15
+ coverage/
@@ -22,3 +22,12 @@ Metrics/AbcSize:
22
22
 
23
23
  Lint/UnusedMethodArgument:
24
24
  Enabled: false
25
+
26
+ Metrics/BlockLength:
27
+ Enabled: false
28
+
29
+ Style/ClassAndModuleChildren:
30
+ Enabled: false
31
+
32
+ Style/MethodMissing:
33
+ Enabled: false
@@ -1 +1 @@
1
- ki
1
+ ki2
@@ -1 +1 @@
1
- 2.1.0
1
+ 2.4.3
@@ -1,6 +1,14 @@
1
1
  language: ruby
2
2
  rvm:
3
- - 1.9.3
4
- - 2.1.0
3
+ - 2.1
4
+ - 2.4.3
5
5
  services:
6
6
  - mongodb
7
+ before_script:
8
+ - curl -L https://codeclimate.com/downloads/test-reporter/test-reporter-latest-linux-amd64 > ./cc-test-reporter
9
+ - chmod +x ./cc-test-reporter
10
+ - ./cc-test-reporter before-build
11
+ script:
12
+ - bundle exec rspec
13
+ after_script:
14
+ - ./cc-test-reporter after-build --exit-code $TRAVIS_TEST_RESULT
data/Gemfile CHANGED
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  source 'https://rubygems.org'
2
4
 
3
5
  gemspec
@@ -1,13 +1,13 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- ki (0.4.11)
4
+ ki (0.4.12)
5
5
  bson_ext
6
- bundler (~> 1.5)
6
+ bundler
7
7
  coffee-script
8
8
  faye-websocket
9
9
  haml
10
- mongo (= 1.9.2)
10
+ mongo
11
11
  rack
12
12
  rack-cors
13
13
  rack-parser
@@ -17,116 +17,126 @@ PATH
17
17
  GEM
18
18
  remote: https://rubygems.org/
19
19
  specs:
20
- ast (2.0.0)
21
- astrolabe (1.3.0)
22
- parser (>= 2.2.0.pre.3, < 3.0)
23
- bson (1.9.2)
24
- bson_ext (1.9.2)
25
- bson (~> 1.9.2)
26
- celluloid (0.15.2)
27
- timers (~> 1.1.0)
28
- celluloid-io (0.15.0)
29
- celluloid (>= 0.15.0)
30
- nio4r (>= 0.5.0)
31
- codeclimate-test-reporter (0.4.7)
32
- simplecov (>= 0.7.1, < 1.0.0)
33
- coderay (1.1.0)
20
+ ast (2.4.0)
21
+ bson (4.3.0)
22
+ bson_ext (1.5.1)
23
+ coderay (1.1.2)
34
24
  coffee-script (2.4.1)
35
25
  coffee-script-source
36
26
  execjs
37
- coffee-script-source (1.10.0)
38
- diff-lcs (1.2.5)
27
+ coffee-script-source (1.12.2)
28
+ diff-lcs (1.3)
39
29
  docile (1.1.5)
40
- eventmachine (1.2.0.1)
41
- execjs (2.6.0)
42
- faye-websocket (0.10.3)
30
+ eventmachine (1.2.5)
31
+ execjs (2.7.0)
32
+ faye-websocket (0.10.7)
43
33
  eventmachine (>= 0.12.0)
44
34
  websocket-driver (>= 0.5.1)
45
- ffi (1.9.3)
46
- formatador (0.2.4)
47
- guard (2.5.1)
35
+ ffi (1.9.23)
36
+ formatador (0.2.5)
37
+ guard (2.14.2)
48
38
  formatador (>= 0.2.4)
49
- listen (~> 2.6)
50
- lumberjack (~> 1.0)
39
+ listen (>= 2.7, < 4.0)
40
+ lumberjack (>= 1.0.12, < 2.0)
41
+ nenv (~> 0.1)
42
+ notiffany (~> 0.0)
51
43
  pry (>= 0.9.12)
44
+ shellany (~> 0.0)
52
45
  thor (>= 0.18.1)
53
- guard-rspec (4.2.8)
46
+ guard-compat (1.2.1)
47
+ guard-rspec (4.7.3)
54
48
  guard (~> 2.1)
55
- rspec (>= 2.14, < 4.0)
56
- guard-rubocop (1.2.0)
49
+ guard-compat (~> 1.1)
50
+ rspec (>= 2.99.0, < 4.0)
51
+ guard-rubocop (1.3.0)
57
52
  guard (~> 2.0)
58
53
  rubocop (~> 0.20)
59
- haml (4.0.7)
54
+ haml (5.0.4)
55
+ temple (>= 0.8.0)
60
56
  tilt
61
- listen (2.7.1)
62
- celluloid (>= 0.15.2)
63
- celluloid-io (>= 0.15.0)
64
- rb-fsevent (>= 0.9.3)
65
- rb-inotify (>= 0.9)
66
- lumberjack (1.0.5)
67
- method_source (0.8.2)
68
- mongo (1.9.2)
69
- bson (~> 1.9.2)
70
- multi_json (1.11.0)
71
- nio4r (1.0.0)
72
- parser (2.2.2.1)
73
- ast (>= 1.1, < 3.0)
74
- powerpack (0.1.0)
75
- pry (0.9.12.6)
76
- coderay (~> 1.0)
77
- method_source (~> 0.8)
78
- slop (~> 3.4)
79
- rack (1.5.2)
80
- rack-cors (0.4.0)
57
+ json (2.1.0)
58
+ listen (3.1.5)
59
+ rb-fsevent (~> 0.9, >= 0.9.4)
60
+ rb-inotify (~> 0.9, >= 0.9.7)
61
+ ruby_dep (~> 1.2)
62
+ lumberjack (1.0.12)
63
+ method_source (0.9.0)
64
+ mongo (2.5.1)
65
+ bson (>= 4.3.0, < 5.0.0)
66
+ nenv (0.3.0)
67
+ notiffany (0.1.1)
68
+ nenv (~> 0.1)
69
+ shellany (~> 0.0)
70
+ parallel (1.12.1)
71
+ parser (2.5.0.2)
72
+ ast (~> 2.4.0)
73
+ powerpack (0.1.1)
74
+ pry (0.11.3)
75
+ coderay (~> 1.1.0)
76
+ method_source (~> 0.9.0)
77
+ rack (2.0.4)
78
+ rack-cors (1.0.2)
81
79
  rack-parser (0.7.0)
82
80
  rack
83
- rack-test (0.6.2)
84
- rack (>= 1.0)
85
- rainbow (2.0.0)
86
- rake (10.1.1)
87
- rb-fsevent (0.9.4)
88
- rb-inotify (0.9.3)
89
- ffi (>= 0.5.0)
90
- rspec (2.14.1)
91
- rspec-core (~> 2.14.0)
92
- rspec-expectations (~> 2.14.0)
93
- rspec-mocks (~> 2.14.0)
94
- rspec-core (2.14.8)
95
- rspec-expectations (2.14.5)
96
- diff-lcs (>= 1.1.3, < 2.0)
97
- rspec-mocks (2.14.6)
98
- rubocop (0.30.1)
99
- astrolabe (~> 1.3)
100
- parser (>= 2.2.2.1, < 3.0)
81
+ rack-test (0.8.3)
82
+ rack (>= 1.0, < 3)
83
+ rainbow (3.0.0)
84
+ rake (12.3.0)
85
+ rb-fsevent (0.10.3)
86
+ rb-inotify (0.9.10)
87
+ ffi (>= 0.5.0, < 2)
88
+ rspec (3.7.0)
89
+ rspec-core (~> 3.7.0)
90
+ rspec-expectations (~> 3.7.0)
91
+ rspec-mocks (~> 3.7.0)
92
+ rspec-core (3.7.1)
93
+ rspec-support (~> 3.7.0)
94
+ rspec-expectations (3.7.0)
95
+ diff-lcs (>= 1.2.0, < 2.0)
96
+ rspec-support (~> 3.7.0)
97
+ rspec-mocks (3.7.0)
98
+ diff-lcs (>= 1.2.0, < 2.0)
99
+ rspec-support (~> 3.7.0)
100
+ rspec-support (3.7.1)
101
+ rubocop (0.52.1)
102
+ parallel (~> 1.10)
103
+ parser (>= 2.4.0.2, < 3.0)
101
104
  powerpack (~> 0.1)
102
- rainbow (>= 1.99.1, < 3.0)
103
- ruby-progressbar (~> 1.4)
104
- ruby-progressbar (1.7.5)
105
- sass (3.4.22)
106
- simplecov (0.9.2)
105
+ rainbow (>= 2.2.2, < 4.0)
106
+ ruby-progressbar (~> 1.7)
107
+ unicode-display_width (~> 1.0, >= 1.0.1)
108
+ ruby-progressbar (1.9.0)
109
+ ruby_dep (1.5.0)
110
+ sass (3.5.5)
111
+ sass-listen (~> 4.0.0)
112
+ sass-listen (4.0.0)
113
+ rb-fsevent (~> 0.9, >= 0.9.4)
114
+ rb-inotify (~> 0.9, >= 0.9.7)
115
+ shellany (0.0.1)
116
+ simplecov (0.13.0)
107
117
  docile (~> 1.1.0)
108
- multi_json (~> 1.0)
109
- simplecov-html (~> 0.9.0)
110
- simplecov-html (0.9.0)
111
- slop (3.5.0)
112
- thor (0.18.1)
113
- tilt (2.0.2)
114
- timers (1.1.0)
115
- websocket-driver (0.6.3)
118
+ json (>= 1.8, < 3)
119
+ simplecov-html (~> 0.10.0)
120
+ simplecov-html (0.10.2)
121
+ temple (0.8.0)
122
+ thor (0.20.0)
123
+ tilt (2.0.8)
124
+ unicode-display_width (1.3.0)
125
+ websocket-driver (0.7.0)
116
126
  websocket-extensions (>= 0.1.0)
117
- websocket-extensions (0.1.2)
127
+ websocket-extensions (0.1.3)
118
128
 
119
129
  PLATFORMS
120
130
  ruby
121
131
 
122
132
  DEPENDENCIES
123
- codeclimate-test-reporter
124
133
  guard-rspec
125
134
  guard-rubocop
126
135
  ki!
127
136
  rack-test
128
137
  rake
129
138
  rspec
139
+ simplecov
130
140
 
131
141
  BUNDLED WITH
132
- 1.10.6
142
+ 1.16.1
data/Guardfile CHANGED
@@ -1,15 +1,21 @@
1
- # A sample Guardfile
2
- # More info at https://github.com/guard/guard#readme
3
-
4
- group :red_green_refactor, halt_on_fail: true do
5
- guard :rspec do
6
- watch(%r{^spec/.+_spec\.rb$})
7
- watch(%r{^lib/(.+)\.rb$}) { |m| "spec/lib/#{m[1]}_spec.rb" }
8
- watch('spec/spec_helper.rb') { 'spec' }
9
- end
10
-
11
- guard :rubocop, cli: ['--config=.rubocop.yml', '--display-cop-names'] do
12
- watch(/.+\.rb$/)
13
- watch(%r{(?:.+/)?\.rubocop\.yml$}) { |m| File.dirname(m[0]) }
14
- end
1
+ # frozen_string_literal: true
2
+
3
+ guard :rspec, cmd: 'bundle exec rspec' do
4
+ require 'guard/rspec/dsl'
5
+ dsl = Guard::RSpec::Dsl.new(self)
6
+
7
+ # RSpec files
8
+ rspec = dsl.rspec
9
+ watch(rspec.spec_helper) { rspec.spec_dir }
10
+ watch(rspec.spec_support) { rspec.spec_dir }
11
+ watch(rspec.spec_files)
12
+
13
+ # Ruby files
14
+ ruby = dsl.ruby
15
+ dsl.watch_spec_files_for(ruby.lib_files)
16
+ end
17
+
18
+ guard :rubocop do
19
+ watch(/%r{.+\.rb$}/)
20
+ watch(%r{(?:.+/)?\.rubocop(?:_todo)?\.yml$}) { |m| File.dirname(m[0]) }
15
21
  end
@@ -46,7 +46,7 @@ development:
46
46
  name: base_development
47
47
  host: 127.0.0.1
48
48
  port: 27017
49
- add_middleware: ['Realtime', 'DocGenerator', 'AdminInterfaceGenerator']
49
+ add_middleware: ['Realtime', 'InstaDoc', 'AdminInterfaceGenerator']
50
50
  rm_middleware: ['SassCompiler']
51
51
 
52
52
  test:
@@ -57,7 +57,7 @@ test:
57
57
 
58
58
  production:
59
59
  middleware: ['ApiHandler', 'PublicFileServer']
60
- add_middleware: ['Realtime', 'DocGenerator', 'AdminInterfaceGenerator']
60
+ add_middleware: ['Realtime', 'InstaDoc', 'AdminInterfaceGenerator']
61
61
  database:
62
62
  name: np
63
63
  host: 127.0.0.1
data/README.md CHANGED
@@ -35,6 +35,7 @@ and provides a fullblown REST api on top.
35
35
  - [Before/after callbacks](#beforeafter-callbacks)
36
36
  - [Accessing the json object within the callback](#accessing-the-json-object-within-the-callback)
37
37
  - [Exceptions](#exceptions)
38
+ - [Logging](#logging)
38
39
  - [Magic](#magic)
39
40
  - [Deploy](#deploy)
40
41
  - [Heroku deployment](#heroku-deployment)
@@ -382,6 +383,19 @@ class Todo < Ki::Model
382
383
  end
383
384
  ```
384
385
 
386
+ ### Logging
387
+
388
+ By default, logs are written in the `logs` folder and are rotated weekly if and
389
+ only if the `logs` folder exists.
390
+
391
+ To add something to the log you can:
392
+
393
+ ```
394
+ Ki::KiLogger.instance.logger.info 'for your info'
395
+ Ki::KiLogger.instance.logger.warn 'warning'
396
+ Ki::KiLogger.instance.logger.error 'ops'
397
+ ```
398
+
385
399
  ### Magic
386
400
 
387
401
  #### redirect_to param
@@ -422,9 +436,23 @@ Yes.
422
436
 
423
437
  ## Documentation
424
438
 
425
- Ki offers instant documentation. Add the middleware 'DocGenerator' and access
439
+ Ki offers instant documentation. Add the middleware 'InstaDoc' and access
426
440
  */instadoc*.
427
441
 
442
+ ```
443
+ class Todo < Ki::Model
444
+ _body 'is required because reasons'
445
+ requires :body
446
+
447
+ _desc 'This is a before all description'
448
+ def before_all
449
+ end
450
+
451
+ _desc 'This is a general description. Needs to be above a method called "doc"'
452
+ def doc; end
453
+ end
454
+ ```
455
+
428
456
  ## Administration Interface
429
457
 
430
458
  Ki offers an instant administration interface. Add the middleware 'AdminIntefaceGenerator'
data/Rakefile CHANGED
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'bundler/gem_tasks'
2
4
  require 'rspec/core/rake_task'
3
5
  require 'rdoc/task'
@@ -5,7 +7,7 @@ require 'rdoc/task'
5
7
  RDoc::Task.new do |rdoc|
6
8
  rdoc.main = 'README.md'
7
9
  rdoc.rdoc_files
8
- .include('README.md', 'lib/**/*.rb')
10
+ .include('README.md', 'lib/**/*.rb')
9
11
  rdoc.rdoc_dir = 'doc'
10
12
  end
11
13
 
data/bin/ki CHANGED
@@ -1,4 +1,5 @@
1
1
  #!/usr/bin/env ruby
2
+ # frozen_string_literal: true
2
3
 
3
4
  $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
4
5
 
data/ki.gemspec CHANGED
@@ -1,4 +1,5 @@
1
- # coding: utf-8
1
+ # frozen_string_literal: true
2
+
2
3
  lib = File.expand_path('../lib', __FILE__)
3
4
  $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
5
  require 'ki/version'
@@ -16,24 +17,24 @@ Gem::Specification.new do |spec|
16
17
  spec.files = `git ls-files -z`.split("\x0")
17
18
  spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
18
19
  spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
19
- spec.require_paths = %w(lib examples)
20
+ spec.require_paths = %w[lib examples]
20
21
 
21
- spec.add_runtime_dependency 'bundler', '~> 1.5'
22
+ spec.add_runtime_dependency 'bson_ext'
23
+ spec.add_runtime_dependency 'bundler'
24
+ spec.add_runtime_dependency 'coffee-script'
25
+ spec.add_runtime_dependency 'faye-websocket'
26
+ spec.add_runtime_dependency 'haml'
27
+ spec.add_runtime_dependency 'mongo'
22
28
  spec.add_runtime_dependency 'rack'
29
+ spec.add_runtime_dependency 'rack-cors'
23
30
  spec.add_runtime_dependency 'rack-parser'
24
- spec.add_runtime_dependency 'thor'
25
- spec.add_runtime_dependency 'haml'
26
31
  spec.add_runtime_dependency 'sass'
27
- spec.add_runtime_dependency 'coffee-script'
28
- spec.add_runtime_dependency 'mongo', '1.9.2'
29
- spec.add_runtime_dependency 'bson_ext'
30
- spec.add_runtime_dependency 'rack-cors'
31
- spec.add_runtime_dependency 'faye-websocket'
32
+ spec.add_runtime_dependency 'thor'
32
33
 
33
- spec.add_development_dependency 'rake'
34
- spec.add_development_dependency 'rack-test'
35
- spec.add_development_dependency 'rspec'
36
34
  spec.add_development_dependency 'guard-rspec'
37
35
  spec.add_development_dependency 'guard-rubocop'
38
- spec.add_development_dependency 'codeclimate-test-reporter'
36
+ spec.add_development_dependency 'rack-test'
37
+ spec.add_development_dependency 'rake'
38
+ spec.add_development_dependency 'rspec'
39
+ spec.add_development_dependency 'simplecov'
39
40
  end