rmthemegen 0.0.20 → 0.0.21

Sign up to get free protection for your applications and to get access to all the features.
@@ -59,6 +59,7 @@ class Color::RGB
59
59
  (self.b-rgb.b).abs)/3
60
60
  end
61
61
 
62
+ =begin
62
63
  #returns a random number distributed about a mean (in [0..1) )
63
64
  def next_gaussian(mean)
64
65
  begin
@@ -76,6 +77,21 @@ class Color::RGB
76
77
  # puts "next_gaussian: "+ y.to_s
77
78
  return y
78
79
  end
80
+ =end
81
+
82
+ #returns a random number distributed about a mean (in [0..1) )
83
+ #hopefully this algorithm delivers numbers more tightly clustered about their mean
84
+ def next_gaussian(mean)
85
+ y = (-(1.0/8.0)*(Math.log(rand)))
86
+ y = rand >= 0.5 ? y : -y
87
+ # so now y should be in [-0.5 .. 0.5]
88
+ y= y + mean
89
+ y= y > 1.0 ? 1.0 : y
90
+ y= y < 0.0 ? 0.0 : y
91
+ # puts "next_gaussian: "+ y.to_s
92
+
93
+ return y
94
+ end
79
95
 
80
96
  end
81
97
 
@@ -89,7 +89,7 @@ module RMThemeGen
89
89
 
90
90
  @backgroundcolor= randcolor( :shade_of_grey=>@background_grey, :max_bright=>@background_max_brightness)# "0"
91
91
 
92
-
92
+ reset_colorsets
93
93
  end #def initialize
94
94
 
95
95
 
@@ -113,11 +113,12 @@ module RMThemeGen
113
113
  end #8times
114
114
  @color_sets << @color_set
115
115
  } #rand*4times
116
-
117
116
  # @color_set = {:b => rand, :g=>rand, :r => rand}
118
117
  # @color_sets << @color_set
119
118
  # puts @color_sets.inspect
119
+ end
120
120
 
121
+ def clean_colorsets
121
122
  # trim each color set down to at most 2 colors
122
123
  if @color_sets.size > 0
123
124
  ncs = []
@@ -130,10 +131,10 @@ module RMThemeGen
130
131
  end
131
132
  @color_sets = ncs
132
133
  # puts "@color_sets "+@color_sets.to_s
133
- end
134
+ end
134
135
  end
135
136
 
136
- def clear_color_sets
137
+ def clear_colorsets
137
138
  @color_sets=[]
138
139
  end
139
140
 
@@ -173,12 +174,14 @@ module RMThemeGen
173
174
  df[:bg_rgb] = Color::RGB.from_html(df[:bg_rgb]) if df[:bg_rgb]
174
175
  color = brightok = contok = nil;
175
176
  cr=Color::RGB.new
176
- failsafe=10000
177
+ #failsafe should make sure the program never hangs trying to create
178
+ # a random color.
179
+ failsafe=20000
177
180
  usecolorsets = (!@color_sets.nil? && @color_sets != [])
178
- while (!color || !brightok || !contok ) do
181
+ while (!color || !brightok || !contok && failsafe > 0) do
179
182
  if df[:shade_of_grey] == true
180
183
  g = b = r = rand*256
181
- elsif usecolorsets && failsafe > 0
184
+ elsif usecolorsets && failsafe > 10000
182
185
  cs = @color_sets.shuffle[0]
183
186
  #puts "doing gaussian thing "+cs.inspect
184
187
  if cs.keys.include? :r then r = cr.next_gaussian( cs[:r])*256 else r = (df[:r] || rand*256)%256 end
@@ -201,7 +204,7 @@ module RMThemeGen
201
204
 
202
205
  #puts "brightok "+brightok.to_s
203
206
  failsafe -= 1
204
- if failsafe == 0 then puts "failsafe reached " end;
207
+ # if failsafe == 0 then puts "failsafe reached " end;
205
208
  end #while
206
209
  cn = color.html
207
210
  cn= cn.slice(1,cn.size)
