random_sass 0.0.1 → 0.0.2.201211010036
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.
- data/Rakefile +1 -1
- data/lib/random_sass.rb +54 -2
- data/lib/random_sass/version.rb +1 -1
- data/random_sass.gemspec +1 -1
- metadata +2 -2
data/Rakefile
CHANGED
@@ -1 +1 @@
|
|
1
|
-
require "bundler/gem_tasks"
|
1
|
+
require "bundler/gem_tasks"
|
data/lib/random_sass.rb
CHANGED
@@ -5,6 +5,58 @@ require "compass"
|
|
5
5
|
base_directory = File.join(File.dirname(__FILE__))
|
6
6
|
Compass::Frameworks.register('random_sass', :path => base_directory)
|
7
7
|
|
8
|
-
module
|
9
|
-
|
8
|
+
module Sass::Script::Functions
|
9
|
+
module RandomSass
|
10
|
+
|
11
|
+
# Returns a random number belonging to the set U(p_min,p_max)
|
12
|
+
def uniform(p_min,p_max)
|
13
|
+
|
14
|
+
assert_type p_min, :Number
|
15
|
+
assert_type p_max, :Number
|
16
|
+
assert_same_unit p_max, p_min
|
17
|
+
|
18
|
+
n_max = [p_max.value,p_min.value].max
|
19
|
+
n_min = [p_max.value,p_min.value].min
|
20
|
+
|
21
|
+
out_value = n_min + Random.rand(n_max-n_min)
|
22
|
+
|
23
|
+
Sass::Script::Number.new(out_value,p_max.numerator_units,p_max.denominator_units)
|
24
|
+
end
|
25
|
+
|
26
|
+
# Returns a random number belonging to the set N(p_mean,p_std)
|
27
|
+
def normal(p_mean,p_std)
|
28
|
+
assert_type p_mean, :Number
|
29
|
+
assert_unitless p_std
|
30
|
+
|
31
|
+
u = Random.rand(100000)/100000.0
|
32
|
+
v = Random.rand(100000)/100000.0
|
33
|
+
|
34
|
+
z = Math.sqrt(-2*Math.log(u)) * Math.cos(2*Math::PI*v)
|
35
|
+
|
36
|
+
out_value = p_std.value * z + p_mean.value
|
37
|
+
|
38
|
+
Sass::Script::Number.new(out_value,p_mean.numerator_units,p_mean.denominator_units)
|
39
|
+
end
|
40
|
+
|
41
|
+
# A couple of handy assert for type validation.
|
42
|
+
def assert_same_unit(value1, value2, name = nil)
|
43
|
+
return if value1.unit_str == value2.unit_str
|
44
|
+
err = "#{value1} has different units than #{value2}"
|
45
|
+
err = "$#{name}: " + err if name
|
46
|
+
raise ArgumentError.new(err)
|
47
|
+
end
|
48
|
+
|
49
|
+
def assert_unitless(value, name = nil)
|
50
|
+
assert_type value, :Number
|
51
|
+
|
52
|
+
return if value.unitless?
|
53
|
+
|
54
|
+
err = "#{value} is not unitless"
|
55
|
+
err = "$#{name}: " + err if name
|
56
|
+
raise ArgumentError.new(err)
|
57
|
+
end
|
58
|
+
end
|
59
|
+
|
60
|
+
include RandomSass
|
10
61
|
end
|
62
|
+
|
data/lib/random_sass/version.rb
CHANGED
data/random_sass.gemspec
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: random_sass
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.2.201211010036
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-
|
12
|
+
date: 2012-11-01 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: sass
|