random_sass 0.0.1 → 0.0.2.201211010036

Sign up to get free protection for your applications and to get access to all the features.
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