Module: RubySvgImageGenerator

Defined in:
lib/ruby_svg_image_generator.rb,
lib/ruby_svg_image_generator/part.rb,
lib/ruby_svg_image_generator/theme.rb,
lib/ruby_svg_image_generator/version.rb,
lib/ruby_svg_image_generator/color_part.rb,
lib/ruby_svg_image_generator/themes/face_avatars/eyes.rb,
lib/ruby_svg_image_generator/themes/face_avatars/face.rb,
lib/ruby_svg_image_generator/themes/face_avatars/hair.rb,
lib/ruby_svg_image_generator/themes/face_avatars/mouth.rb,
lib/ruby_svg_image_generator/themes/human_avatars/body.rb,
lib/ruby_svg_image_generator/themes/human_avatars/eyes.rb,
lib/ruby_svg_image_generator/themes/human_avatars/hair.rb,
lib/ruby_svg_image_generator/themes/robot_avatars/arms.rb,
lib/ruby_svg_image_generator/themes/robot_avatars/body.rb,
lib/ruby_svg_image_generator/themes/robot_avatars/face.rb,
lib/ruby_svg_image_generator/themes/robot_avatars/head.rb,
lib/ruby_svg_image_generator/themes/robot_avatars/legs.rb,
lib/ruby_svg_image_generator/themes/human_avatars/mouth.rb,
lib/ruby_svg_image_generator/themes/human_avatars/pants.rb,
lib/ruby_svg_image_generator/themes/human_avatars/shirt.rb,
lib/ruby_svg_image_generator/themes/human_avatars/shoes.rb,
lib/ruby_svg_image_generator/themes/landscape_theme/sun.rb,
lib/ruby_svg_image_generator/themes/monkey_avatars/eyes.rb,
lib/ruby_svg_image_generator/themes/monkey_avatars/face.rb,
lib/ruby_svg_image_generator/themes/monkey_avatars/hats.rb,
lib/ruby_svg_image_generator/themes/monkey_avatars/nose.rb,
lib/ruby_svg_image_generator/themes/monkey_avatars/skin.rb,
lib/ruby_svg_image_generator/themes/robot_avatars/chest.rb,
lib/ruby_svg_image_generator/themes/monkey_avatars/mouth.rb,
lib/ruby_svg_image_generator/themes/landscape_theme/river.rb,
lib/ruby_svg_image_generator/themes/monkey_avatars/makeup.rb,
lib/ruby_svg_image_generator/themes/robot_avatars/antenna.rb,
lib/ruby_svg_image_generator/themes/robot_avatars/buttons.rb,
lib/ruby_svg_image_generator/themes/test_theme/test_theme.rb,
lib/ruby_svg_image_generator/themes/landscape_theme/ground.rb,
lib/ruby_svg_image_generator/themes/monkey_avatars/clothes.rb,
lib/ruby_svg_image_generator/themes/test_theme/test_part_0.rb,
lib/ruby_svg_image_generator/themes/test_theme/test_part_1.rb,
lib/ruby_svg_image_generator/themes/face_avatars/background.rb,
lib/ruby_svg_image_generator/themes/landscape_theme/flowers.rb,
lib/ruby_svg_image_generator/themes/landscape_theme/trees_1.rb,
lib/ruby_svg_image_generator/themes/landscape_theme/trees_2.rb,
lib/ruby_svg_image_generator/themes/landscape_theme/trees_3.rb,
lib/ruby_svg_image_generator/themes/monkey_avatars/wearable.rb,
lib/ruby_svg_image_generator/themes/human_avatars/background.rb,
lib/ruby_svg_image_generator/themes/face_avatars/face_avatars.rb,
lib/ruby_svg_image_generator/themes/human_avatars/complements.rb,
lib/ruby_svg_image_generator/themes/monkey_avatars/background.rb,
lib/ruby_svg_image_generator/themes/human_avatars/background_2.rb,
lib/ruby_svg_image_generator/themes/landscape_theme/background.rb,
lib/ruby_svg_image_generator/themes/human_avatars/human_avatars.rb,
lib/ruby_svg_image_generator/themes/landscape_theme/clouds_back.rb,
lib/ruby_svg_image_generator/themes/robot_avatars/button_middle.rb,
lib/ruby_svg_image_generator/themes/robot_avatars/robot_avatars.rb,
lib/ruby_svg_image_generator/themes/landscape_theme/clouds_front.rb,
lib/ruby_svg_image_generator/themes/monkey_avatars/clothes_necks.rb,
lib/ruby_svg_image_generator/themes/monkey_avatars/monkey_avatars.rb,
lib/ruby_svg_image_generator/themes/landscape_theme/mountains_back.rb,
lib/ruby_svg_image_generator/themes/landscape_theme/landscape_theme.rb,
lib/ruby_svg_image_generator/themes/landscape_theme/mountains_front.rb