@@ -342,7 +345,8 @@ module RMThemeGen
342
345
  f.close
343
346
  end
344
347
 
345
- def make_theme_file(outputdir = ENV["PWD"], bg_color_style=0)
348
+ # (output directory, bg_color_style, colorsets [])
349
+ def make_theme_file(outputdir = ENV["PWD"], bg_color_style=0, colorsets=[])
346
350
  #bg_color_style: 0 = blackish, 1 = whitish, 2 = any color
347
351
  defaults = {}
348
352
  defaults[:outputdir] = outputdir
@@ -350,9 +354,15 @@ module RMThemeGen
350
354
  opts = defaults
351
355
  @bg_color_style = opts[:bg_color_style]
352
356
  @background_grey = (opts[:bg_color_style] < 2) #whitish or blackish bg are both "grey"
353
-
354
- reset_colorsets
355
357
 
358
+ if colorsets.is_a?(Array) && colorsets.size > 0
359
+ @color_sets = colorsets
360
+ clean_colorsets
361
+ else
362
+ reset_colorsets
363
+ end
364
+
365
+ # puts "@color_sets: "+@color_sets.inspect
356
366
  case opts[:bg_color_style]
357
367
  when 0 #blackish background
358
368
  @background_min_brightness = 0.0
@@ -387,7 +397,6 @@ module RMThemeGen
387
397
  @outf.close
388
398
  return File.expand_path(@outf.path)
389
399
  end
390
-
391
400
 
392
401
  end #class
393
402
  end #module
@@ -1,3 +1,3 @@
1
1
  module Rmthemegen
2
- VERSION = "0.0.20"
2
+ VERSION = "0.0.21"
3
3
  end
data/rmthemegen.gemspec CHANGED
@@ -4,7 +4,7 @@ require "rmthemegen/version"
4
4
 
5
5
  Gem::Specification.new do |s|
6
6
  s.name = "rmthemegen"
7
- s.version = "0.0.20"
7
+ s.version = "0.0.21"
8
8
  s.platform = Gem::Platform::RUBY
9
9
  s.authors = ["David Heitzman"]
10
10
  s.email = ["evolvemeans@gmail.com"]
@@ -21,7 +21,7 @@ puts
21
21
  =begin
22
22
  c=Color::RGB.new(0,0,0)
23
23
  1000.times do
24
- puts c.next_gaussian(0.00 )
24
+ puts c.next_gaussian(0.50 )
25
25
  end
26
26
  Kernel.exit
27
27
  =end
@@ -29,9 +29,10 @@ Kernel.exit
29
29
 
30
30
  l = RMThemeGen::ThemeGenerator.new
31
31
 
32
- 100.times do
32
+ 5.times do
33
33
  # puts l.make_theme_file(:outputdir => ENV["PWD"],:bg_color_style => 0 )
34
- puts l.make_theme_file()
34
+ # puts l.make_theme_file(ENV["PWD"],0,[{:r=>0.0,:g=>0.0},{:r=>1.0,:g=>0.0,:b=>0.0}])
35
+ puts l.make_theme_file(ENV["PWD"],0,nil)
35
36
  # puts l.make_theme_file(:outputdir => ENV["PWD"],:bg_color_style => 2 )
36
37
  end
37
38
  puts "testing to_css"
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rmthemegen
3
3
  version: !ruby/object:Gem::Version
4
- hash: 55
4
+ hash: 53
5
5
  prerelease:
6
6
  segments:
7
7
  - 0
8
8
  - 0
9
- - 20
10
- version: 0.0.20
9
+ - 21
10
+ version: 0.0.21
11
11
  platform: ruby
12
12
  authors:
13
13
  - David Heitzman
@@ -77,9 +77,6 @@ files:
77
77
  - rmthemegen.gemspec
78
78
  - test/.~lock.mean65#
79
79
  - test/index.html
80
- - test/meana
81
- - test/meanf
82
- - test/meanv
83
80
  - test/rmthemegen_spec.rb
84
81
  - test/sample_ruby_source
85
82
  - test/test_generate_themes.rb