sometimes 0.0.3 → 1.0.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
- SHA1:
3
- metadata.gz: de2d58e8adfec5dfccd82cf65b2e0159910016fc
4
- data.tar.gz: 17988ad64d9a21b2704313088cee824163ec7b61
2
+ SHA256:
3
+ metadata.gz: ccb9ae4d24901c0c3e8c281b0a472757886b960114efd2522a98e541eaf62979
4
+ data.tar.gz: 31f5ea8578f47a910f01053ac0ac5d7173a19875253e5ce6470b63a1c4b70b02
5
5
  SHA512:
6
- metadata.gz: 531543b6687268ccf89ce8275e9945a0e2eadf21ea2f99b58940b246a889c69f6a08cd1c3ce9763eed542ec5eb855970f4b09b8e9ab7f7fac23e15166781dd6c
7
- data.tar.gz: 3953b76e389ff785fd5439a341c1706de259200da77e7b4160320e84d1591c034125601e86daf04c20e63c9ce44ec1d0af30d07849b7eb2b688360e37e37c1d9
6
+ metadata.gz: de1851cdd5e43008141669e83f67d7d9a288c50831534e27091f9c05263eba54388601cb14ba842abd863610603d2e56388d0785150f24e93dbb11f322de221e
7
+ data.tar.gz: 736c27a6b843706b1aef4cfeeb06ebb6e982db39f35cbb4c977abe7aea4fbe4721601e49014a5b50143450b8df98e2ec15fca38791509ac4f8a91de7f5317013
@@ -0,0 +1,20 @@
1
+ name: Ruby CI
2
+
3
+ on: [push, pull_request] # push OR PR
4
+
5
+ jobs:
6
+ test:
7
+ runs-on: ubuntu-latest
8
+ strategy:
9
+ matrix:
10
+ ruby-version: [2.7, 3.0]
11
+
12
+ steps:
13
+ - uses: actions/checkout@v2
14
+
15
+ - name: Set up Ruby and Bundle Install
16
+ uses: ruby/setup-ruby@v1
17
+ with:
18
+ ruby-version: ${{ matrix.ruby-version }}
19
+ bundler-cache: true
20
+ - run: bundle exec rake
data/README.md CHANGED
@@ -58,7 +58,7 @@ Maybe you want to remind someone of something, but not toooo often (It gets anno
58
58
  puts "Howdy, Don't forget to register!" # be annoying, but only 15% of the time
59
59
  end
60
60
 
61
- 33.percent_of_the time do
61
+ 33.percent_of_the_time do
62
62
  be_very_polite
63
63
  end
64
64
  ```
@@ -75,6 +75,21 @@ end
75
75
  end
76
76
  ```
77
77
 
78
+ If you can't say something nice, don't say anything at all:
79
+
80
+ ```ruby
81
+ never do
82
+ puts "You're a terrible person"
83
+ end
84
+ ```
85
+
86
+ Always remember your manners:
87
+
88
+ ```ruby
89
+ always do
90
+ puts "Thanks for sharing!"
91
+ end
92
+ ```
78
93
  ## Why?
79
94
 
80
95
  This gem was made so [alonetone](http://github.com/sudara/alonetone) could bit more fun when displaying notices and communicating to our users.
data/lib/sometimes.rb CHANGED
@@ -19,8 +19,13 @@ require "sometimes/version"
19
19
  # 40.percent_of_the_time do
20
20
  class Integer
21
21
  def percent_of_the_time(&block)
22
- raise(ArgumentError, 'Integer should be between 1 and 100 to be used with the times method') unless self > 0 && self <= 100
23
- yield if (Kernel.rand(99)+1) <= self
22
+ return if self == 0
23
+
24
+ if self < 0 || self > 100
25
+ raise(ArgumentError, 'Integer should be between 0 and 100 to be used with the percent_of_the_time method')
26
+ else
27
+ yield block if Kernel.rand(1..100) <= self
28
+ end
24
29
  end
25
30
  end
26
31
 
@@ -35,12 +40,21 @@ end
35
40
  # sometimes do
36
41
  class Object
37
42
  def half_the_time(&block)
38
- 50.percent_of_the_time {yield}
43
+ 50.percent_of_the_time(&block)
39
44
  end
40
- alias :sometimes :half_the_time
45
+ alias sometimes half_the_time
41
46
 
42
47
  def rarely(&block)
43
- 5.percent_of_the_time {yield}
48
+ 5.percent_of_the_time(&block)
49
+ end
50
+
51
+ def mostly(&block)
52
+ 95.percent_of_the_time(&block)
44
53
  end
45
- end
46
54
 
55
+ def never(&block); end
56
+
57
+ def always
58
+ yield
59
+ end
60
+ end
@@ -1,3 +1,3 @@
1
1
  module Sometimes
2
- VERSION = "0.0.3"
2
+ VERSION = "1.0.0".freeze
3
3
  end
data/sometimes.gemspec CHANGED
@@ -14,6 +14,8 @@ Gem::Specification.new do |gem|
14
14
 
15
15
  gem.files = `git ls-files`.split($/)
16
16
  gem.executables = gem.files.grep(%r{^bin/}).map{ |f| File.basename(f) }
17
- gem.test_files = gem.files.grep(%r{^(test|spec|features)/})
17
+ gem.test_files = gem.files.grep(%r{^(test)/})
18
+ gem.add_development_dependency("rake")
19
+ gem.add_development_dependency("test-unit")
18
20
  gem.require_paths = ["lib"]
19
21
  end
data/test/helper.rb CHANGED
@@ -39,7 +39,7 @@ ________________________ _ _ _ _ _ _ _ _ _ _ _ _ _ _
39
39
  JUST KIDDING!!!
40
40
  DOC
41
41
 
42
- sometimes do
42
+ rarely do
43
43
  puts ""
44
44
  puts "Run options:"
45
45
  puts ""
@@ -3,6 +3,17 @@ require 'sometimes'
3
3
  require 'helper'
4
4
 
5
5
  class SometimesTest < Test::Unit::TestCase
6
+ def test_sometimes
7
+ i = 0
8
+ 100000.times do
9
+ sometimes do
10
+ i += 1
11
+ end
12
+ end
13
+ puts i
14
+ assert (i < 51000) && (i > 49000)
15
+ end
16
+
6
17
  def test_ranges
7
18
  i = 0
8
19
  (25..50).times { i += 1 }
@@ -31,6 +42,16 @@ class SometimesTest < Test::Unit::TestCase
31
42
  assert i < 8000
32
43
  end
33
44
 
45
+ def test_mostly
46
+ i = 0
47
+ 100000.times do
48
+ mostly do
49
+ i += 1
50
+ end
51
+ end
52
+ assert i > 90000
53
+ end
54
+
34
55
  def test_99
35
56
  i = 0
36
57
  100000.times do
@@ -51,4 +72,29 @@ class SometimesTest < Test::Unit::TestCase
51
72
  assert i < 1100
52
73
  end
53
74
 
54
- end
75
+ def test_0
76
+ bool = true
77
+ 100000.times do
78
+ 0.percent_of_the_time do
79
+ bool = false
80
+ end
81
+ end
82
+ assert_equal true, bool
83
+ end
84
+
85
+ def test_never
86
+ bool = true
87
+ never do
88
+ bool = false
89
+ end
90
+ assert_equal true, bool
91
+ end
92
+
93
+ def test_always
94
+ bool = false
95
+ always do
96
+ bool = true
97
+ end
98
+ assert_equal true, bool
99
+ end
100
+ end
metadata CHANGED
@@ -1,15 +1,43 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sometimes
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.3
4
+ version: 1.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Sudara
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-06-30 00:00:00.000000000 Z
12
- dependencies: []
11
+ date: 2021-02-12 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: rake
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ">="
18
+ - !ruby/object:Gem::Version
19
+ version: '0'
20
+ type: :development
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ">="
25
+ - !ruby/object:Gem::Version
26
+ version: '0'
27
+ - !ruby/object:Gem::Dependency
28
+ name: test-unit
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ">="
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
13
41
  description: Be random. Be unpredictable. But only sometimes
14
42
  email:
15
43
  - sudara@alonetone.com
@@ -17,6 +45,7 @@ executables: []
17
45
  extensions: []
18
46
  extra_rdoc_files: []
19
47
  files:
48
+ - ".github/workflows/rubyCI.yml"
20
49
  - ".gitignore"
21
50
  - Gemfile
22
51
  - LICENSE.txt
@@ -45,8 +74,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
45
74
  - !ruby/object:Gem::Version
46
75
  version: '0'
47
76
  requirements: []
48
- rubyforge_project:
49
- rubygems_version: 2.6.11
77
+ rubygems_version: 3.1.2
50
78
  signing_key:
51
79
  specification_version: 4
52
80
  summary: Be random. Be unpredictable. But only sometimes