tinybucket 0.1.4 → 0.1.5

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: 24e3536cf6f81ae670df0d854aca916d60ab010d
4
- data.tar.gz: 2d59c8468bb0a79a5a6ce76d1a7858817fbcc7f7
3
+ metadata.gz: df8de5bb4a23d41681373aca721509d6ed520902
4
+ data.tar.gz: a0e0d3fc7485d3f065ae93aef7b92d7b32f31b8b
5
5
  SHA512:
6
- metadata.gz: 1217df53d313c34644437182696fcb2741813c40af241057bbab8c925491b6a3a44a7c1d9eeea534d64306ab0834b80c01de2ab649c465dd8ec85cc577c72a55
7
- data.tar.gz: 6badf2bcc2aabb16604f3cea9274723c704dddee46af91050534032fdae72f31f12e127f5fde5d8225f5d43dfc1c1187cb856313ba7a66aee0ca0071a826e77e
6
+ metadata.gz: 5456f3c17cbe2ee7fde00fc7609059da637326575cebe64ec717ea8dde55130205d6a3c1a73e5bd8a7d9f7f830f79c4a4362f934b5901ca5362e00335cdeb33b
7
+ data.tar.gz: fc4c4969316d1294247c251d02a8e06219095f3701a77f46b5013a028515160ea80806025565fc39317a0b0e251485de781edaf7a154ec28eda880617212b080
data/README.md CHANGED
@@ -34,6 +34,23 @@ Or install it yourself as:
34
34
 
35
35
  NOTE: `x` mark means `Already implemented.`.
36
36
 
37
+ ### Configure
38
+
39
+ #### Configure logger
40
+
41
+ This gem use built-in null_logger in default.
42
+
43
+ If you want to set your logger, configure like this.
44
+
45
+ ```
46
+ logger = Logger.new($stdout)
47
+ logger.level = Logger::WARN
48
+
49
+ Tinybucket.configure do |config|
50
+ config.logger = logger
51
+ end
52
+ ```
53
+
37
54
  ### init
38
55
 
