ki 0.4.11 → 0.4.12

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.
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