Class: USPSFlags::Config

Inherits:
Object
  • Object
show all
Defined in:
lib/usps_flags/config.rb

Overview

Container class for configuration values.

Since:

  • 0.1.5

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize {|_self| ... } ⇒ Config

Configuration constructor

Parameters:

  • flag_dir (String)

    The path to the flags directory.

  • use_larger_tridents (Boolean)

    Whether to use the larger trident configuration.

  • reset (Boolean)

    Whether to clear out the specified flags_dir.

Yields:

  • (_self)

Yield Parameters:

Since:

  • 0.1.5



19
20
21
22
23
24
# File 'lib/usps_flags/config.rb', line 19

def initialize
  load_init_variables
  yield self if block_given?
  set_flags_dir(reset: @reset)
  set_class_variables
end

Instance Attribute Details

#flags_dirObject

Since:

  • 0.1.5



26
27
28
# File 'lib/usps_flags/config.rb', line 26

def flags_dir
  @flags_dir
end

#resetObject

Since:

  • 0.1.5



27
28
29
# File 'lib/usps_flags/config.rb', line 27

def reset
  @reset
end

#use_larger_tridentsObject

Since:

  • 0.1.5



28
29
30
# File 'lib/usps_flags/config.rb', line 28

def use_larger_tridents
  @use_larger_tridents
end

Class Method Details

.flags_dirString

Accessor for the directory for storing generated flags.

Returns:

  • (String)

    The current path to the flags directory.

Since:

  • 0.1.5



86
87
88
# File 'lib/usps_flags/config.rb', line 86

def self.flags_dir
  @@flags_dir
end

.log_pathString

Alias for the directory to store generated log files.

Returns:

  • (String)

    The current path to the logs directory.

Since:

  • 0.1.5



93
94
95
96
97
98
99
100
101
# File 'lib/usps_flags/config.rb', line 93

def self.log_path
  log_path = if defined?(::Rails)
    "#{::Rails.root}/log"
  else
    "#{@@flags_dir}/log"
  end
  ::FileUtils.mkdir_p(log_path)
  log_path
end

.tridentHash

Base configuration values for trident insignia.

All other values are derived from these, or directly from the constant sizes.

Returns:

  • (Hash)

    RThe configuration values for tridents.

Since:

  • 0.1.5



35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
# File 'lib/usps_flags/config.rb', line 35

def self.trident
  point_height = USPSFlags::Config::BASE_FLY/48*17/8
  bar_width = USPSFlags::Config::BASE_FLY/48
  bar_width = bar_width*5/4 if self.use_larger_tridents
  {
    height: trident_heights,

    center_point: BASE_FLY/2,

    width: USPSFlags::Config::BASE_FLY*5/32,

    bar_width: bar_width,

    point_height: point_height,

    main_point_barb: USPSFlags::Config::BASE_HOIST/240,

    crossbar_from_top: USPSFlags::Config::BASE_HOIST/4,

    side_spike_height: USPSFlags::Config::BASE_HOIST/4-point_height-bar_width,

    hash_width: USPSFlags::Config::BASE_FLY*3/32,

    delta_height: USPSFlags::Config::BASE_FLY*2/15,
    delta_gap_height: self.use_larger_tridents ? USPSFlags::Config::BASE_FLY*14/256 : USPSFlags::Config::BASE_FLY*17/256,
    delta_gap_width: self.use_larger_tridents ? bar_width*5/4 : bar_width*7/4,
    delta_width: USPSFlags::Config::BASE_FLY*43/768,
    delta_from_bottom: USPSFlags::Config::BASE_HOIST*11/64,
    delta_gap_scale: 0.40,
    delta_gap_x: USPSFlags::Config::BASE_HOIST*144/128,
    delta_gap_y: USPSFlags::Config::BASE_HOIST*221/256,

    circle_height_adj: USPSFlags::Config::BASE_FLY/800
  }
end

.trident_heightsHash

Height values for trident insignia.

Returns:

  • (Hash)

    The height values for tridents.

Since:

  • 0.1.5



74
75
76
77
78
79
80
81
# File 'lib/usps_flags/config.rb', line 74

def self.trident_heights
  {
    s:   USPSFlags::Config::BASE_HOIST/2,
    d:   USPSFlags::Config::BASE_HOIST*5/8,
    stf: USPSFlags::Config::BASE_HOIST*3/4,
    n:   USPSFlags::Config::BASE_HOIST*3/4
  }
end

.use_larger_tridentsBoolean

Accessor for the boolean of whether to use the larger or smaller trident width.

Returns:

  • (Boolean)

    Returns the current setting.

Since:

  • 0.1.5



106
107
108
109
110
# File 'lib/usps_flags/config.rb', line 106

def self.use_larger_tridents
  # Smaller: 1/2 in width on 24in x 16in field
  # Larger:  5/8 in width on 24in x 16in field
  @@use_larger_tridents
end