39
56
  ```
@@ -0,0 +1,6 @@
1
+ module Tinybucket
2
+ class Config
3
+ include ActiveSupport::Configurable
4
+ config_accessor :logger
5
+ end
6
+ end
@@ -17,9 +17,9 @@ module Tinybucket
17
17
  end
18
18
 
19
19
  def attributes=(hash)
20
- hash.each do |key, value|
20
+ hash.each_pair do |key, value|
21
21
  if acceptable_attribute?(key)
22
- send("#{key}=", value)
22
+ send("#{key}=".intern, value)
23
23
  else
24
24
  # rubocop:disable Metrics/LineLength
25
25
  logger.warn("Ignored '#{key}' attribute (value: #{value}). [#{self.class}]")
@@ -28,7 +28,11 @@ module Tinybucket
28
28
  end
29
29
  end
30
30
 
31
- alias_method :attributes, :acceptable_attributes
31
+ def attributes
32
+ acceptable_attributes.map do |key|
33
+ { key => send(key.intern) }
34
+ end.reduce(&:merge)
35
+ end
32
36
 
33
37
  protected
34
38
 
@@ -0,0 +1,35 @@
1
+ module Tinybucket
2
+ class NullLogger
3
+ attr_accessor :level
4
+
5
+ def fatal(_progname = nil, &_block); end
6
+
7
+ def fatal?
8
+ false
9
+ end
10
+
11
+ def error(_progname = nil, &_block); end
12
+
13
+ def error?
14
+ false
15
+ end
16
+
17
+ def warn(_progname = nil, &_block); end
18
+
19
+ def warn?
20
+ false
21
+ end
22
+
23
+ def info(_progname = nil, &_block); end
24
+
25
+ def info?
26
+ false
27
+ end
28
+
29
+ def debug(_progname = nil, &_block); end
30
+
31
+ def debug?
32
+ false
33
+ end
34
+ end
35
+ end
@@ -1,3 +1,3 @@
1
1
  module Tinybucket
2
- VERSION = '0.1.4'
2
+ VERSION = '0.1.5'
3
3
  end
data/lib/tinybucket.rb CHANGED
@@ -15,6 +15,8 @@ require 'active_model'
15
15
 
16
16
  require 'logger'
17
17
 
18
+ require 'tinybucket/config'
19
+ require 'tinybucket/null_logger'
18
20
  require 'tinybucket/api'
19
21
  require 'tinybucket/api_factory'
20
22
  require 'tinybucket/api/helper'
@@ -52,12 +54,16 @@ module Tinybucket
52
54
  @api_client = Tinybucket::Client.new(options, &block)
53
55
  end
54
56
 
57
+ def configure
58
+ yield(config)
59
+ end
60
+
61
+ def config
62
+ @config ||= Tinybucket::Config.new
63
+ end
64
+
55
65
  def logger
56
- @logger ||= begin
57
- logger = Logger.new($stdout)
58
- logger.level = Logger::DEBUG
59
- logger
60
- end
66
+ config.logger || Tinybucket::NullLogger.new
61
67
  end
62
68
  end
63
69
  end
@@ -0,0 +1,53 @@
1
+ require 'spec_helper'
2
+
3
+ RSpec.describe Tinybucket::NullLogger do
4
+ subject { Tinybucket::NullLogger.new }
5
+
6
+ describe '#level' do
7
+ it { expect(subject).to respond_to(:level) }
8
+ end
9
+
10
+ describe '#level=' do
11
+ it { expect(subject).to respond_to(:level=) }
12
+ end
13
+
14
+ describe '#fatal' do
15
+ it { expect(subject).to respond_to(:fatal) }
16
+ end
17
+
18
+ describe '#fatal?' do
19
+ it { expect(subject.fatal?).to be_falsey }
20
+ end
21
+
22
+ describe '#error' do
23
+ it { expect(subject).to respond_to(:error) }
24
+ end
25
+
26
+ describe '#error?' do
27
+ it { expect(subject.error?).to be_falsey }
28
+ end
29
+
30
+ describe '#warn' do
31
+ it { expect(subject).to respond_to(:warn) }
32
+ end
33
+
34
+ describe '#warn?' do
35
+ it { expect(subject.warn?).to be_falsey }
36
+ end
37
+
38
+ describe '#info' do
39
+ it { expect(subject).to respond_to(:info) }
40
+ end
41
+
42
+ describe '#info?' do
43
+ it { expect(subject.info?).to be_falsey }
44
+ end
45
+
46
+ describe '#debug' do
47
+ it { expect(subject).to respond_to(:debug) }
48
+ end
49
+
50
+ describe '#debug?' do
51
+ it { expect(subject.debug?).to be_falsey }
52
+ end
53
+ end
@@ -29,4 +29,28 @@ RSpec.describe Tinybucket do
29
29
  it_behaves_like 'return client which configured with options'
30
30
  end
31
31
  end
32
+
33
+ describe 'config' do
34
+ subject { Tinybucket.config }
35
+ it { expect(subject).to be_an_instance_of(Tinybucket::Config) }
36
+ end
37
+
38
+ describe 'configure' do
39
+ subject(:config) { Tinybucket.config }
40
+ let(:logger) { Logger.new($stdout) }
41
+
42
+ it 'can configurable logger' do
43
+ expect(config.logger).to be_nil
44
+
45
+ expect do
46
+ Tinybucket.configure do |config|
47
+ config.logger = logger
48
+ end
49
+ end.not_to raise_error
50
+
51
+ expect(config.logger).to eq(logger)
52
+ end
53
+
54
+ after { Tinybucket.configure { |config| config.logger = nil } }
55
+ end
32
56
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: tinybucket
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.4
4
+ version: 0.1.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - hirakiuc
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-06-06 00:00:00.000000000 Z
11
+ date: 2015-06-08 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport
@@ -255,6 +255,7 @@ files:
255
255
  - lib/tinybucket/api/user_api.rb
256
256
  - lib/tinybucket/api_factory.rb
257
257
  - lib/tinybucket/client.rb
258
+ - lib/tinybucket/config.rb
258
259
  - lib/tinybucket/connection.rb
259
260
  - lib/tinybucket/constants.rb
260
261
  - lib/tinybucket/error.rb
@@ -275,6 +276,7 @@ files:
275
276
  - lib/tinybucket/model/pull_request.rb
276
277
  - lib/tinybucket/model/repository.rb
277
278
  - lib/tinybucket/model/team.rb
279
+ - lib/tinybucket/null_logger.rb
278
280
  - lib/tinybucket/parser.rb
279
281
  - lib/tinybucket/parser/base_parser.rb
280
282
  - lib/tinybucket/parser/branch_restriction_parser.rb
@@ -355,6 +357,7 @@ files:
355
357
  - spec/lib/tinybucket/model/pull_request_spec.rb
356
358
  - spec/lib/tinybucket/model/repository_spec.rb
357
359
  - spec/lib/tinybucket/model/team_spec.rb
360
+ - spec/lib/tinybucket/null_logger_spec.rb
358
361
  - spec/lib/tinybucket_spec.rb
359
362
  - spec/spec_helper.rb
360
363
  - spec/support/api_response_macros.rb
@@ -381,7 +384,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
381
384
  version: '0'
382
385
  requirements: []
383
386
  rubyforge_project:
384
- rubygems_version: 2.4.5
387
+ rubygems_version: 2.2.2
385
388
  signing_key:
386
389
  specification_version: 4
387
390
  summary: ruby wrapper for the Bitbucket REST API (v2) with oauth
@@ -446,6 +449,7 @@ test_files:
446
449
  - spec/lib/tinybucket/model/pull_request_spec.rb
447
450
  - spec/lib/tinybucket/model/repository_spec.rb
448
451
  - spec/lib/tinybucket/model/team_spec.rb
452
+ - spec/lib/tinybucket/null_logger_spec.rb
449
453
  - spec/lib/tinybucket_spec.rb
450
454
  - spec/spec_helper.rb
451
455
  - spec/support/api_response_macros.rb