mshard 0.2.1 → 0.3.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 545f2b34a026fd7dca1291a6c38014f7c53627b1
4
- data.tar.gz: 1b57457dabbc0ded5c0e838a7c6c1149ff9af2f1
3
+ metadata.gz: 9b44c4da0d6d299586d4488c609cefe28d4f1205
4
+ data.tar.gz: c2eed8df108db6db4a29ae842d341beba815ae57
5
5
  SHA512:
6
- metadata.gz: c2da2d1897e4bc19fac822179b7923d06bbd476203b7dc6e627a09ce350343b24dbbfeca347fc64a5c9cfee0e9f1343b00c8be4e424ae28df2749c337bec36a6
7
- data.tar.gz: 8521eeb10d44c91124b5a0989a3c42b31a83afbbeaa8228d901069f5886244782ae57232fb459a729981930cf39b942a29791de4644aaaa2049ca1d389321816
6
+ metadata.gz: 6aa9c50498278221548a0804e39f27fe772af4cacb62fb4a3304040be1f9a0ea7af20e090fb411f18360b8c1eab02092ef7848a7701cef05b5223b75eb09382d
7
+ data.tar.gz: 8a9282fcac7dfe0d8988488831322eaee0de7abe6e32569a18e3bc24e062f35870d70764718688a8af11016442c3708468df92de732c9a14c6e78d387649d2b3
data/.rubocop_todo.yml CHANGED
@@ -1,10 +1,10 @@
1
1
  # This configuration was generated by `rubocop --auto-gen-config`
2
- # on 2015-02-10 19:45:17 +0900 using RuboCop version 0.29.0.
2
+ # on 2015-07-30 20:01:55 +0900 using RuboCop version 0.29.1.
3
3
  # The point is for the user to remove these configuration records
4
4
  # one by one as the offenses are removed from the code base.
5
5
  # Note that changes in the inspected code, or installation of new
6
6
  # versions of RuboCop, may require this file to be generated again.
7
7
 
8
- # Offense count: 2
8
+ # Offense count: 3
9
9
  Style/Documentation:
10
10
  Enabled: false
data/.travis.yml ADDED
@@ -0,0 +1,7 @@
1
+ language: ruby
2
+ sudo: false
3
+ rvm:
4
+ - ruby-head
5
+ - 2.2.2
6
+ - 2.1.5
7
+ - 2.0.0
data/Gemfile CHANGED
@@ -2,3 +2,5 @@ source 'http://rubygems.org'
2
2
 
3
3
  # Specify your gem's dependencies in mshard.gemspec
4
4
  gemspec
