Sha256: b46e3e87f87f5c035048c414ed9062aed1426944a5c7d8b93cd2382faf5bc2f5

Contents?: true

Size: 1.23 KB

Versions: 11

Compression:

Stored size: 1.23 KB

Contents

module Locomotive
  module Steam
    module Liquid
      module Filters
        module Number

          def money(input, *options)
            NumberProxyHelper.new(:currency, @context).invoke(input, options)
          end

          def percentage(input, *options)
            NumberProxyHelper.new(:percentage, @context).invoke(input, options)
          end

          def mod(input, modulus)
            input.to_i % modulus.to_i
          end

          class NumberProxyHelper

            include ActiveSupport::NumberHelper

            def initialize(name, context)
              @name     = name
              @context  = context
            end

            def invoke(input, options)
              _options = parse_and_interpolate_options(options)
              send :"number_to_#{@name}", input, _options
            end

            def parse_and_interpolate_options(string_or_array)
              return {} if string_or_array.empty?

              string = [*string_or_array].flatten.join(', ')
              arguments = Solid::Arguments.parse(string)

              (arguments.interpolate(@context).first || {})
            end

          end

          ::Liquid::Template.register_filter(Number)

        end

      end
    end
  end
end

Version data entries

11 entries across 11 versions & 1 rubygems

Version Path
locomotivecms_steam-1.0.1 lib/locomotive/steam/liquid/filters/number.rb
locomotivecms_steam-1.0.0 lib/locomotive/steam/liquid/filters/number.rb
locomotivecms_steam-1.0.0.rc10 lib/locomotive/steam/liquid/filters/number.rb
locomotivecms_steam-1.0.0.rc9 lib/locomotive/steam/liquid/filters/number.rb
locomotivecms_steam-1.0.0.rc8 lib/locomotive/steam/liquid/filters/number.rb
locomotivecms_steam-1.0.0.rc6 lib/locomotive/steam/liquid/filters/number.rb
locomotivecms_steam-1.0.0.rc4 lib/locomotive/steam/liquid/filters/number.rb
locomotivecms_steam-1.0.0.rc3 lib/locomotive/steam/liquid/filters/number.rb
locomotivecms_steam-1.0.0.rc2 lib/locomotive/steam/liquid/filters/number.rb
locomotivecms_steam-1.0.0.rc1 lib/locomotive/steam/liquid/filters/number.rb
locomotivecms_steam-1.0.0.pre.beta.3 lib/locomotive/steam/liquid/filters/number.rb