AnnieNumbers 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.
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: 3cc99642afb45a50f56893bda1972576de6a769a2ff6614c1f2b57e4a9d8b002
4
+ data.tar.gz: d5ece46338730dd5e7f97decac14111f41db0648a2fe6675f02f93eb33885661
5
+ SHA512:
6
+ metadata.gz: 29147e3427465734d83f3f5dbe63b946418eeb0d9cd9e5bc92c29ddf93ab650d845798514bb1b1e530ab5d8c7323635412cde88fc83a65a29ca91a9ffec8240f
7
+ data.tar.gz: 42fdc2c9ecfbcc9a464b5309e558e429ba28ade37f7da7c5797d68fc431427db374830133a41f9d848ea9b20cb781a9c939c3fbcb69951dea5cdb825839293f5
@@ -0,0 +1,6 @@
1
+ require "AnnieNumbers/version"
2
+
3
+ module AnnieNumbers
4
+ class Error < StandardError; end
5
+ load "AnnieNumbers/IntegerMonkeyPatch.rb"
6
+ end
@@ -0,0 +1,88 @@
1
+ # MonkeyPatch Integers
2
+ class Integer
3
+ # #triangular? -> boolean
4
+ #
5
+ # Returns whether the number is triangular
6
+ #
7
+ # 1.triangular? #=> true
8
+ # 4.triangular? #=> false
9
+ # 24.triangular? #=> true
10
+ def triangular?
11
+ i = 1 # create starting number
12
+ while true
13
+ val = (i*(i+1))/2 # create the triangular number to base of i
14
+ if val == self
15
+ return true
16
+ end
17
+ if val > self
18
+ return false
19
+ end
20
+ i += 1
21
+ end
22
+ end
23
+
24
+ # Integer.triangular? -> boolean
25
+ #
26
+ # Returns whether the number is triangular
27
+ #
28
+ # Integer.triangular?(1) #=> true
29
+ # Integer.triangular?(2) #=> false
30
+ # Integer.triangular?(24) #=> true
31
+ def self.triangular?(n)
32
+ n = n.to_i
33
+ i = 1 # create starting number
34
+ while true
35
+ val = (i*(i+1))/2 # create the triangular number to base of i
36
+ if val == n
37
+ return true
38
+ end
39
+ if val > n
40
+ return false
41
+ end
42
+ i += 1
43
+ end
44
+ end
45
+
46
+ # Integer.square? -> boolean
47
+ #
48
+ # Returns whether the number is a square number
49
+ #
50
+ # 1.square? #=> true
51
+ # 8.square? #=> false
52
+ # 36.square? #=> true
53
+ def square?
54
+ i = 1 # create starting number
55
+ while true
56
+ val = i*i # create the square number of i
57
+ if val == self
58
+ return true
59
+ end
60
+ if val > self
61
+ return false
62
+ end
63
+ i += 1
64
+ end
65
+ end
66
+
67
+ # Integer.square? -> boolean
68
+ #
69
+ # Returns whether the number is a square number
70
+ #
71
+ # Integer.square?(1) #=> true
72
+ # Integer.square?(8) #=> false
73
+ # Integer.square?(36) #=> true
74
+ def self.square?(n)
75
+ n = n.to_i
76
+ i = 1 # create starting number
77
+ while true
78
+ val = i*i # create the square number of i
79
+ if val == n
80
+ return true
81
+ end
82
+ if val > n
83
+ return false
84
+ end
85
+ i += 1
86
+ end
87
+ end
88
+ end
@@ -0,0 +1,3 @@
1
+ module AnnieNumbers
2
+ VERSION = "0.1.0"
3
+ end
metadata ADDED
@@ -0,0 +1,87 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: AnnieNumbers
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ platform: ruby
6
+ authors:
7
+ - trueFireblade
8
+ autorequire:
9
+ bindir: exe
10
+ cert_chain: []
11
+ date: 2019-11-24 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: bundler
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '2.0'
20
+ type: :development
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '2.0'
27
+ - !ruby/object:Gem::Dependency
28
+ name: rake
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: '10.0'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: '10.0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: rspec
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: '3.0'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: '3.0'
55
+ description:
56
+ email:
57
+ executables: []
58
+ extensions: []
59
+ extra_rdoc_files: []
60
+ files:
61
+ - lib/AnnieNumbers.rb
62
+ - lib/AnnieNumbers/IntegerMonkeyPatch.rb
63
+ - lib/AnnieNumbers/version.rb
64
+ homepage: https://rubygems.org/gems/AnnieNumbers
65
+ licenses:
66
+ - MIT
67
+ metadata: {}
68
+ post_install_message:
69
+ rdoc_options: []
70
+ require_paths:
71
+ - lib
72
+ required_ruby_version: !ruby/object:Gem::Requirement
73
+ requirements:
74
+ - - ">="
75
+ - !ruby/object:Gem::Version
76
+ version: '0'
77
+ required_rubygems_version: !ruby/object:Gem::Requirement
78
+ requirements:
79
+ - - ">="
80
+ - !ruby/object:Gem::Version
81
+ version: '0'
82
+ requirements: []
83
+ rubygems_version: 3.0.3
84
+ signing_key:
85
+ specification_version: 4
86
+ summary: Some stuff with numbers
87
+ test_files: []