analog 0.3 → 0.4.1
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 +4 -4
- data/LICENSE +1 -1
- data/README.md +22 -16
- data/lib/scale.rb +7 -3
- data/test/core_ext_test.rb +3 -3
- data/test/destination_test.rb +1 -2
- data/test/helper.rb +2 -2
- data/test/scale_test.rb +3 -3
- data/test/scheme_test.rb +1 -1
- data/test/source_test.rb +1 -1
- metadata +48 -10
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: a6ecbb065dc457e1c7083a6fb9dccd5009803cc9
|
4
|
+
data.tar.gz: 1ae46aeb485d2b1cd55cfca16215461485ea5ee3
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 584c06d0f46fa1413f2a7388189b0d0eeed82f57e363f042d0abe1711f7847aaf46473c4b97ef765ebb198440cb3f3fb9ea96953bb04d1ecaae8c7f97c928074
|
7
|
+
data.tar.gz: 27172f45799a415d540608514248a7d753a20d9064cdd5e040f81a613920ef35846d409ce4f597c7d283a020c178aa0ef654b9c513ce47877a08b3d9f7035ed9
|
data/LICENSE
CHANGED
data/README.md
CHANGED
@@ -6,20 +6,18 @@ A Ruby helper for scaling numbers.
|
|
6
6
|
|
7
7
|
Provides a quick way to scale a number from one range or set to another.
|
8
8
|
|
9
|
-
This is useful for converting data from raw values to a range used for display or other kinds of output.
|
10
|
-
|
11
|
-
I use it all the time in music programming, converting OSC messages to musical notes and things like that and figure it might be useful to others.
|
12
|
-
|
13
9
|
A simple example is:
|
14
10
|
|
15
|
-
You
|
11
|
+
You'd like to plot a point on a 500px graph using a data that lies in the 0..1 range.
|
16
12
|
|
17
13
|
```ruby
|
18
|
-
Scale.transform(0.5).
|
14
|
+
Scale.transform(0.5).from(0..1).to(0..500)
|
19
15
|
=> 250
|
20
16
|
```
|
21
17
|
|
22
|
-
|
18
|
+
It's commonly useful for preparing data to be consumed by generalized APIs and communication protocols.
|
19
|
+
|
20
|
+
Personally, I've used it in graphics, audio and for converting music data between OSC and MIDI.
|
23
21
|
|
24
22
|
#### Usage
|
25
23
|
|
@@ -27,21 +25,30 @@ Please note: I am not a Math Person. If I've named any concepts here poorly, [p
|
|
27
25
|
require "scale"
|
28
26
|
```
|
29
27
|
|
30
|
-
This example will scale a number down by 1/10th
|
28
|
+
This example will scale a number down by 1/10th
|
31
29
|
|
32
30
|
```ruby
|
33
|
-
Scale.transform(22).
|
31
|
+
Scale.transform(22).from(0..150).to(0..15)
|
34
32
|
=> 2
|
35
33
|
|
36
34
|
```
|
37
35
|
|
38
|
-
|
36
|
+
Output a float by using a float in the destination range
|
37
|
+
|
38
|
+
|
39
39
|
```ruby
|
40
|
-
Scale.transform(
|
41
|
-
=>
|
40
|
+
Scale.transform(22).from(0..150).to(0..15.0)
|
41
|
+
=> 2.2
|
42
42
|
|
43
|
-
|
43
|
+
```
|
44
|
+
|
45
|
+
Use Arrays and Sets
|
46
|
+
```ruby
|
47
|
+
Scale.transform(0.40).from(0..1).to([0, 2, 4, 8, 12, 16, 32, 64, 128, 512])
|
44
48
|
=> 8
|
49
|
+
|
50
|
+
Scale.transform(8).from(Set.new([0, 2, 4, 8, 16, 64])).to(0..10)
|
51
|
+
=> 6
|
45
52
|
```
|
46
53
|
|
47
54
|
See the [examples](https://github.com/arirusso/analog/tree/master/examples) for more
|
@@ -62,7 +69,7 @@ See the [core_ext example](https://github.com/arirusso/analog/blob/master/exampl
|
|
62
69
|
#### Installation
|
63
70
|
|
64
71
|
gem install analog
|
65
|
-
|
72
|
+
|
66
73
|
or with Bundler
|
67
74
|
|
68
75
|
gem "analog"
|
@@ -70,5 +77,4 @@ or with Bundler
|
|
70
77
|
#### License
|
71
78
|
|
72
79
|
Licensed under Apache 2.0, See the file LICENSE
|
73
|
-
Copyright (c) 2014 [Ari Russo](http://arirusso.com)
|
74
|
-
|
80
|
+
Copyright (c) 2014-2014 [Ari Russo](http://arirusso.com)
|
data/lib/scale.rb
CHANGED
@@ -1,11 +1,15 @@
|
|
1
|
-
#
|
1
|
+
# Analog
|
2
|
+
# Helper for scaling numbers
|
3
|
+
# (c) 2014-2015 Ari Russo
|
4
|
+
# Licensed under Apache 2.0
|
5
|
+
#
|
2
6
|
require "scale/destination"
|
3
7
|
require "scale/scheme"
|
4
8
|
require "scale/source"
|
5
9
|
|
6
|
-
#
|
10
|
+
# Helper for scaling numbers
|
7
11
|
module Scale
|
8
12
|
|
9
|
-
VERSION = "0.
|
13
|
+
VERSION = "0.4.1"
|
10
14
|
|
11
15
|
end
|
data/test/core_ext_test.rb
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
require "helper"
|
2
2
|
|
3
|
-
class CoreExtTest < Test
|
3
|
+
class CoreExtTest < Minitest::Test
|
4
4
|
|
5
5
|
context "Numeric" do
|
6
6
|
|
@@ -36,7 +36,7 @@ class CoreExtTest < Test::Unit::TestCase
|
|
36
36
|
|
37
37
|
should "scale neg/neg into neg/pos" do
|
38
38
|
output = -14.scaled_using(-24..-12, -3..3.0)
|
39
|
-
assert_equal(2, output)
|
39
|
+
assert_equal(2, output)
|
40
40
|
end
|
41
41
|
|
42
42
|
should "scale neg/neg to another neg/neg" do
|
@@ -60,7 +60,7 @@ class CoreExtTest < Test::Unit::TestCase
|
|
60
60
|
|
61
61
|
should "output a float when specified" do
|
62
62
|
output = 12.scaled_to(0..1.0).from(0..120)
|
63
|
-
assert_equal(0.10, output)
|
63
|
+
assert_equal(0.10, output)
|
64
64
|
end
|
65
65
|
|
66
66
|
end
|
data/test/destination_test.rb
CHANGED
data/test/helper.rb
CHANGED
data/test/scale_test.rb
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
require "helper"
|
2
2
|
|
3
|
-
class ScaleTest < Test
|
3
|
+
class ScaleTest < Minitest::Test
|
4
4
|
|
5
5
|
context "Scale" do
|
6
6
|
|
@@ -28,7 +28,7 @@ class ScaleTest < Test::Unit::TestCase
|
|
28
28
|
|
29
29
|
should "scale neg/neg into neg/pos" do
|
30
30
|
output = Scale.transform(-14).using(-24..-12, -3..3.0)
|
31
|
-
assert_equal(2, output)
|
31
|
+
assert_equal(2, output)
|
32
32
|
end
|
33
33
|
|
34
34
|
should "scale neg/neg to another neg/neg" do
|
@@ -53,7 +53,7 @@ class ScaleTest < Test::Unit::TestCase
|
|
53
53
|
|
54
54
|
should "output a float when specified" do
|
55
55
|
output = Scale.transform(12).using(0..120, 0..1.0)
|
56
|
-
assert_equal(0.10, output)
|
56
|
+
assert_equal(0.10, output)
|
57
57
|
end
|
58
58
|
|
59
59
|
should "take an ascending array as the destination" do
|
data/test/scheme_test.rb
CHANGED
data/test/source_test.rb
CHANGED
metadata
CHANGED
@@ -1,58 +1,96 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: analog
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 0.4.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ari Russo
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2015-01-03 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: minitest
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - "~>"
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '5.5'
|
20
|
+
- - ">="
|
21
|
+
- !ruby/object:Gem::Version
|
22
|
+
version: 5.5.0
|
23
|
+
type: :development
|
24
|
+
prerelease: false
|
25
|
+
version_requirements: !ruby/object:Gem::Requirement
|
26
|
+
requirements:
|
27
|
+
- - "~>"
|
28
|
+
- !ruby/object:Gem::Version
|
29
|
+
version: '5.5'
|
30
|
+
- - ">="
|
31
|
+
- !ruby/object:Gem::Version
|
32
|
+
version: 5.5.0
|
13
33
|
- !ruby/object:Gem::Dependency
|
14
34
|
name: mocha
|
15
35
|
requirement: !ruby/object:Gem::Requirement
|
16
36
|
requirements:
|
17
37
|
- - "~>"
|
18
38
|
- !ruby/object:Gem::Version
|
19
|
-
version: '
|
39
|
+
version: '1.1'
|
40
|
+
- - ">="
|
41
|
+
- !ruby/object:Gem::Version
|
42
|
+
version: 1.1.0
|
20
43
|
type: :development
|
21
44
|
prerelease: false
|
22
45
|
version_requirements: !ruby/object:Gem::Requirement
|
23
46
|
requirements:
|
24
47
|
- - "~>"
|
25
48
|
- !ruby/object:Gem::Version
|
26
|
-
version: '
|
49
|
+
version: '1.1'
|
50
|
+
- - ">="
|
51
|
+
- !ruby/object:Gem::Version
|
52
|
+
version: 1.1.0
|
27
53
|
- !ruby/object:Gem::Dependency
|
28
54
|
name: rake
|
29
55
|
requirement: !ruby/object:Gem::Requirement
|
30
56
|
requirements:
|
31
57
|
- - "~>"
|
32
58
|
- !ruby/object:Gem::Version
|
33
|
-
version: '
|
59
|
+
version: '10.4'
|
60
|
+
- - ">="
|
61
|
+
- !ruby/object:Gem::Version
|
62
|
+
version: 10.4.2
|
34
63
|
type: :development
|
35
64
|
prerelease: false
|
36
65
|
version_requirements: !ruby/object:Gem::Requirement
|
37
66
|
requirements:
|
38
67
|
- - "~>"
|
39
68
|
- !ruby/object:Gem::Version
|
40
|
-
version: '
|
69
|
+
version: '10.4'
|
70
|
+
- - ">="
|
71
|
+
- !ruby/object:Gem::Version
|
72
|
+
version: 10.4.2
|
41
73
|
- !ruby/object:Gem::Dependency
|
42
74
|
name: shoulda-context
|
43
75
|
requirement: !ruby/object:Gem::Requirement
|
44
76
|
requirements:
|
45
77
|
- - "~>"
|
46
78
|
- !ruby/object:Gem::Version
|
47
|
-
version: '
|
79
|
+
version: '1.2'
|
80
|
+
- - ">="
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: 1.2.1
|
48
83
|
type: :development
|
49
84
|
prerelease: false
|
50
85
|
version_requirements: !ruby/object:Gem::Requirement
|
51
86
|
requirements:
|
52
87
|
- - "~>"
|
53
88
|
- !ruby/object:Gem::Version
|
54
|
-
version: '
|
55
|
-
|
89
|
+
version: '1.2'
|
90
|
+
- - ">="
|
91
|
+
- !ruby/object:Gem::Version
|
92
|
+
version: 1.2.1
|
93
|
+
description: Scale a number from one range or set to another
|
56
94
|
email:
|
57
95
|
- ari.russo@gmail.com
|
58
96
|
executables: []
|
@@ -95,7 +133,7 @@ rubyforge_project: analog
|
|
95
133
|
rubygems_version: 2.2.2
|
96
134
|
signing_key:
|
97
135
|
specification_version: 4
|
98
|
-
summary:
|
136
|
+
summary: Helper for scaling numbers
|
99
137
|
test_files:
|
100
138
|
- test/core_ext_test.rb
|
101
139
|
- test/destination_test.rb
|