obk 0.0.0 → 0.1.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
  SHA256:
3
- metadata.gz: 6fe6bf5e396eacad1ff25efd2523677f944ae30aa2ec965690e38c60e341eee8
4
- data.tar.gz: 54ef6a1867d711306e44b17e7060d796ab1f587f3b734aec2f2b5ef824db977f
3
+ metadata.gz: 1af3e36c2357d3065b5c4817f2b582dbbaa356b2dc96f282fba15e910b040d98
4
+ data.tar.gz: 931c8f9d6c200cd54a45a3a8227687a6e3445ed53c751a477743579dade94264
5
5
  SHA512:
6
- metadata.gz: c88a5fc7d4a9f6f1a232a02b35840d1c124ccad0a206e3a37d16991167b43a6fa2771b9642466eaf1eb4b3e59264de9beca3071d055d40c18950dad9362ecad0
7
- data.tar.gz: 762ac11379b64171866566f0b003b18ea6a2b866e24505d8977c7d0f4328d555781eebe6b3fdec8b1fedd3629979d430f3434a6d17709eb43281a390a7bd8093
6
+ metadata.gz: 7f725b39d02c5f9f68ac4984141e78c5cc77502d1af1d8001cc3410331a96122151301e9873924f4843467588ad61f8148024b819f4495758f5196b720a4cba7
7
+ data.tar.gz: 714b2730f6a721256adb148887f2d32ea800236b9ead08d5e39a64c378382045c4fa1d6bffe4e54ca0d8169fee00e06b31398833946ade28dff603735e4b15fb
data/.rubocop.yml CHANGED
@@ -1,20 +1,28 @@
1
1
  AllCops:
2
2
  DisplayCopNames: true
3
3
  TargetRubyVersion: 2.3
4
- NewCops: enable
5
- SuggestExtensions: false
6
4
 
7
5
  Layout/EndOfLine:
8
6
  EnforcedStyle: lf
9
- Style/OptionalBooleanParameter:
7
+ Style/MethodMissingSuper:
10
8
  Enabled: false
11
- Lint/MissingSuper:
9
+ Layout/EmptyLineAfterGuardClause:
12
10
  Enabled: false
11
+ Layout/MultilineMethodCallIndentation:
12
+ Enabled: false
13
+ Metrics/AbcSize:
14
+ Max: 65
15
+ Metrics/BlockLength:
16
+ Max: 30
13
17
  Metrics/MethodLength:
14
18
  Max: 50
15
- Layout/EndAlignment:
16
- Enabled: false
17
- Layout/ElseAlignment:
18
- Enabled: false
19
- Layout/IndentationWidth:
19
+ Metrics/ClassLength:
20
+ Max: 180
21
+ Metrics/CyclomaticComplexity:
22
+ Max: 10
23
+ Metrics/PerceivedComplexity:
24
+ Max: 10
25
+ Metrics/ParameterLists:
26
+ Max: 10
27
+ Layout/AlignParameters:
20
28
  Enabled: false
data/.rultor.yml CHANGED
@@ -1,16 +1,24 @@
1
- docker:
2
- image: yegor256/rultor-image:1.9.1
3
1
  assets:
4
2
  rubygems.yml: yegor256/home#assets/rubygems.yml
5
- install: |
6
- pdd -f /dev/null
3
+ install: |-
4
+ export GEM_HOME=~/.ruby
5
+ export GEM_PATH=$GEM_HOME:$GEM_PATH
7
6
  sudo bundle install --no-color "--gemfile=$(pwd)/Gemfile"
8
7
  release:
9
8
  script: |-
10
- bundle exec rake clean test rubocop copyright
9
+ bundle exec rake
10
+ rm -rf *.gem
11
+ sed -i "s/0\.0\.0/${tag}/g" obk.gemspec
12
+ git add obk.gemspec
13
+ git commit -m "Version set to ${tag}"
11
14
  gem build obk.gemspec
12
15
  chmod 0600 ../rubygems.yml
13
16
  gem push *.gem --config-file ../rubygems.yml
14
17
  merge:
15
18
  script: |-
