Module: Lazier

Defined in:
lib/lazier.rb,
lib/lazier/hash.rb,
lib/lazier/math.rb,
lib/lazier/object.rb,
lib/lazier/string.rb,
lib/lazier/boolean.rb,
lib/lazier/version.rb,
lib/lazier/datetime.rb,
lib/lazier/pathname.rb,
lib/lazier/settings.rb,
lib/lazier/exceptions.rb

Overview

This file is part of the lazier gem. Copyright (C) 2012 and above Shogun . Licensed under the MIT license, which can be found at http://www.opensource.org/licenses/mit-license.php.

Defined Under Namespace

Modules: Boolean, DateTime, Exceptions, Hash, Math, Object, Pathname, String, TimeZone, Version Classes: Settings

Class Method Summary collapse

Class Method Details

.is_ruby_18?Boolean

Checks if we are running under Ruby 1.8

Returns:

  • (Boolean)

    true for Ruby 1.8, false otherwise.



30
31
32
# File 'lib/lazier.rb', line 30

def self.is_ruby_18?
  RUBY_VERSION =~ /^1\.8/
end

.load!(*what) ⇒ Settings

Loads the extensions.

Parameters:

  • what (Array)

    The modules to load. Valid values are: @option object Extensions for all objects. @option boolean Extensions for boolean values. @option string Extensions for strings. @option hash Extensions for hashs. @option datetime Extensions date and time objects. @option math Extensions for Math module. @option pathname Extensions for path objects.

Returns:

  • (Settings)

    The settings for the extensions.



52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
# File 'lib/lazier.rb', line 52

def self.load!(*what)
  what = ["object", "boolean", "string", "hash", "datetime", "math", "pathname"] if what.count == 0
  what.collect! { |w| w.to_s }

  # Dependency resolving
  what << "object" if what.include?("datetime")
  what << "object" if what.include?("math")
  what.compact.uniq!

  if what.include?("object") then
    ::Object.class_eval do
      include ::Lazier::Object
    end
  end

  if what.include?("boolean") then
    ::TrueClass.class_eval do
      include ::Lazier::Object
      include ::Lazier::Boolean
    end

    ::FalseClass.class_eval do
      include ::Lazier::Object
      include ::Lazier::Boolean
    end
  end

  if what.include?("string") then
    ::String.class_eval do
      include ::Lazier::String
    end
  end

  if what.include?("hash") then
    ::Hash.class_eval do
      include ::Lazier::Hash
    end
  end

  if what.include?("datetime") then
    ::Time.class_eval do
      include ::Lazier::DateTime
    end

    ::Date.class_eval do
      include ::Lazier::DateTime
    end

    ::DateTime.class_eval do
      include ::Lazier::DateTime
    end

    ::ActiveSupport::TimeZone.class_eval do
      include ::Lazier::TimeZone
    end
  end

  if what.include?("math") then
    ::Math.class_eval do
      include ::Lazier::Math
    end
  end

  if what.include?("pathname") then
    require "pathname"

    ::Pathname.class_eval do
      include ::Lazier::Pathname
    end
  end

  yield if block_given?

  ::Lazier::Settings.instance
end

.settingsSettings

Returns the settings for the extensions

Returns:

  • (Settings)

    The settings for the extensions.



37
38
39
# File 'lib/lazier.rb', line 37

def self.settings
  ::Lazier::Settings.instance
end