obk 0.0.0 → 0.1.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
  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'