16
- bundle exec rake clean test rubocop copyright
19
+ bundle install
20
+ bundle exec rake
21
+ deploy:
22
+ script: |-
23
+ echo 'Nothing to deploy'
24
+ exit -1
data/.travis.yml ADDED
@@ -0,0 +1,12 @@
1
+ language: ruby
2
+ rvm:
3
+ - 2.6.0
4
+ branches:
5
+ only:
6
+ - master
7
+ install:
8
+ - bundle install
9
+ script:
10
+ - set -e
11
+ - bundle exec rake
12
+
data/Gemfile CHANGED
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # Copyright (c) 2021-2022 Yegor Bugayenko
3
+ # Copyright (c) 2021 Yegor Bugayenko
4
4
  #
5
5
  # Permission is hereby granted, free of charge, to any person obtaining a copy
6
6
  # of this software and associated documentation files (the 'Software'), to deal
data/README.md CHANGED
@@ -4,11 +4,12 @@
4
4
  [![DevOps By Rultor.com](http://www.rultor.com/b/yegor256/obk)](http://www.rultor.com/p/yegor256/obk)
5
5
  [![We recommend RubyMine](https://www.elegantobjects.org/rubymine.svg)](https://www.jetbrains.com/ruby/)
6
6
 
7
- [![rake](https://github.com/yegor256/obk/actions/workflows/rake.yml/badge.svg)](https://github.com/yegor256/obk/actions/workflows/rake.yml)
8
- [![Test Coverage](https://img.shields.io/codecov/c/github/obk/cobench.svg)](https://codecov.io/github/yegor256/obk?branch=master)
7
+ [![Build Status](https://travis-ci.org/yegor256/obk.svg)](https://travis-ci.org/yegor256/obk)
8
+ [![Build status](https://ci.appveyor.com/api/projects/status/pexc3cg49m75c0r6?svg=true)](https://ci.appveyor.com/project/yegor256/obk)
9
9
  [![Gem Version](https://badge.fury.io/rb/obk.svg)](http://badge.fury.io/rb/obk)
10
- [![Maintainability](https://api.codeclimate.com/v1/badges/e1be4e43e125fdc1e454/maintainability)](https://codeclimate.com/github/yegor256/obk/maintainability)
10
+ [![Maintainability](https://api.codeclimate.com/v1/badges/51b007d0eb24ceeeca94/maintainability)](https://codeclimate.com/github/yegor256/obk/maintainability)
11
11
  [![Yard Docs](http://img.shields.io/badge/yard-docs-blue.svg)](http://rubydoc.info/github/yegor256/obk/master/frames)
12
+
12
13
  [![Hits-of-Code](https://hitsofcode.com/github/yegor256/obk)](https://hitsofcode.com/view/github/yegor256/obk)
13
14
  [![License](https://img.shields.io/badge/license-MIT-green.svg)](https://github.com/yegor256/obk/blob/master/LICENSE.txt)
14
15
 
@@ -25,12 +26,12 @@ require 'obk'
25
26
  obj = Obk.new(obj, pause: 500)
26
27
  obj.foo
27
28
  # Forced 500ms delay here
28
- obj.bar
29
+ obj.foo
29
30
  ```
30
31
 
31
- There will be a forced delay of 500 milliseconds between `.foo` and `.bar` calls.
32
+ There will be a forced delay of 500 milliseconds between `.foo` calls.
32
33
 
33
- Keep in mind that `Obk` is _not_ thread-safe.
34
+ Keep in mind that `Obk` is thread-safe.
34
35
 
35
36
  ## How to contribute
36
37
 
data/Rakefile CHANGED
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # Copyright (c) 2021-2022 Yegor Bugayenko
3
+ # Copyright (c) 2021 Yegor Bugayenko
4
4
  #
5
5
  # Permission is hereby granted, free of charge, to any person obtaining a copy
6
6
  # of this software and associated documentation files (the 'Software'), to deal
@@ -55,11 +55,3 @@ RuboCop::RakeTask.new(:rubocop) do |task|
55
55
  task.fail_on_error = true
56
56
  task.requires << 'rubocop-rspec'
57
57
  end
58
-
59
- task :copyright do
60
- sh "grep -q -r '2021-#{Date.today.strftime('%Y')}' \
61
- --include '*.rb' \
62
- --include '*.txt' \
63
- --include 'Rakefile' \
64
- ."
65
- end
data/appveyor.yml ADDED
@@ -0,0 +1,25 @@
1
+ version: '{build}'
2
+ skip_tags: true
3
+ clone_depth: 10
4
+ branches:
5
+ only:
6
+ - master
7
+ except:
8
+ - gh-pages
9
+ os: Windows Server 2012
10
+ environment:
11
+ matrix:
12
+ - ruby_version: "25-x64"
13
+ install:
14
+ - ps: |
15
+ $Env:PATH = "C:\Ruby${Env:ruby_version}\bin;${Env:PATH}"
16
+ - bundle config --local path vendor/bundle
17
+ - ruby -v
18
+ - bundle -v
19
+ build_script:
20
+ - bundle update
21
+ - bundle install
22
+ test_script:
23
+ - bundle exec rake --quiet
24
+ cache:
25
+ - vendor/bundle
data/lib/obk.rb CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  # (The MIT License)
4
4
  #
5
- # Copyright (c) 2021-2022 Yegor Bugayenko
5
+ # Copyright (c) 2021 Yegor Bugayenko
6
6
  #
7
7
  # Permission is hereby granted, free of charge, to any person obtaining a copy
8
8
  # of this software and associated documentation files (the 'Software'), to deal
@@ -28,27 +28,22 @@
28
28
  # {README}[https://github.com/yegor256/obk/blob/master/README.md] file.
29
29
  #
30
30
  # Author:: Yegor Bugayenko (yegor256@gmail.com)
31
- # Copyright:: Copyright (c) 2021-2022 Yegor Bugayenko
31
+ # Copyright:: Copyright (c) 2021 Yegor Bugayenko
32
32
  # License:: MIT
33
33
  class Obk
34
34
  def initialize(origin, pause: 1000)
35
35
  @origin = origin
36
- @pause = pause / 1000.0
37
- @latest = Time.now
36
+ @pause = pause
38
37
  end
39
38
 
40
39
  def method_missing(*args)
41
- left = @pause - (Time.now - @latest)
42
- sleep left if left.positive?
43
- result = if block_given?
40
+ if block_given?
44
41
  @origin.__send__(*args) do |*a|
45
42
  yield(*a)
46
43
  end
47
44
  else
48
45
  @origin.__send__(*args)
49
46
  end
50
- @latest = Time.now
51
- result
52
47
  end
53
48
 
54
49
  def respond_to?(method, include_private = false)
data/obk.gemspec CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  # (The MIT License)
4
4
  #
5
- # Copyright (c) 2021-2022 Yegor Bugayenko
5
+ # Copyright (c) 2021 Yegor Bugayenko
6
6
  #
7
7
  # Permission is hereby granted, free of charge, to any person obtaining a copy
8
8
  # of this software and associated documentation files (the 'Software'), to deal
@@ -24,23 +24,27 @@
24
24
 
25
25
  require 'English'
26
26
  Gem::Specification.new do |s|
27
- s.required_rubygems_version = Gem::Requirement.new('>= 0') if s.respond_to? :required_rubygems_version=
27
+ s.specification_version = 2 if s.respond_to? :specification_version=
28
+ if s.respond_to? :required_rubygems_version=
29
+ s.required_rubygems_version = Gem::Requirement.new('>= 0')
30
+ end
31
+ s.rubygems_version = '2.3.3'
28
32
  s.required_ruby_version = '>=2.3'
29
33
  s.name = 'obk'
30
- s.version = '0.0.0'
34
+ s.version = '0.1.0'
31
35
  s.license = 'MIT'
32
- s.summary = 'Ruby decorator to throttle object method calls'
33
- s.description = 'Ruby decorator to throttle object method calls'
36
+ s.summary = 'Obk'
37
+ s.description = 'Obk'
34
38
  s.authors = ['Yegor Bugayenko']
35
39
  s.email = 'yegor256@gmail.com'
36
40
  s.homepage = 'http://github.com/yegor256/obk'
37
41
  s.files = `git ls-files`.split($RS)
42
+ s.test_files = s.files.grep(%r{^(test)/})
38
43
  s.rdoc_options = ['--charset=UTF-8']
39
44
  s.extra_rdoc_files = ['README.md']
40
- s.add_development_dependency 'minitest', '5.16.2'
41
- s.add_development_dependency 'rake', '13.0.6'
42
- s.add_development_dependency 'rdoc', '6.4.0'
43
- s.add_development_dependency 'rubocop', '1.34.1'
44
- s.add_development_dependency 'rubocop-rspec', '2.12.1'
45
- s.metadata['rubygems_mfa_required'] = 'true'
45
+ s.add_development_dependency 'minitest', '5.11.3'
46
+ s.add_development_dependency 'rake', '12.3.3'
47
+ s.add_development_dependency 'rdoc', '4.3.0'
48
+ s.add_development_dependency 'rubocop', '0.62.0'
49
+ s.add_development_dependency 'rubocop-rspec', '1.31.0'
46
50
  end
data/test/test_obk.rb CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  # (The MIT License)
4
4
  #
5
- # Copyright (c) 2021-2022 Yegor Bugayenko
5
+ # Copyright (c) 2021 Yegor Bugayenko
6
6
  #
7
7
  # Permission is hereby granted, free of charge, to any person obtaining a copy
8
8
  # of this software and associated documentation files (the 'Software'), to deal
@@ -28,7 +28,7 @@ require_relative '../lib/obk'
28
28
 
29
29
  # Obk test.
30
30
  # Author:: Yegor Bugayenko (yegor256@gmail.com)
31
- # Copyright:: Copyright (c) 2021-2022 Yegor Bugayenko
31
+ # Copyright:: Copyright (c) 2021 Yegor Bugayenko
32
32
  # License:: MIT
33
33
  class ObkTest < Minitest::Test
34
34
  def test_simple
@@ -36,11 +36,8 @@ class ObkTest < Minitest::Test
36
36
  def obj.read(foo)
37
37
  foo
38
38
  end
39
- obj = Obk.new(obj, pause: 1000)
40
- start = Time.now
41
- assert_equal(42, obj.read(42))
42
- assert_equal(42, obj.read(42))
43
- stop = Time.now
44
- assert(stop - start > 1)
39
+ foo = Obk.new(obj, pause: 100)
40
+ assert_equal(42, foo.read(42))
41
+ assert_equal(42, foo.read(42))
45
42
  end
46
43
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: obk
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.0
4
+ version: 0.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Yegor Bugayenko
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-08-10 00:00:00.000000000 Z
11
+ date: 2021-03-07 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: minitest
@@ -16,71 +16,71 @@ dependencies:
16
16
  requirements:
17
17
  - - '='
18
18
  - !ruby/object:Gem::Version
19
- version: 5.16.2
19
+ version: 5.11.3
20
20
  type: :development
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - '='
25
25
  - !ruby/object:Gem::Version
26
- version: 5.16.2
26
+ version: 5.11.3
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: rake
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
31
  - - '='
32
32
  - !ruby/object:Gem::Version
33
- version: 13.0.6
33
+ version: 12.3.3
34
34
  type: :development
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - '='
39
39
  - !ruby/object:Gem::Version
40
- version: 13.0.6
40
+ version: 12.3.3
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: rdoc
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
45
  - - '='
46
46
  - !ruby/object:Gem::Version
47
- version: 6.4.0
47
+ version: 4.3.0
48
48
  type: :development
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
52
  - - '='
53
53
  - !ruby/object:Gem::Version
54
- version: 6.4.0
54
+ version: 4.3.0
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: rubocop
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
59
  - - '='
60
60
  - !ruby/object:Gem::Version
61
- version: 1.34.1
61
+ version: 0.62.0
62
62
  type: :development
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
66
  - - '='
67
67
  - !ruby/object:Gem::Version
68
- version: 1.34.1
68
+ version: 0.62.0
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: rubocop-rspec
71
71
  requirement: !ruby/object:Gem::Requirement
72
72
  requirements:
73
73
  - - '='
74
74
  - !ruby/object:Gem::Version
75
- version: 2.12.1
75
+ version: 1.31.0
76
76
  type: :development
77
77
  prerelease: false
78
78
  version_requirements: !ruby/object:Gem::Requirement
79
79
  requirements:
80
80
  - - '='
81
81
  - !ruby/object:Gem::Version
82
- version: 2.12.1
83
- description: Ruby decorator to throttle object method calls
82
+ version: 1.31.0
83
+ description: Obk
84
84
  email: yegor256@gmail.com
85
85
  executables: []
86
86
  extensions: []
@@ -88,18 +88,16 @@ extra_rdoc_files:
88
88
  - README.md
89
89
  files:
90
90
  - ".0pdd.yml"
91
- - ".github/workflows/codecov.yml"
92
- - ".github/workflows/pdd.yml"
93
- - ".github/workflows/rake.yml"
94
- - ".github/workflows/xcop.yml"
95
91
  - ".gitignore"
96
92
  - ".pdd"
97
93
  - ".rubocop.yml"
98
94
  - ".rultor.yml"
95
+ - ".travis.yml"
99
96
  - Gemfile
100
97
  - LICENSE.txt
101
98
  - README.md
102
99
  - Rakefile
100
+ - appveyor.yml
103
101
  - lib/obk.rb
104
102
  - logo.svg
105
103
  - obk.gemspec
@@ -107,8 +105,7 @@ files:
107
105
  homepage: http://github.com/yegor256/obk
108
106
  licenses:
109
107
  - MIT
110
- metadata:
111
- rubygems_mfa_required: 'true'
108
+ metadata: {}
112
109
  post_install_message:
113
110
  rdoc_options:
114
111
  - "--charset=UTF-8"
@@ -125,8 +122,9 @@ required_rubygems_version: !ruby/object:Gem::Requirement
125
122
  - !ruby/object:Gem::Version
126
123
  version: '0'
127
124
  requirements: []
128
- rubygems_version: 3.1.2
125
+ rubygems_version: 3.0.1
129
126
  signing_key:
130
- specification_version: 4
131
- summary: Ruby decorator to throttle object method calls
132
- test_files: []
127
+ specification_version: 2
128
+ summary: Obk
129
+ test_files:
130
+ - test/test_obk.rb
@@ -1,20 +0,0 @@
1
- ---
2
- name: codecov
3
- on:
4
- push:
5
- branches:
6
- - master
7
- jobs:
8
- codecov:
9
- runs-on: ubuntu-20.04
10
- steps:
11
- - uses: actions/checkout@v2
12
- - uses: actions/setup-ruby@v1
13
- with:
14
- ruby-version: 2.7
15
- - run: bundle update
16
- - run: bundle exec rake
17
- - uses: codecov/codecov-action@v1
18
- with:
19
- file: coverage/.resultset.json
20
- fail_ci_if_error: true
@@ -1,15 +0,0 @@
1
- ---
2
- name: pdd
3
- "on":
4
- push:
5
- branches:
6
- - master
7
- pull_request:
8
- branches:
9
- - master
10
- jobs:
11
- pdd:
12
- runs-on: ubuntu-20.04
13
- steps:
14
- - uses: actions/checkout@v2
15
- - uses: g4s8/pdd-action@master
@@ -1,24 +0,0 @@
1
- ---
2
- name: rake
3
- on:
4
- push:
5
- branches:
6
- - master
7
- pull_request:
8
- branches:
9
- - master
10
- jobs:
11
- test:
12
- name: test
13
- strategy:
14
- matrix:
15
- os: [ubuntu-20.04]
16
- ruby: [2.6]
17
- runs-on: ${{ matrix.os }}
18
- steps:
19
- - uses: actions/checkout@v2
20
- - uses: ruby/setup-ruby@v1
21
- with:
22
- ruby-version: ${{ matrix.ruby }}
23
- - run: bundle update
24
- - run: bundle exec rake
@@ -1,17 +0,0 @@
1
- ---
2
- name: xcop
3
- "on":
4
- push:
5
- branches:
6
- - master
7
- pull_request:
8
- branches:
9
- - master
10
- jobs:
11
- xcop:
12
- runs-on: ubuntu-20.04
13
- steps:
14
- - uses: actions/checkout@v2
15
- - uses: g4s8/xcop-action@master
16
- with:
17
- files: '**/*.xml'