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 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 RandomSass
9
- # Your code goes here...
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
+
@@ -1,3 +1,3 @@
1
1
  module RandomSass
2
- VERSION = "0.0.1"
2
+ VERSION = "0.0.2"
3
3
  end
data/random_sass.gemspec CHANGED
@@ -5,7 +5,7 @@ require 'random_sass/version'
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  # Release Specific Information
8
- s.version = RandomSass::VERSION
8
+ s.version = RandomSass::VERSION+Time.new.strftime(".%Y%m%d%H%M")
9
9
 
10
10
  # Gem Details
11
11
  s.name = "random_sass"
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.1
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-10-30 00:00:00.000000000 Z
12
+ date: 2012-11-01 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: sass