5
+
6
+ gem 'codecov', require: false, group: :test
data/README.md CHANGED
@@ -1,3 +1,10 @@
1
+ [![Gem Version](https://badge.fury.io/rb/mshard.svg)](http://badge.fury.io/rb/mshard)
2
+ [![Build Status](https://travis-ci.org/ermaker/mshard.svg?branch=master)](https://travis-ci.org/ermaker/mshard)
3
+ [![Dependency Status](https://gemnasium.com/ermaker/mshard.svg)](https://gemnasium.com/ermaker/mshard)
4
+ [![Code Climate](https://codeclimate.com/github/ermaker/mshard/badges/gpa.svg)](https://codeclimate.com/github/ermaker/mshard)
5
+ [![codecov.io](http://codecov.io/github/ermaker/mshard/coverage.svg?branch=master)](http://codecov.io/github/ermaker/mshard?branch=master)
6
+ [![Inline docs](http://inch-ci.org/github/ermaker/mshard.svg?branch=master)](http://inch-ci.org/github/ermaker/mshard)
7
+
1
8
  # Mshard
2
9
 
3
10
  TODO: Write a gem description
data/Rakefile CHANGED
@@ -1 +1,13 @@
1
1
  require 'bundler/gem_tasks'
2
+ require 'rspec/core/rake_task'
3
+ require 'rubocop/rake_task'
4
+
5
+ RSpec::Core::RakeTask.new
6
+ RuboCop::RakeTask.new
7
+
8
+ task :cov do
9
+ ENV['COVERAGE'] = 'true'
10
+ Rake::Task[:spec].execute
11
+ end
12
+
13
+ task default: [:cov, :rubocop]
data/cov.sh ADDED
@@ -0,0 +1,13 @@
1
+ #!/bin/sh
2
+
3
+ set -xe
4
+
5
+ CWD=$(pwd $(dirname $0))
6
+ COV=${CWD}/coverage
7
+
8
+ rake cov
9
+
10
+ docker run -it --rm \
11
+ -v ${COV}:/usr/share/nginx/html:ro \
12
+ -p 8080:80 \
13
+ nginx
data/exe/ting ADDED
@@ -0,0 +1,6 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require 'mshard'
4
+ require 'mshard/ting'
5
+
6
+ MShard::Ting.start
data/lib/mshard/mshard.rb CHANGED
@@ -19,8 +19,8 @@ module MShard
19
19
  begin
20
20
  return yield
21
21
  rescue
22
+ sleep delay
22
23
  end
23
- sleep delay
24
24
  end
25
25
  nil
26
26
  end
@@ -29,12 +29,11 @@ module MShard
29
29
  try { get(*args) }
30
30
  end
31
31
 
32
- def set_safe(*args)
32
+ def set_safe(*args) # rubocop:disable Style/AccessorMethodName
33
33
  try { set(*args) }
34
34
  end
35
35
 
36
- def error_to_html(e)
37
- Haml::Engine.new(<<-HAML).render(Object.new, e: e)
36
+ ERROR_TEMPLATE = <<-HAML
38
37
  !!! 5
39
38
  %html
40
39
  %head
@@ -48,15 +47,19 @@ module MShard
48
47
  %pre
49
48
  &= e.backtrace.join("\\n")
50
49
  HAML
50
+
51
+ def error_to_html(e)
52
+ Haml::Engine.new(ERROR_TEMPLATE).render(Object.new, e: e)
51
53
  end
52
54
 
53
55
  def set_error(e, **opt)
54
- set_safe({
56
+ set_safe(
57
+ {
55
58
  pushbullet: true,
56
59
  type: 'link',
57
60
  title: 'Error!',
58
61
  body: "#{e.class}\nClick here",
59
- contents: error_to_html(e),
62
+ contents: error_to_html(e)
60
63
  }.merge(opt)
61
64
  )
62
65
  end
@@ -0,0 +1,18 @@
1
+ require 'thor'
2
+ require 'mshard'
3
+
4
+ module MShard
5
+ class Ting < Thor::Group
6
+ namespace :''
7
+ argument :title, default: 'Ting!', required: false
8
+ argument :body, required: false
9
+ def ting
10
+ MShard.new.set_safe(
11
+ pushbullet: true,
12
+ type: 'note',
13
+ title: title,
14
+ body: body
15
+ )
16
+ end
17
+ end
18
+ end
@@ -1,3 +1,3 @@
1
1
  module MShard
2
- VERSION = '0.2.1'
2
+ VERSION = '0.3.0'
3
3
  end
data/mshard.gemspec CHANGED
@@ -14,16 +14,19 @@ Gem::Specification.new do |spec|
14
14
  spec.license = 'MIT'
15
15
 
16
16
  spec.files = `git ls-files -z`.split("\x0")
17
- spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
17
+ spec.bindir = 'exe'
18
+ spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
18
19
  spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
19
20
  spec.require_paths = ['lib']
20
21
 
21
22
  spec.add_dependency 'httparty'
22
23
  spec.add_dependency 'haml'
24
+ spec.add_dependency 'thor'
23
25
  spec.add_development_dependency 'bundler', '~> 1.7'
24
26
  spec.add_development_dependency 'rake', '~> 10.0'
25
27
  spec.add_development_dependency 'rspec'
26
28
  spec.add_development_dependency 'rubocop'
29
+ spec.add_development_dependency 'simplecov'
27
30
  spec.add_development_dependency 'guard'
28
31
  spec.add_development_dependency 'guard-rspec'
29
32
  spec.add_development_dependency 'guard-rubocop'
@@ -1,19 +1,55 @@
1
- require 'mshard/mshard'
1
+ require 'mshard'
2
2
 
3
3
  describe MShard::MShard do
4
- it 'works' do
5
- id = subject.set(contents: 'a')
6
- expect(subject.get(id)).to eq('a')
4
+ it '#try works' do
5
+ expect(subject.try { :result }).to be(:result)
6
+ expect(subject.try(delay: 0.01) { fail }).to be(nil)
7
7
  end
8
8
 
9
- it 'works' do
10
- subject.set(
11
- pushbullet: true,
12
- channel_tag: ENV['PUSHBULLET_CHANNEL'],
13
- type: 'link',
14
- title: 'title',
15
- body: 'body',
16
- contents: 'a'
17
- )
9
+ describe '#get' do
10
+ before do
11
+ expect(described_class).to receive(:get)
12
+ .with('/v2/shards/id').and_return(double(body: :done))
13
+ end
14
+
15
+ it '#get works' do
16
+ expect(subject.get(:id)).to eq(:done)
17
+ end
18
+
19
+ it '#get_safe works' do
20
+ expect(subject.get_safe(:id)).to eq(:done)
21
+ end
22
+ end
23
+
24
+ describe '#set' do
25
+ before do
26
+ expect(described_class).to receive(:post)
27
+ .with('/v2/shards', body: :params).and_return('id' => :id)
28
+ end
29
+
30
+ it '#set works' do
31
+ expect(subject.set(:params)).to eq(:id)
32
+ end
33
+
34
+ it '#set_safe works' do
35
+ expect(subject.set_safe(:params)).to eq(:id)
36
+ end
37
+ end
38
+
39
+ it '#set_error works' do
40
+ expect(described_class).to receive(:post).and_return('id' => :id)
41
+ e = double(inspect: :inspect, backtrace: [:a, :b])
42
+ expect(subject.set_error(e)).to eq(:id)
43
+ end
44
+
45
+ it '#error_to_html works' do
46
+ e = begin
47
+ fail
48
+ rescue => e
49
+ e
50
+ end
51
+ html = (subject.error_to_html(e))
52
+ expect(html).to include('<title>Error</title>')
53
+ expect(html).to include('<pre>RuntimeError</pre>')
18
54
  end
19
55
  end
data/spec/spec_helper.rb CHANGED
@@ -16,6 +16,20 @@
16
16
  # users commonly want.
17
17
  #
18
18
  # See http://rubydoc.info/gems/rspec-core/RSpec/Core/Configuration
19
+
20
+ if ENV['TRAVIS'] || ENV['COVERAGE']
21
+ require 'simplecov'
22
+
23
+ if ENV['TRAVIS']
24
+ require 'codecov'
25
+ SimpleCov.formatter = SimpleCov::Formatter::Codecov
26
+ end
27
+
28
+ SimpleCov.start do
29
+ add_filter '/spec/'
30
+ end
31
+ end
32
+
19
33
  RSpec.configure do |config|
20
34
  # rspec-expectations config goes here. You can use an alternate
21
35
  # assertion/expectation library such as wrong or the stdlib/minitest
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mshard
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.1
4
+ version: 0.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Minwoo Lee
8
8
  autorequire:
9
- bindir: bin
9
+ bindir: exe
10
10
  cert_chain: []
11
- date: 2015-03-17 00:00:00.000000000 Z
11
+ date: 2015-07-31 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: httparty
@@ -38,6 +38,20 @@ dependencies:
38
38
  - - ">="
39
39
  - !ruby/object:Gem::Version
40
40
  version: '0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: thor
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ">="
46
+ - !ruby/object:Gem::Version
47
+ version: '0'
48
+ type: :runtime
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ">="
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
41
55
  - !ruby/object:Gem::Dependency
42
56
  name: bundler
43
57
  requirement: !ruby/object:Gem::Requirement
@@ -94,6 +108,20 @@ dependencies:
94
108
  - - ">="
95
109
  - !ruby/object:Gem::Version
96
110
  version: '0'
111
+ - !ruby/object:Gem::Dependency
112
+ name: simplecov
113
+ requirement: !ruby/object:Gem::Requirement
114
+ requirements:
115
+ - - ">="
116
+ - !ruby/object:Gem::Version
117
+ version: '0'
118
+ type: :development
119
+ prerelease: false
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ requirements:
122
+ - - ">="
123
+ - !ruby/object:Gem::Version
124
+ version: '0'
97
125
  - !ruby/object:Gem::Dependency
98
126
  name: guard
99
127
  requirement: !ruby/object:Gem::Requirement
@@ -153,7 +181,8 @@ dependencies:
153
181
  description: MShard
154
182
  email:
155
183
  - ermaker@gmail.com
156
- executables: []
184
+ executables:
185
+ - ting
157
186
  extensions: []
158
187
  extra_rdoc_files: []
159
188
  files:
@@ -161,13 +190,17 @@ files:
161
190
  - ".rspec"
162
191
  - ".rubocop.yml"
163
192
  - ".rubocop_todo.yml"
193
+ - ".travis.yml"
164
194
  - Gemfile
165
195
  - Guardfile
166
196
  - LICENSE.txt
167
197
  - README.md
168
198
  - Rakefile
199
+ - cov.sh
200
+ - exe/ting
169
201
  - lib/mshard.rb
170
202
  - lib/mshard/mshard.rb
203
+ - lib/mshard/ting.rb
171
204
  - lib/mshard/version.rb
172
205
  - mshard.gemspec
173
206
  - spec/lib/mshard/mshard_spec.rb