angles 0.0.2 → 0.0.3
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 +7 -0
- data/.idea/angles.iml +41 -6
- data/.idea/runConfigurations/gem_install_angles.xml +2 -2
- data/angles-0.0.3.gem +0 -0
- data/lib/angles.rb +51 -33
- data/lib/angles/version.rb +1 -1
- data/test/test.rb +1 -0
- metadata +13 -18
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 03ce70cedcd547f110671cd2d7d64c060e9d03cb
|
4
|
+
data.tar.gz: 1491700361088648a564710e2cbe821ef045d62f
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 5067d7792a0077d6b4fed242160b60721a53d838b2b09bcc2aa4e4dbbc525775f17e6a94309400e6c4e0d5a1102577a213d6cee2779c7e199cdf159170b6e080
|
7
|
+
data.tar.gz: 9edfb312afc60b8c22c5a64d4514b589f00ccb8ac7ef0c4ec3011598e71ab276bf1ebc66b1651494cd7b1cd6d663bfbfd4329d07c6f0999438e0c4833d667c8e
|
data/.idea/angles.iml
CHANGED
@@ -24,8 +24,8 @@
|
|
24
24
|
<EXTENSION ID="org.jetbrains.plugins.ruby.motion.run.MotionSimulatorRunExtension" />
|
25
25
|
<COMMAND_CONFIG_SETTINGS_ID NAME="GEM_NAME" VALUE="bundler" />
|
26
26
|
<COMMAND_CONFIG_SETTINGS_ID NAME="EXECUTABLE_NAME" VALUE="gem" />
|
27
|
-
<COMMAND_CONFIG_SETTINGS_ID NAME="EXECUTABLE_ARGS" VALUE="install ./angles
|
28
|
-
<COMMAND_CONFIG_SETTINGS_ID NAME="WORKING_DIR" VALUE="install ./angles
|
27
|
+
<COMMAND_CONFIG_SETTINGS_ID NAME="EXECUTABLE_ARGS" VALUE="install ./angles-*.gem" />
|
28
|
+
<COMMAND_CONFIG_SETTINGS_ID NAME="WORKING_DIR" VALUE="install ./angles-*.gem" />
|
29
29
|
<RunnerSettings RunnerId="RubyRunner" />
|
30
30
|
<ConfigurationWrapper RunnerId="RubyRunner" />
|
31
31
|
<method />
|
@@ -49,15 +49,50 @@
|
|
49
49
|
<ConfigurationWrapper RunnerId="RubyRunner" />
|
50
50
|
<method />
|
51
51
|
</configuration>
|
52
|
+
<configuration default="false" name="angles" type="RubyRunConfigurationType" factoryName="Ruby" temporary="true">
|
53
|
+
<module name="angles" />
|
54
|
+
<RUBY_RUN_CONFIG NAME="RUBY_ARGS" VALUE="-e $stdout.sync=true;$stderr.sync=true;load($0=ARGV.shift)" />
|
55
|
+
<RUBY_RUN_CONFIG NAME="WORK DIR" VALUE="$MODULE_DIR$/lib" />
|
56
|
+
<RUBY_RUN_CONFIG NAME="SHOULD_USE_SDK" VALUE="false" />
|
57
|
+
<RUBY_RUN_CONFIG NAME="ALTERN_SDK_NAME" VALUE="" />
|
58
|
+
<RUBY_RUN_CONFIG NAME="myPassParentEnvs" VALUE="true" />
|
59
|
+
<envs />
|
60
|
+
<EXTENSION ID="BundlerRunConfigurationExtension" bundleExecEnabled="true" />
|
61
|
+
<EXTENSION ID="JRubyRunConfigurationExtension" NailgunExecEnabled="false" />
|
62
|
+
<EXTENSION ID="RubyCoverageRunConfigurationExtension" enabled="false" sample_coverage="true" track_test_folders="true" runner="rcov" />
|
63
|
+
<EXTENSION ID="org.jetbrains.plugins.ruby.motion.run.MotionSimulatorRunExtension" />
|
64
|
+
<RUBY_RUN_CONFIG NAME="SCRIPT_PATH" VALUE="$MODULE_DIR$/lib/angles.rb" />
|
65
|
+
<RUBY_RUN_CONFIG NAME="SCRIPT_ARGS" VALUE="" />
|
66
|
+
<RunnerSettings RunnerId="RubyRunner" />
|
67
|
+
<ConfigurationWrapper RunnerId="RubyRunner" />
|
68
|
+
<method />
|
69
|
+
</configuration>
|
70
|
+
<configuration default="false" name="test" type="RubyRunConfigurationType" factoryName="Ruby" temporary="true">
|
71
|
+
<module name="angles" />
|
72
|
+
<RUBY_RUN_CONFIG NAME="RUBY_ARGS" VALUE="-e $stdout.sync=true;$stderr.sync=true;load($0=ARGV.shift)" />
|
73
|
+
<RUBY_RUN_CONFIG NAME="WORK DIR" VALUE="$MODULE_DIR$/test" />
|
74
|
+
<RUBY_RUN_CONFIG NAME="SHOULD_USE_SDK" VALUE="false" />
|
75
|
+
<RUBY_RUN_CONFIG NAME="ALTERN_SDK_NAME" VALUE="" />
|
76
|
+
<RUBY_RUN_CONFIG NAME="myPassParentEnvs" VALUE="true" />
|
77
|
+
<envs />
|
78
|
+
<EXTENSION ID="BundlerRunConfigurationExtension" bundleExecEnabled="true" />
|
79
|
+
<EXTENSION ID="JRubyRunConfigurationExtension" NailgunExecEnabled="false" />
|
80
|
+
<EXTENSION ID="RubyCoverageRunConfigurationExtension" enabled="false" sample_coverage="true" track_test_folders="true" runner="rcov" />
|
81
|
+
<EXTENSION ID="org.jetbrains.plugins.ruby.motion.run.MotionSimulatorRunExtension" />
|
82
|
+
<RUBY_RUN_CONFIG NAME="SCRIPT_PATH" VALUE="$MODULE_DIR$/test/test.rb" />
|
83
|
+
<RUBY_RUN_CONFIG NAME="SCRIPT_ARGS" VALUE="" />
|
84
|
+
<RunnerSettings RunnerId="RubyRunner" />
|
85
|
+
<ConfigurationWrapper RunnerId="RubyRunner" />
|
86
|
+
<method />
|
87
|
+
</configuration>
|
52
88
|
</component>
|
53
89
|
<component name="NewModuleRootManager">
|
54
90
|
<content url="file://$MODULE_DIR$">
|
55
91
|
<sourceFolder url="file://$MODULE_DIR$/test" isTestSource="true" />
|
56
92
|
</content>
|
57
|
-
<orderEntry type="
|
93
|
+
<orderEntry type="jdk" jdkName="ruby-2.0.0-p598" jdkType="RUBY_SDK" />
|
58
94
|
<orderEntry type="sourceFolder" forTests="false" />
|
59
|
-
<orderEntry type="library" scope="PROVIDED" name="bundler (v1.
|
60
|
-
<orderEntry type="library" scope="PROVIDED" name="
|
61
|
-
<orderEntry type="library" scope="PROVIDED" name="ratapprox (v0.0.1, ruby-1.9.3-p545) [gem]" level="application" />
|
95
|
+
<orderEntry type="library" scope="PROVIDED" name="bundler (v1.8.4, ruby-2.0.0-p598) [gem]" level="application" />
|
96
|
+
<orderEntry type="library" scope="PROVIDED" name="ratapprox (v0.0.1, ruby-2.0.0-p598) [gem]" level="application" />
|
62
97
|
</component>
|
63
98
|
</module>
|
@@ -13,8 +13,8 @@
|
|
13
13
|
<EXTENSION ID="org.jetbrains.plugins.ruby.motion.run.MotionSimulatorRunExtension" />
|
14
14
|
<COMMAND_CONFIG_SETTINGS_ID NAME="GEM_NAME" VALUE="bundler" />
|
15
15
|
<COMMAND_CONFIG_SETTINGS_ID NAME="EXECUTABLE_NAME" VALUE="gem" />
|
16
|
-
<COMMAND_CONFIG_SETTINGS_ID NAME="EXECUTABLE_ARGS" VALUE="install ./angles
|
17
|
-
<COMMAND_CONFIG_SETTINGS_ID NAME="WORKING_DIR" VALUE="install ./angles
|
16
|
+
<COMMAND_CONFIG_SETTINGS_ID NAME="EXECUTABLE_ARGS" VALUE="install ./angles-*.gem" />
|
17
|
+
<COMMAND_CONFIG_SETTINGS_ID NAME="WORKING_DIR" VALUE="install ./angles-*.gem" />
|
18
18
|
<RunnerSettings RunnerId="RubyRunner" />
|
19
19
|
<ConfigurationWrapper RunnerId="RubyRunner" />
|
20
20
|
<method />
|
data/angles-0.0.3.gem
ADDED
Binary file
|
data/lib/angles.rb
CHANGED
@@ -3,12 +3,20 @@ require "angles/version"
|
|
3
3
|
require 'ratapprox'
|
4
4
|
|
5
5
|
class Angle
|
6
|
+
# make class comparable
|
7
|
+
include Comparable
|
8
|
+
|
9
|
+
# make mode and display attributes mutable
|
10
|
+
attr_reader :angle
|
11
|
+
attr_accessor :mode, :display
|
12
|
+
|
6
13
|
# constants
|
7
14
|
@@PI = Math::PI
|
8
15
|
@@TWO_PI = Math::PI * 2
|
9
16
|
@@PI_SYMBOL = "\u03c0"
|
10
17
|
@@DEGREE_SYMBOL = "\u00b0"
|
11
18
|
@@SECONDS_DECIMAL_PLACES = 2
|
19
|
+
@@ROUND_SECONDS = 10
|
12
20
|
@@ROUND_TRIG = 12
|
13
21
|
|
14
22
|
# initializers
|
@@ -35,53 +43,65 @@ class Angle
|
|
35
43
|
self
|
36
44
|
end
|
37
45
|
|
38
|
-
# getters
|
39
|
-
|
40
|
-
def mode
|
41
|
-
@mode
|
42
|
-
end
|
43
|
-
|
44
|
-
def display
|
45
|
-
@display
|
46
|
-
end
|
47
|
-
|
48
|
-
def set_display(display)
|
49
|
-
@display = display
|
50
|
-
end
|
51
|
-
|
52
|
-
def angle
|
53
|
-
@angle
|
54
|
-
end
|
46
|
+
# getters
|
55
47
|
|
56
48
|
def radians
|
57
49
|
self.angle
|
58
50
|
end
|
59
51
|
|
52
|
+
def radians=(radians)
|
53
|
+
self.from_radians radians
|
54
|
+
end
|
55
|
+
|
60
56
|
def degrees
|
61
57
|
Angle.radians_to_degrees(self.radians).to_f
|
62
58
|
end
|
63
59
|
|
60
|
+
def degrees=(degrees)
|
61
|
+
self.from_degrees degrees
|
62
|
+
end
|
63
|
+
|
64
64
|
def d
|
65
65
|
self.degrees.floor
|
66
66
|
end
|
67
67
|
|
68
|
+
def d=(degrees)
|
69
|
+
self.degrees = self.degrees - self.d + degrees
|
70
|
+
end
|
71
|
+
|
68
72
|
def minutes
|
69
73
|
self.degrees * 60
|
70
74
|
end
|
71
75
|
|
76
|
+
def minutes=(minutes)
|
77
|
+
self.from_degrees minutes.to_f / 60
|
78
|
+
end
|
79
|
+
|
72
80
|
def m
|
73
81
|
self.minutes.floor % 60
|
74
82
|
end
|
75
83
|
|
84
|
+
def m=(minutes)
|
85
|
+
self.minutes = self.minutes - self.m + minutes
|
86
|
+
end
|
87
|
+
|
76
88
|
def seconds
|
77
|
-
self.minutes * 60
|
89
|
+
(self.minutes * 60).round @@ROUND_SECONDS
|
90
|
+
end
|
91
|
+
|
92
|
+
def seconds=(seconds)
|
93
|
+
self.from_degrees seconds.to_f / 3600
|
78
94
|
end
|
79
95
|
|
80
96
|
def s
|
81
|
-
self.seconds
|
97
|
+
(self.seconds % 60).round @@ROUND_SECONDS
|
82
98
|
end
|
83
99
|
|
84
|
-
|
100
|
+
def s=(seconds)
|
101
|
+
self.seconds = self.seconds - self.s + seconds
|
102
|
+
end
|
103
|
+
|
104
|
+
# normalize a value of degrees to [0, 360)
|
85
105
|
def self.normalize_degrees(degrees)
|
86
106
|
degrees -= 360 while degrees >= 360
|
87
107
|
degrees += 360 while degrees < 0
|
@@ -288,7 +308,7 @@ class Angle
|
|
288
308
|
end
|
289
309
|
|
290
310
|
def obtuse?
|
291
|
-
d = self.
|
311
|
+
d = self.degrees
|
292
312
|
d > 90 and d < 180
|
293
313
|
end
|
294
314
|
|
@@ -421,28 +441,26 @@ class Angle
|
|
421
441
|
# operator overloads
|
422
442
|
|
423
443
|
def +(other_angle)
|
424
|
-
|
425
|
-
new_angle.from_radians(Angle.normalize_radians(new_angle.angle + other_angle.angle))
|
426
|
-
new_angle
|
444
|
+
self.clone.from_radians(Angle.normalize_radians(self.radians + other_angle.angle))
|
427
445
|
end
|
428
446
|
|
429
447
|
def -(other_angle)
|
430
|
-
|
431
|
-
new_angle.from_radians(Angle.normalize_radians(new_angle.angle - other_angle.angle))
|
432
|
-
new_angle
|
448
|
+
self.clone.from_radians(Angle.normalize_radians(self.radians - other_angle.angle))
|
433
449
|
end
|
434
450
|
|
435
451
|
def *(number)
|
436
|
-
|
437
|
-
new_angle.from_radians(Angle.normalize_radians(new_angle.angle * number))
|
438
|
-
new_angle
|
452
|
+
self.clone.from_radians(Angle.normalize_radians(self.radians * number))
|
439
453
|
end
|
440
454
|
|
441
455
|
def /(number)
|
442
|
-
|
443
|
-
|
444
|
-
|
456
|
+
self.clone.from_radians(Angle.normalize_radians(self.radians / number))
|
457
|
+
end
|
458
|
+
|
459
|
+
# add comparison operators
|
460
|
+
def <=>(other_angle)
|
461
|
+
self.angle <=> other_angle.angle
|
445
462
|
end
|
463
|
+
|
446
464
|
end
|
447
465
|
|
448
466
|
def degrees(degrees)
|
data/lib/angles/version.rb
CHANGED
data/test/test.rb
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
require_relative '../lib/angles.rb'
|
metadata
CHANGED
@@ -1,20 +1,18 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: angles
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
5
|
-
prerelease:
|
4
|
+
version: 0.0.3
|
6
5
|
platform: ruby
|
7
6
|
authors:
|
8
7
|
- Gregory H. Halverson
|
9
8
|
autorequire:
|
10
9
|
bindir: bin
|
11
10
|
cert_chain: []
|
12
|
-
date: 2015-03-
|
11
|
+
date: 2015-03-08 00:00:00.000000000 Z
|
13
12
|
dependencies:
|
14
13
|
- !ruby/object:Gem::Dependency
|
15
14
|
name: bundler
|
16
15
|
requirement: !ruby/object:Gem::Requirement
|
17
|
-
none: false
|
18
16
|
requirements:
|
19
17
|
- - ~>
|
20
18
|
- !ruby/object:Gem::Version
|
@@ -22,7 +20,6 @@ dependencies:
|
|
22
20
|
type: :development
|
23
21
|
prerelease: false
|
24
22
|
version_requirements: !ruby/object:Gem::Requirement
|
25
|
-
none: false
|
26
23
|
requirements:
|
27
24
|
- - ~>
|
28
25
|
- !ruby/object:Gem::Version
|
@@ -30,7 +27,6 @@ dependencies:
|
|
30
27
|
- !ruby/object:Gem::Dependency
|
31
28
|
name: rake
|
32
29
|
requirement: !ruby/object:Gem::Requirement
|
33
|
-
none: false
|
34
30
|
requirements:
|
35
31
|
- - ~>
|
36
32
|
- !ruby/object:Gem::Version
|
@@ -38,7 +34,6 @@ dependencies:
|
|
38
34
|
type: :development
|
39
35
|
prerelease: false
|
40
36
|
version_requirements: !ruby/object:Gem::Requirement
|
41
|
-
none: false
|
42
37
|
requirements:
|
43
38
|
- - ~>
|
44
39
|
- !ruby/object:Gem::Version
|
@@ -46,17 +41,15 @@ dependencies:
|
|
46
41
|
- !ruby/object:Gem::Dependency
|
47
42
|
name: ratapprox
|
48
43
|
requirement: !ruby/object:Gem::Requirement
|
49
|
-
none: false
|
50
44
|
requirements:
|
51
|
-
- -
|
45
|
+
- - '>='
|
52
46
|
- !ruby/object:Gem::Version
|
53
47
|
version: '0'
|
54
48
|
type: :development
|
55
49
|
prerelease: false
|
56
50
|
version_requirements: !ruby/object:Gem::Requirement
|
57
|
-
none: false
|
58
51
|
requirements:
|
59
|
-
- -
|
52
|
+
- - '>='
|
60
53
|
- !ruby/object:Gem::Version
|
61
54
|
version: '0'
|
62
55
|
description: Encapsulates angles in Ruby. Easily switch between degrees and radians.
|
@@ -80,32 +73,34 @@ files:
|
|
80
73
|
- LICENSE.txt
|
81
74
|
- README.md
|
82
75
|
- Rakefile
|
76
|
+
- angles-0.0.3.gem
|
83
77
|
- angles.gemspec
|
84
78
|
- lib/angles.rb
|
85
79
|
- lib/angles/version.rb
|
80
|
+
- test/test.rb
|
86
81
|
homepage: https://github.com/gregory-halverson/angles
|
87
82
|
licenses:
|
88
83
|
- MIT
|
84
|
+
metadata: {}
|
89
85
|
post_install_message:
|
90
86
|
rdoc_options: []
|
91
87
|
require_paths:
|
92
88
|
- lib
|
93
89
|
required_ruby_version: !ruby/object:Gem::Requirement
|
94
|
-
none: false
|
95
90
|
requirements:
|
96
|
-
- -
|
91
|
+
- - '>='
|
97
92
|
- !ruby/object:Gem::Version
|
98
93
|
version: '0'
|
99
94
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
100
|
-
none: false
|
101
95
|
requirements:
|
102
|
-
- -
|
96
|
+
- - '>='
|
103
97
|
- !ruby/object:Gem::Version
|
104
98
|
version: '0'
|
105
99
|
requirements: []
|
106
100
|
rubyforge_project:
|
107
|
-
rubygems_version:
|
101
|
+
rubygems_version: 2.0.15
|
108
102
|
signing_key:
|
109
|
-
specification_version:
|
103
|
+
specification_version: 4
|
110
104
|
summary: Angle class
|
111
|
-
test_files:
|
105
|
+
test_files:
|
106
|
+
- test/test.rb
|