Defined Under Namespace

Classes: FaceAvatars, HumanAvatars, LandscapeTheme, MonkeyAvatars, RobotAvatars, TestTheme, Theme

Constant Summary collapse

T_HUMAN_AVATARS =
:HumanAvatars
T_FACE_AVATARS =
:FaceAvatars
T_MONKEY_AVATARS =
:MonkeyAvatars
T_LANDSCAPE_THEME =
:LandscapeTheme
T_ROBOT_AVATARS =
:RobotAvatars
T_TEST_THEME =
:TestTheme
DEFAULT_OPTIONS =
{
  :theme => T_TEST_THEME
}
THEMES =
[T_HUMAN_AVATARS, T_FACE_AVATARS, T_LANDSCAPE_THEME, T_MONKEY_AVATARS, T_ROBOT_AVATARS]
VERSION =
'0.0.1'

Class Method Summary collapse

Class Method Details

.create(title, options = {}) ⇒ Object

create an image svg

Example:

>> RubySvgImageGenerator.create(title, options)
=> result (String)

Parameters:

  • title (string)

    the image svg title

  • options (hash) (defaults to: {})

    additional options for the image



59
60
61
62
63
64
65
66
67
68
69
70
# File 'lib/ruby_svg_image_generator.rb', line 59

def self.create(title, options={})

  options = DEFAULT_OPTIONS.merge(options)

  theme = RubySvgImageGenerator.const_get(options[:theme]).new

  # generate the cells matrix with image
  matrix = theme.get_matrix options[:parts]

  # generate and return the svg string with matrix values
  RubyMatrixToSvg.matrix_to_svg title, matrix
end

.create_and_save(filename, title, options = {}) ⇒ Object

create an image svg and save it to the given filename

Example:

>> RubySvgImageGenerator.create_and_save('test_identicon.png', title, options)
=> result (Fixnum)

Parameters:

  • filename (string)

    the full path and filename to save the image svg to

  • title (string)

    the image svg title

  • options (hash) (defaults to: {})

    additional options for the image



40
41
42
43
44
45
46
47
48
# File 'lib/ruby_svg_image_generator.rb', line 40

def self.create_and_save(filename, title, options={})

  # create the svg image string
  svg = create(title, options)

  # save svg to file filename
  File.open(filename, 'wb') { |f| f.write(svg) }

end

.create_random(title, options = {}) ⇒ Object

create a random image svg

Example:

>> RubySvgImageGenerator.create_random( title, options)
=> result (String)

Parameters:

  • title (string)

    the image svg title

  • options (hash) (defaults to: {})

    additional options for the image



101
102
103
104
105
106
107
108
109
110
111
112
# File 'lib/ruby_svg_image_generator.rb', line 101

def self.create_random(title, options={})

  options = DEFAULT_OPTIONS.merge(options)

  theme = RubySvgImageGenerator.const_get(options[:theme]).new

  # generate the cells matrix with image
  matrix = theme.get_random_matrix

  # generate and return the svg string with matrix values
  RubyMatrixToSvg.matrix_to_svg title, matrix
end

.create_random_and_save(filename, title, options = {}) ⇒ Object

create a random image svg and save it to the given filename

Example:

>> RubySvgImageGenerator.create_random_and_save('test_identicon.png', title, options)
=> result (Fixnum)

Parameters:

  • filename (string)

    the full path and filename to save the image svg to

  • title (string)

    the image svg title

  • options (hash) (defaults to: {})

    additional options for the image



82
83
84
85
86
87
88
89
90
# File 'lib/ruby_svg_image_generator.rb', line 82

def self.create_random_and_save(filename, title, options={})

  # create the svg image string
  svg = create_random(title, options)

  # save svg to file filename
  File.open(filename, 'wb') { |f| f.write(svg) }

end

.get_theme_instance(theme) ⇒ Object

create a random image svg

Example:

>> RubySvgImageGenerator.get_theme_instance( RubySvgImageGenerator::T_HUMAN_AVATARS)
=> result (Theme)

Parameters:

  • theme (constant)

    the image svg title



122
123
124
# File 'lib/ruby_svg_image_generator.rb', line 122

def self.get_theme_instance theme
  return RubySvgImageGenerator.const_get(theme).new
end