mshard 0.2.1 → 0.3.0

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