shield-system 0.0.2 → 0.0.3

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,3 @@
1
+ NO_CUSTOM_FONT = nil
2
+ TRANSPARENT_BACKGROUND = 'none'
3
+ FONT_EAGLE = File.dirname(__FILE__) + '/fonts/bureaueaglebook.ttf'
@@ -0,0 +1,85 @@
1
+ require 'RMagick'
2
+
3
+ class Label
4
+
5
+ def initialize(label_name, label_text, label_colour, label_text_colour, background_colour, output_path, custom_font, height, font_size, font_family, buffer)
6
+ @label_name = label_name
7
+ @label_text = " #{label_text}"
8
+ @label_colour = label_colour
9
+ @label_text_colour = label_text_colour
10
+ $background_colour = background_colour
11
+ @output_path = output_path
12
+ @font_size = font_size.to_i
13
+ @font_family = font_family
14
+ @custom_font = custom_font
15
+ @buffer = buffer.to_i
16
+ @label_width = get_text_width(@label_text)
17
+ @height = height.to_i
18
+ @canvas = Magick::Image.new(@label_width, @height){ self.background_color = $background_colour }
19
+ @canvas.alpha(Magick::ActivateAlphaChannel)
20
+ @draw = Magick::Draw.new
21
+ @corners = 3
22
+ end
23
+
24
+ def generate
25
+ label_rectangle
26
+ label_text
27
+ publish
28
+ end
29
+
30
+ private
31
+
32
+ def label_rectangle
33
+ @draw.fill(@label_colour)
34
+ @draw.stroke(@label_colour)
35
+ @draw.stroke_width(1)
36
+ @draw.roundrectangle(0, 0, @label_width, @height-1, @corners, @corners)
37
+ @draw.stroke('transparent')
38
+ end
39
+
40
+ def label_text
41
+ @draw.fill(@label_text_colour)
42
+ set_font(@draw)
43
+ @draw.pointsize=@font_size
44
+ @draw.text_antialias(true)
45
+ @draw.font_style(Magick::NormalStyle)
46
+ @draw.font_weight(Magick::BoldWeight)
47
+ @draw.gravity(Magick::WestGravity)
48
+ @draw.text(0, 0, @label_text)
49
+ end
50
+
51
+ def publish
52
+ @draw.draw(@canvas)
53
+ @canvas.write(@output_path + '/' + @label_name + '.gif')
54
+ end
55
+
56
+ def get_text_width(text)
57
+ canvas = Magick::Image.new(100, 100){ self.background_color = 'transparent' }
58
+ canvas.alpha(Magick::ActivateAlphaChannel)
59
+ label = Magick::Draw.new
60
+ set_font(label)
61
+ label.pointsize=@font_size
62
+ label.text_antialias(true)
63
+ label.font_style(Magick::NormalStyle)
64
+ label.font_weight(Magick::BoldWeight)
65
+ label.gravity(Magick::WestGravity)
66
+ label.text(0, 0, text)
67
+ metrics = label.get_type_metrics(canvas, text)
68
+ metrics.width.to_i + @buffer
69
+ end
70
+
71
+ def set_font(parent)
72
+ if @custom_font.nil?
73
+ parent.font_family(@font_family)
74
+ else
75
+ parent.font = @custom_font
76
+ end
77
+ end
78
+
79
+ end
80
+
81
+
82
+
83
+
84
+
85
+
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: shield-system
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
4
+ version: 0.0.3
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: 2013-08-02 00:00:00.000000000 Z
12
+ date: 2013-08-06 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rspec
@@ -67,10 +67,13 @@ extra_rdoc_files:
67
67
  - README.md
68
68
  files:
69
69
  - src/shield_system.rb
70
+ - src/constants.rb
70
71
  - src/systems/github_shield.rb
71
72
  - src/systems/sparkline_shield.rb
72
73
  - src/presets/helpers/build_status.rb
73
74
  - src/presets/github_build_status.rb
75
+ - src/fonts/bureaueaglebook.ttf
76
+ - src/systems/label.rb
74
77
  - README.md
75
78
  homepage: https://github.com/masterthought/shield-system
76
79
  licenses: