friendly_extensions 0.0.62 → 0.0.65
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
 - data/lib/array.rb +1 -1
 - data/lib/friendly_extensions/engine.rb +10 -0
 - data/lib/friendly_extensions.rb +2 -2
 - data/lib/numbers.rb +12 -6
 - data/lib/string_and_more.rb +18 -10
 - data/test/array_test.rb +1 -1
 - data/test/numeric_test.rb +4 -0
 - metadata +4 -7
 - data/lib/alphanumeric.rb.orig +0 -84
 - data/lib/array.rb.orig +0 -313
 - data/lib/numbers.rb.orig +0 -220
 - data/lib/smart_currency.rb.orig +0 -74
 - data/lib/string_and_more.rb.orig +0 -303
 
    
        checksums.yaml
    CHANGED
    
    | 
         @@ -1,7 +1,7 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            ---
         
     | 
| 
       2 
2 
     | 
    
         
             
            SHA1:
         
     | 
| 
       3 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       4 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 3 
     | 
    
         
            +
              metadata.gz: 599b81295e728316bffa52a91ee0f83cfe21a0fc
         
     | 
| 
      
 4 
     | 
    
         
            +
              data.tar.gz: e279fc4b1e79c9dd27f2e59bcc223b472e20620e
         
     | 
| 
       5 
5 
     | 
    
         
             
            SHA512:
         
     | 
| 
       6 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       7 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 6 
     | 
    
         
            +
              metadata.gz: 29f70901e22e4edaff2566793f6d564606467fdeace229fcb910dc1c129f53b7fea4a866b9c3b64a30927f5142bb4c9b4f4980314e2aad1fba19193987105ad2
         
     | 
| 
      
 7 
     | 
    
         
            +
              data.tar.gz: 777f32151ae55d93267d001432a3d361f32bf72b193fbf9a480d4c29eca51c338fc7995533e00ba038cfdb8536548473d0d6850981830f57074b011b50b63eb7
         
     | 
    
        data/lib/array.rb
    CHANGED
    
    
    
        data/lib/friendly_extensions.rb
    CHANGED
    
    | 
         @@ -1,14 +1,14 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            # -*- encoding : utf-8 -*-
         
     | 
| 
       2 
2 
     | 
    
         
             
            # All dit janze zeug laden
         
     | 
| 
       3 
3 
     | 
    
         | 
| 
       4 
     | 
    
         
            -
            require " 
     | 
| 
      
 4 
     | 
    
         
            +
            require "friendly_extensions/engine"
         
     | 
| 
       5 
5 
     | 
    
         | 
| 
      
 6 
     | 
    
         
            +
            require "array"
         
     | 
| 
       6 
7 
     | 
    
         
             
            require "date_n_time"
         
     | 
| 
       7 
8 
     | 
    
         
             
            require "numbers"
         
     | 
| 
       8 
9 
     | 
    
         
             
            require "hash"
         
     | 
| 
       9 
10 
     | 
    
         
             
            require "string_and_more"
         
     | 
| 
       10 
11 
     | 
    
         
             
            require "boolean"
         
     | 
| 
       11 
     | 
    
         
            -
             
     | 
| 
       12 
12 
     | 
    
         
             
            require "nil_class"
         
     | 
| 
       13 
13 
     | 
    
         | 
| 
       14 
14 
     | 
    
         
             
            # SmartCurrency jetzt auch hier (26.03.2013, 16:30, Florian Eck)
         
     | 
    
        data/lib/numbers.rb
    CHANGED
    
    | 
         @@ -7,6 +7,9 @@ module Numbers 
     | 
|
| 
       7 
7 
     | 
    
         
             
                # Convert Number to numeric german style with precision
         
     | 
| 
       8 
8 
     | 
    
         
             
                def to_euro(label = nil, options = {})
         
     | 
| 
       9 
9 
     | 
    
         
             
                  options[:precision] ||= 2
         
     | 
| 
      
 10 
     | 
    
         
            +
                  
         
     | 
| 
      
 11 
     | 
    
         
            +
                  options[:precision] = 0 if options[:fix_int] == true && self.is_a?(Integer)
         
     | 
| 
      
 12 
     | 
    
         
            +
                  
         
     | 
| 
       10 
13 
     | 
    
         
             
                  result = ActionController::Base.helpers.number_with_precision(self, :precision => options[:precision], :separator => ",", :delimiter => ".")
         
     | 
| 
       11 
14 
     | 
    
         | 
| 
       12 
15 
     | 
    
         
             
                  if options[:pre] == true && self > 0
         
     | 
| 
         @@ -25,12 +28,11 @@ module Numbers 
     | 
|
| 
       25 
28 
     | 
    
         | 
| 
       26 
29 
     | 
    
         
             
                # Convert Number to numeric german style without precision
         
     | 
| 
       27 
30 
     | 
    
         
             
                def to_de(label=nil)
         
     | 
| 
       28 
     | 
    
         
            -
                   
     | 
| 
       29 
     | 
    
         
            -
             
     | 
| 
       30 
     | 
    
         
            -
             
     | 
| 
       31 
     | 
    
         
            -
             
     | 
| 
       32 
     | 
    
         
            -
             
     | 
| 
       33 
     | 
    
         
            -
                  end
         
     | 
| 
      
 31 
     | 
    
         
            +
                  self.to_euro(label, :precision => 0)
         
     | 
| 
      
 32 
     | 
    
         
            +
                end  
         
     | 
| 
      
 33 
     | 
    
         
            +
                
         
     | 
| 
      
 34 
     | 
    
         
            +
                def to_a
         
     | 
| 
      
 35 
     | 
    
         
            +
                  [self]
         
     | 
| 
       34 
36 
     | 
    
         
             
                end  
         
     | 
| 
       35 
37 
     | 
    
         | 
| 
       36 
38 
     | 
    
         
             
                # Inflate number, y = duration of years, f = percentage
         
     | 
| 
         @@ -108,6 +110,10 @@ module Numbers 
     | 
|
| 
       108 
110 
     | 
    
         
             
                    return values.join(':')
         
     | 
| 
       109 
111 
     | 
    
         
             
                  end  
         
     | 
| 
       110 
112 
     | 
    
         
             
                end 
         
     | 
| 
      
 113 
     | 
    
         
            +
                
         
     | 
| 
      
 114 
     | 
    
         
            +
                def deg2rad
         
     | 
| 
      
 115 
     | 
    
         
            +
                  self * Math::PI / 180
         
     | 
| 
      
 116 
     | 
    
         
            +
                end  
         
     | 
| 
       111 
117 
     | 
    
         | 
| 
       112 
118 
     | 
    
         | 
| 
       113 
119 
     | 
    
         
             
              end  
         
     | 
    
        data/lib/string_and_more.rb
    CHANGED
    
    | 
         @@ -40,6 +40,10 @@ module StringAndMore 
     | 
|
| 
       40 
40 
     | 
    
         
             
                  end    
         
     | 
| 
       41 
41 
     | 
    
         
             
                  return str
         
     | 
| 
       42 
42 
     | 
    
         
             
                end
         
     | 
| 
      
 43 
     | 
    
         
            +
                
         
     | 
| 
      
 44 
     | 
    
         
            +
                def self.email_message_id(mail_domain)
         
     | 
| 
      
 45 
     | 
    
         
            +
                  "<#{Digest::SHA2.hexdigest(Time.now.to_i.to_s)}@#{mail_domain}>"
         
     | 
| 
      
 46 
     | 
    
         
            +
                end  
         
     | 
| 
       43 
47 
     | 
    
         | 
| 
       44 
48 
     | 
    
         | 
| 
       45 
49 
     | 
    
         
             
                # Extract boolean status from string
         
     | 
| 
         @@ -81,17 +85,21 @@ module StringAndMore 
     | 
|
| 
       81 
85 
     | 
    
         
             
                end  
         
     | 
| 
       82 
86 
     | 
    
         | 
| 
       83 
87 
     | 
    
         
             
                def to_label(options = {:show_tooltip => false})
         
     | 
| 
       84 
     | 
    
         
            -
                   
     | 
| 
       85 
     | 
    
         
            -
             
     | 
| 
       86 
     | 
    
         
            -
                     
     | 
| 
      
 88 
     | 
    
         
            +
                  if FriendsLabel.table_exists?
         
     | 
| 
      
 89 
     | 
    
         
            +
                    l = FriendsLabel::LABELS[self]
         
     | 
| 
      
 90 
     | 
    
         
            +
                    if l.nil? 
         
     | 
| 
      
 91 
     | 
    
         
            +
                      FriendsLabel.create(:label => self, :attribute_name => self)
         
     | 
| 
      
 92 
     | 
    
         
            +
                      return self
         
     | 
| 
      
 93 
     | 
    
         
            +
                    else  
         
     | 
| 
      
 94 
     | 
    
         
            +
                      unless options[:show_tooltip] == true
         
     | 
| 
      
 95 
     | 
    
         
            +
                        return l[:label]
         
     | 
| 
      
 96 
     | 
    
         
            +
                      else
         
     | 
| 
      
 97 
     | 
    
         
            +
                        return l[:tooltip]
         
     | 
| 
      
 98 
     | 
    
         
            +
                      end
         
     | 
| 
      
 99 
     | 
    
         
            +
                    end  
         
     | 
| 
      
 100 
     | 
    
         
            +
                  else
         
     | 
| 
       87 
101 
     | 
    
         
             
                    return self
         
     | 
| 
       88 
     | 
    
         
            -
                   
     | 
| 
       89 
     | 
    
         
            -
                    unless options[:show_tooltip] == true
         
     | 
| 
       90 
     | 
    
         
            -
                      return l[:label]
         
     | 
| 
       91 
     | 
    
         
            -
                    else
         
     | 
| 
       92 
     | 
    
         
            -
                      return l[:tooltip]
         
     | 
| 
       93 
     | 
    
         
            -
                    end
         
     | 
| 
       94 
     | 
    
         
            -
                  end  
         
     | 
| 
      
 102 
     | 
    
         
            +
                  end    
         
     | 
| 
       95 
103 
     | 
    
         
             
                end
         
     | 
| 
       96 
104 
     | 
    
         | 
| 
       97 
105 
     | 
    
         
             
                def shuffle
         
     | 
    
        data/test/array_test.rb
    CHANGED
    
    | 
         @@ -24,7 +24,7 @@ class ArrayTest < Test::Unit::TestCase 
     | 
|
| 
       24 
24 
     | 
    
         
             
                assert_equal test_array.avg(:number), 4.5
         
     | 
| 
       25 
25 
     | 
    
         
             
              end
         
     | 
| 
       26 
26 
     | 
    
         | 
| 
       27 
     | 
    
         
            -
              def  
     | 
| 
      
 27 
     | 
    
         
            +
              def test_array_avg_should_not_break_with_nil_and_emtpy
         
     | 
| 
       28 
28 
     | 
    
         
             
                assert_equal [3,nil].avg, 3
         
     | 
| 
       29 
29 
     | 
    
         
             
                assert_equal [].avg, 0
         
     | 
| 
       30 
30 
     | 
    
         
             
              end  
         
     | 
    
        data/test/numeric_test.rb
    CHANGED
    
    
    
        metadata
    CHANGED
    
    | 
         @@ -1,14 +1,14 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            --- !ruby/object:Gem::Specification
         
     | 
| 
       2 
2 
     | 
    
         
             
            name: friendly_extensions
         
     | 
| 
       3 
3 
     | 
    
         
             
            version: !ruby/object:Gem::Version
         
     | 
| 
       4 
     | 
    
         
            -
              version: 0.0. 
     | 
| 
      
 4 
     | 
    
         
            +
              version: 0.0.65
         
     | 
| 
       5 
5 
     | 
    
         
             
            platform: ruby
         
     | 
| 
       6 
6 
     | 
    
         
             
            authors:
         
     | 
| 
       7 
7 
     | 
    
         
             
            - Florian Eck
         
     | 
| 
       8 
8 
     | 
    
         
             
            autorequire: 
         
     | 
| 
       9 
9 
     | 
    
         
             
            bindir: bin
         
     | 
| 
       10 
10 
     | 
    
         
             
            cert_chain: []
         
     | 
| 
       11 
     | 
    
         
            -
            date: 2014- 
     | 
| 
      
 11 
     | 
    
         
            +
            date: 2014-03-26 00:00:00.000000000 Z
         
     | 
| 
       12 
12 
     | 
    
         
             
            dependencies:
         
     | 
| 
       13 
13 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       14 
14 
     | 
    
         
             
              name: rails
         
     | 
| 
         @@ -32,21 +32,17 @@ extensions: [] 
     | 
|
| 
       32 
32 
     | 
    
         
             
            extra_rdoc_files: []
         
     | 
| 
       33 
33 
     | 
    
         
             
            files:
         
     | 
| 
       34 
34 
     | 
    
         
             
            - lib/alphanumeric.rb
         
     | 
| 
       35 
     | 
    
         
            -
            - lib/alphanumeric.rb.orig
         
     | 
| 
       36 
35 
     | 
    
         
             
            - lib/array.rb
         
     | 
| 
       37 
     | 
    
         
            -
            - lib/array.rb.orig
         
     | 
| 
       38 
36 
     | 
    
         
             
            - lib/boolean.rb
         
     | 
| 
       39 
37 
     | 
    
         
             
            - lib/chars_2_remove.rb
         
     | 
| 
       40 
38 
     | 
    
         
             
            - lib/date_n_time.rb
         
     | 
| 
       41 
39 
     | 
    
         
             
            - lib/friendly_extensions.rb
         
     | 
| 
      
 40 
     | 
    
         
            +
            - lib/friendly_extensions/engine.rb
         
     | 
| 
       42 
41 
     | 
    
         
             
            - lib/hash.rb
         
     | 
| 
       43 
42 
     | 
    
         
             
            - lib/nil_class.rb
         
     | 
| 
       44 
43 
     | 
    
         
             
            - lib/numbers.rb
         
     | 
| 
       45 
     | 
    
         
            -
            - lib/numbers.rb.orig
         
     | 
| 
       46 
44 
     | 
    
         
             
            - lib/smart_currency.rb
         
     | 
| 
       47 
     | 
    
         
            -
            - lib/smart_currency.rb.orig
         
     | 
| 
       48 
45 
     | 
    
         
             
            - lib/string_and_more.rb
         
     | 
| 
       49 
     | 
    
         
            -
            - lib/string_and_more.rb.orig
         
     | 
| 
       50 
46 
     | 
    
         
             
            - test/array_test.rb
         
     | 
| 
       51 
47 
     | 
    
         
             
            - test/array_test.rb.orig
         
     | 
| 
       52 
48 
     | 
    
         
             
            - test/dummy_class.rb
         
     | 
| 
         @@ -85,3 +81,4 @@ test_files: 
     | 
|
| 
       85 
81 
     | 
    
         
             
            - test/numeric_test.rb
         
     | 
| 
       86 
82 
     | 
    
         
             
            - test/numeric_test.rb.orig
         
     | 
| 
       87 
83 
     | 
    
         
             
            - test/string_test.rb
         
     | 
| 
      
 84 
     | 
    
         
            +
            has_rdoc: 
         
     | 
    
        data/lib/alphanumeric.rb.orig
    DELETED
    
    | 
         @@ -1,84 +0,0 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            # -*- encoding : utf-8 -*-
         
     | 
| 
       2 
     | 
    
         
            -
            module Alphanumeric
         
     | 
| 
       3 
     | 
    
         
            -
              
         
     | 
| 
       4 
     | 
    
         
            -
              # Give every year a letter
         
     | 
| 
       5 
     | 
    
         
            -
              # TODO: should be automatically computed
         
     | 
| 
       6 
     | 
    
         
            -
            <<<<<<< HEAD
         
     | 
| 
       7 
     | 
    
         
            -
              LETTERS = "abcdefghijklmnopqrstuvwxyz".upcase.split('')
         
     | 
| 
       8 
     | 
    
         
            -
              
         
     | 
| 
       9 
     | 
    
         
            -
              START_YEAR = 1960
         
     | 
| 
       10 
     | 
    
         
            -
              
         
     | 
| 
       11 
     | 
    
         
            -
            =======
         
     | 
| 
       12 
     | 
    
         
            -
            >>>>>>> ad58e345c5de2638e34e44d69bb19b0ebebcd41e
         
     | 
| 
       13 
     | 
    
         
            -
              YEAR_LETTERS = {
         
     | 
| 
       14 
     | 
    
         
            -
                2009 => "A",
         
     | 
| 
       15 
     | 
    
         
            -
                2010 => "B",
         
     | 
| 
       16 
     | 
    
         
            -
                2011 => "C",
         
     | 
| 
       17 
     | 
    
         
            -
                2012 => "D",
         
     | 
| 
       18 
     | 
    
         
            -
                2013 => "E",
         
     | 
| 
       19 
     | 
    
         
            -
                2014 => "F",
         
     | 
| 
       20 
     | 
    
         
            -
                2015 => "G",
         
     | 
| 
       21 
     | 
    
         
            -
                2016 => "H",
         
     | 
| 
       22 
     | 
    
         
            -
                2017 => "I",
         
     | 
| 
       23 
     | 
    
         
            -
                2018 => "J",
         
     | 
| 
       24 
     | 
    
         
            -
                2019 => "K",
         
     | 
| 
       25 
     | 
    
         
            -
                2020 => "L",
         
     | 
| 
       26 
     | 
    
         
            -
                2021 => "M",
         
     | 
| 
       27 
     | 
    
         
            -
                2022 => "N",
         
     | 
| 
       28 
     | 
    
         
            -
                2023 => "O",
         
     | 
| 
       29 
     | 
    
         
            -
                2024 => "P",
         
     | 
| 
       30 
     | 
    
         
            -
                2025 => "Q",
         
     | 
| 
       31 
     | 
    
         
            -
                2026 => "R",
         
     | 
| 
       32 
     | 
    
         
            -
                2027 => "S",
         
     | 
| 
       33 
     | 
    
         
            -
                2028 => "T",
         
     | 
| 
       34 
     | 
    
         
            -
                2029 => "U",
         
     | 
| 
       35 
     | 
    
         
            -
                2030 => "V",
         
     | 
| 
       36 
     | 
    
         
            -
                2031 => "W",
         
     | 
| 
       37 
     | 
    
         
            -
                2032 => "X",
         
     | 
| 
       38 
     | 
    
         
            -
                2033 => "Y",
         
     | 
| 
       39 
     | 
    
         
            -
                2034 => "Z",
         
     | 
| 
       40 
     | 
    
         
            -
                2035 => "AA",
         
     | 
| 
       41 
     | 
    
         
            -
                2036 => "BA",
         
     | 
| 
       42 
     | 
    
         
            -
                2037 => "CA",
         
     | 
| 
       43 
     | 
    
         
            -
                2038 => "DA",
         
     | 
| 
       44 
     | 
    
         
            -
                2039 => "EA",
         
     | 
| 
       45 
     | 
    
         
            -
                2040 => "FA",
         
     | 
| 
       46 
     | 
    
         
            -
                2041 => "GA",
         
     | 
| 
       47 
     | 
    
         
            -
                2042 => "HA",
         
     | 
| 
       48 
     | 
    
         
            -
                2043 => "IA",
         
     | 
| 
       49 
     | 
    
         
            -
                2044 => "JA",
         
     | 
| 
       50 
     | 
    
         
            -
                2045 => "KA",
         
     | 
| 
       51 
     | 
    
         
            -
                2046 => "LA",
         
     | 
| 
       52 
     | 
    
         
            -
                2047 => "MA",
         
     | 
| 
       53 
     | 
    
         
            -
                2048 => "NA",
         
     | 
| 
       54 
     | 
    
         
            -
                2049 => "OA",
         
     | 
| 
       55 
     | 
    
         
            -
                2050 => "PA",
         
     | 
| 
       56 
     | 
    
         
            -
              }
         
     | 
| 
       57 
     | 
    
         
            -
              
         
     | 
| 
       58 
     | 
    
         
            -
            <<<<<<< HEAD
         
     | 
| 
       59 
     | 
    
         
            -
              def self.year_letter(year=Time.now.year, letters = LETTERS)
         
     | 
| 
       60 
     | 
    
         
            -
                
         
     | 
| 
       61 
     | 
    
         
            -
                steps = []
         
     | 
| 
       62 
     | 
    
         
            -
                
         
     | 
| 
       63 
     | 
    
         
            -
                d = (year - START_YEAR)
         
     | 
| 
       64 
     | 
    
         
            -
                n = d.fdiv(letters.size).ceil
         
     | 
| 
       65 
     | 
    
         
            -
                string = ""
         
     | 
| 
       66 
     | 
    
         
            -
                
         
     | 
| 
       67 
     | 
    
         
            -
                n.times do |i| 
         
     | 
| 
       68 
     | 
    
         
            -
                  # First 
         
     | 
| 
       69 
     | 
    
         
            -
                  if i == 0
         
     | 
| 
       70 
     | 
    
         
            -
                    string << letters[d%letters.size]
         
     | 
| 
       71 
     | 
    
         
            -
                  else
         
     | 
| 
       72 
     | 
    
         
            -
                    x = d.fdiv(letters.size*(i+1)).round
         
     | 
| 
       73 
     | 
    
         
            -
                    string << letters[x]
         
     | 
| 
       74 
     | 
    
         
            -
                  end    
         
     | 
| 
       75 
     | 
    
         
            -
                end  
         
     | 
| 
       76 
     | 
    
         
            -
                
         
     | 
| 
       77 
     | 
    
         
            -
                return string
         
     | 
| 
       78 
     | 
    
         
            -
            =======
         
     | 
| 
       79 
     | 
    
         
            -
              def self.year_letter(year=Time.now.year)
         
     | 
| 
       80 
     | 
    
         
            -
                YEAR_LETTERS[year]
         
     | 
| 
       81 
     | 
    
         
            -
            >>>>>>> ad58e345c5de2638e34e44d69bb19b0ebebcd41e
         
     | 
| 
       82 
     | 
    
         
            -
              end  
         
     | 
| 
       83 
     | 
    
         
            -
             
     | 
| 
       84 
     | 
    
         
            -
            end  
         
     | 
    
        data/lib/array.rb.orig
    DELETED
    
    | 
         @@ -1,313 +0,0 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            # -*- encoding : utf-8 -*-
         
     | 
| 
       2 
     | 
    
         
            -
            # Add the methods to the Array Class
         
     | 
| 
       3 
     | 
    
         
            -
            module ArrayExt
         
     | 
| 
       4 
     | 
    
         
            -
              Array.class_eval do
         
     | 
| 
       5 
     | 
    
         
            -
              
         
     | 
| 
       6 
     | 
    
         
            -
                # Use sum from Activesupport
         
     | 
| 
       7 
     | 
    
         
            -
                # Sum is not a default in Ruby
         
     | 
| 
       8 
     | 
    
         
            -
                def sum(identity = 0, &block)
         
     | 
| 
       9 
     | 
    
         
            -
                  if block_given?
         
     | 
| 
       10 
     | 
    
         
            -
                    map(&block).sum(identity)
         
     | 
| 
       11 
     | 
    
         
            -
                  else
         
     | 
| 
       12 
     | 
    
         
            -
                    inject { |sum, element| sum + element } || identity
         
     | 
| 
       13 
     | 
    
         
            -
                  end
         
     | 
| 
       14 
     | 
    
         
            -
                end
         
     | 
| 
       15 
     | 
    
         
            -
              
         
     | 
| 
       16 
     | 
    
         
            -
                # Get avg. value from, either from numeric values or from
         
     | 
| 
       17 
     | 
    
         
            -
                # values from a object included in array
         
     | 
| 
       18 
     | 
    
         
            -
                def avg(attribute = nil)
         
     | 
| 
       19 
     | 
    
         
            -
            <<<<<<< HEAD
         
     | 
| 
       20 
     | 
    
         
            -
                  value = self
         
     | 
| 
       21 
     | 
    
         
            -
                  if attribute.nil?
         
     | 
| 
       22 
     | 
    
         
            -
                    value.delete(nil)
         
     | 
| 
       23 
     | 
    
         
            -
                    value = self.map {|r| r.to_f }
         
     | 
| 
       24 
     | 
    
         
            -
                  else
         
     | 
| 
       25 
     | 
    
         
            -
                    value = self
         
     | 
| 
       26 
     | 
    
         
            -
                    # Bei fehlerhaften attribute wird nil gespeichert
         
     | 
| 
       27 
     | 
    
         
            -
                    value = value.map {|r| r.send(attribute.to_sym).to_f rescue nil}
         
     | 
| 
       28 
     | 
    
         
            -
                    # Leere Werte löschen
         
     | 
| 
       29 
     | 
    
         
            -
                    value.delete(nil)
         
     | 
| 
       30 
     | 
    
         
            -
                  end
         
     | 
| 
       31 
     | 
    
         
            -
                  # Divide by zero ausschließen
         
     | 
| 
       32 
     | 
    
         
            -
                  value.size == 0 ? size = 1 : size = value.size
         
     | 
| 
       33 
     | 
    
         
            -
                  value.sum / size
         
     | 
| 
       34 
     | 
    
         
            -
            =======
         
     | 
| 
       35 
     | 
    
         
            -
                  @value = self
         
     | 
| 
       36 
     | 
    
         
            -
                  if attribute.nil?
         
     | 
| 
       37 
     | 
    
         
            -
                    @value.delete(nil)
         
     | 
| 
       38 
     | 
    
         
            -
                    @value = self.map {|r| r.to_f }
         
     | 
| 
       39 
     | 
    
         
            -
                  else
         
     | 
| 
       40 
     | 
    
         
            -
                    @value = self
         
     | 
| 
       41 
     | 
    
         
            -
                    # Bei fehlerhaften attribute wird nil gespeichert
         
     | 
| 
       42 
     | 
    
         
            -
                    @value = @value.map {|r| r.send(attribute.to_sym).to_f rescue nil}
         
     | 
| 
       43 
     | 
    
         
            -
                    # Leere Werte löschen
         
     | 
| 
       44 
     | 
    
         
            -
                    @value.delete(nil)
         
     | 
| 
       45 
     | 
    
         
            -
                  end
         
     | 
| 
       46 
     | 
    
         
            -
                  # Divide by zero ausschließen
         
     | 
| 
       47 
     | 
    
         
            -
                  @value.size == 0 ? size = 1 : size = @value.size
         
     | 
| 
       48 
     | 
    
         
            -
                  @value.sum / size
         
     | 
| 
       49 
     | 
    
         
            -
            >>>>>>> ad58e345c5de2638e34e44d69bb19b0ebebcd41e
         
     | 
| 
       50 
     | 
    
         
            -
                end
         
     | 
| 
       51 
     | 
    
         
            -
              
         
     | 
| 
       52 
     | 
    
         
            -
              
         
     | 
| 
       53 
     | 
    
         
            -
              
         
     | 
| 
       54 
     | 
    
         
            -
                # Generate a hash with the given array elements as keys and 'init_value' as value
         
     | 
| 
       55 
     | 
    
         
            -
                def array_to_hash(init_val = 0)
         
     | 
| 
       56 
     | 
    
         
            -
                  h = {}
         
     | 
| 
       57 
     | 
    
         
            -
                  self.each {|x| h.merge!(x => init_val) unless x.nil? }
         
     | 
| 
       58 
     | 
    
         
            -
                  return h
         
     | 
| 
       59 
     | 
    
         
            -
                end
         
     | 
| 
       60 
     | 
    
         
            -
              
         
     | 
| 
       61 
     | 
    
         
            -
              
         
     | 
| 
       62 
     | 
    
         
            -
                def to_structured_hash(attribute, options = {})
         
     | 
| 
       63 
     | 
    
         
            -
                  data = {}
         
     | 
| 
       64 
     | 
    
         
            -
             
     | 
| 
       65 
     | 
    
         
            -
                  self.each do |item|
         
     | 
| 
       66 
     | 
    
         
            -
                    if attribute.is_a?(Symbol) && options[:load_from_hash] != true
         
     | 
| 
       67 
     | 
    
         
            -
                      key = item.send(attribute) rescue ""
         
     | 
| 
       68 
     | 
    
         
            -
                    elsif attribute.is_a?(Symbol) && options[:load_from_hash] == true  
         
     | 
| 
       69 
     | 
    
         
            -
                      key = item[attribute] rescue ""
         
     | 
| 
       70 
     | 
    
         
            -
                    elsif attribute.is_a?(String)
         
     | 
| 
       71 
     | 
    
         
            -
                      attribute_methods = attribute.split(".")  
         
     | 
| 
       72 
     | 
    
         
            -
                      key = item.send(attribute_methods[0])
         
     | 
| 
       73 
     | 
    
         
            -
                      attribute_methods[1..-1].each do |x|
         
     | 
| 
       74 
     | 
    
         
            -
                        key = key.send(x) rescue ""
         
     | 
| 
       75 
     | 
    
         
            -
                      end
         
     | 
| 
       76 
     | 
    
         
            -
                    end
         
     | 
| 
       77 
     | 
    
         
            -
             
     | 
| 
       78 
     | 
    
         
            -
                    if data[key].nil?
         
     | 
| 
       79 
     | 
    
         
            -
                      data.merge!(key => [item])
         
     | 
| 
       80 
     | 
    
         
            -
                    else
         
     | 
| 
       81 
     | 
    
         
            -
                      data[key] << item
         
     | 
| 
       82 
     | 
    
         
            -
                    end      
         
     | 
| 
       83 
     | 
    
         
            -
                  end
         
     | 
| 
       84 
     | 
    
         
            -
             
     | 
| 
       85 
     | 
    
         
            -
                  return data  
         
     | 
| 
       86 
     | 
    
         
            -
                end    
         
     | 
| 
       87 
     | 
    
         
            -
             
     | 
| 
       88 
     | 
    
         
            -
              
         
     | 
| 
       89 
     | 
    
         
            -
                # Sum up an array of objects with given attirbute
         
     | 
| 
       90 
     | 
    
         
            -
                # Attributes can be given as symbol (:my_value will return obj.my_value)
         
     | 
| 
       91 
     | 
    
         
            -
                # or as string ("user.my_value" will return my_value from user object which belongs to object in array)
         
     | 
| 
       92 
     | 
    
         
            -
                # also, options could be passed, which could be *args or options hash
         
     | 
| 
       93 
     | 
    
         
            -
                def sum_with_attribute(arg, opt =nil)
         
     | 
| 
       94 
     | 
    
         
            -
                  if arg.nil?
         
     | 
| 
       95 
     | 
    
         
            -
                    return self.compact.sum
         
     | 
| 
       96 
     | 
    
         
            -
                  else
         
     | 
| 
       97 
     | 
    
         
            -
                    values = []
         
     | 
| 
       98 
     | 
    
         
            -
                    if arg.is_a?(Symbol)
         
     | 
| 
       99 
     | 
    
         
            -
                      self.map {|i| ((opt.nil? ? i.send(arg) : i.send(arg, opt)) rescue 0) }.sum 
         
     | 
| 
       100 
     | 
    
         
            -
                    elsif arg.is_a?(String)
         
     | 
| 
       101 
     | 
    
         
            -
                      self.each do |v|
         
     | 
| 
       102 
     | 
    
         
            -
                        tag_methods = arg.split(".")  
         
     | 
| 
       103 
     | 
    
         
            -
                        tagx = v.send(tag_methods[0])
         
     | 
| 
       104 
     | 
    
         
            -
                        tag_methods[1..-1].each do |x|
         
     | 
| 
       105 
     | 
    
         
            -
                          # Use options if last method in chain called
         
     | 
| 
       106 
     | 
    
         
            -
                          if tag_methods[1..-1].last == x && !opt.nil?
         
     | 
| 
       107 
     | 
    
         
            -
                            tagx = tagx.send(x,opt)
         
     | 
| 
       108 
     | 
    
         
            -
                          else  
         
     | 
| 
       109 
     | 
    
         
            -
                            tagx = tagx.send(x)
         
     | 
| 
       110 
     | 
    
         
            -
                          end  
         
     | 
| 
       111 
     | 
    
         
            -
                        end
         
     | 
| 
       112 
     | 
    
         
            -
                        values << tagx  
         
     | 
| 
       113 
     | 
    
         
            -
                      end
         
     | 
| 
       114 
     | 
    
         
            -
                      return values.compact.sum
         
     | 
| 
       115 
     | 
    
         
            -
                    end
         
     | 
| 
       116 
     | 
    
         
            -
                  end
         
     | 
| 
       117 
     | 
    
         
            -
                end
         
     | 
| 
       118 
     | 
    
         
            -
              
         
     | 
| 
       119 
     | 
    
         
            -
             
     | 
| 
       120 
     | 
    
         
            -
                # check the number of items included in the array
         
     | 
| 
       121 
     | 
    
         
            -
                def count_for(item)
         
     | 
| 
       122 
     | 
    
         
            -
                  count = 0
         
     | 
| 
       123 
     | 
    
         
            -
                  self.each {|x| count += 1 if x == item}
         
     | 
| 
       124 
     | 
    
         
            -
                  return count
         
     | 
| 
       125 
     | 
    
         
            -
                end
         
     | 
| 
       126 
     | 
    
         
            -
              
         
     | 
| 
       127 
     | 
    
         
            -
              
         
     | 
| 
       128 
     | 
    
         
            -
                # return the item after the given val in array
         
     | 
| 
       129 
     | 
    
         
            -
                # returns val if no item found or val is not included
         
     | 
| 
       130 
     | 
    
         
            -
                # toggle :cycle => true to continue search at beginn of array if end is reached
         
     | 
| 
       131 
     | 
    
         
            -
                def next(val, options = {})
         
     | 
| 
       132 
     | 
    
         
            -
                  i = self.index(val)
         
     | 
| 
       133 
     | 
    
         
            -
                  return val if i.nil?
         
     | 
| 
       134 
     | 
    
         
            -
                  
         
     | 
| 
       135 
     | 
    
         
            -
                  i == self.size-1 ?
         
     | 
| 
       136 
     | 
    
         
            -
                    (options[:cycle] == true ? self.first : val) : self[i+1] 
         
     | 
| 
       137 
     | 
    
         
            -
                end  
         
     | 
| 
       138 
     | 
    
         
            -
              
         
     | 
| 
       139 
     | 
    
         
            -
              
         
     | 
| 
       140 
     | 
    
         
            -
                # Schnittmenge / Intersection zwischen 2 Arrays
         
     | 
| 
       141 
     | 
    
         
            -
                def isec(b)
         
     | 
| 
       142 
     | 
    
         
            -
                  raise ArgumentError, "#{b.inspect} is not an array" if !b.is_a?(Array)
         
     | 
| 
       143 
     | 
    
         
            -
                  (self- (self-b))
         
     | 
| 
       144 
     | 
    
         
            -
                end  
         
     | 
| 
       145 
     | 
    
         
            -
              
         
     | 
| 
       146 
     | 
    
         
            -
                # like except for hash
         
     | 
| 
       147 
     | 
    
         
            -
                def except(*args)
         
     | 
| 
       148 
     | 
    
         
            -
                  excluded = *args
         
     | 
| 
       149 
     | 
    
         
            -
                  return self - excluded
         
     | 
| 
       150 
     | 
    
         
            -
                end  
         
     | 
| 
       151 
     | 
    
         
            -
              
         
     | 
| 
       152 
     | 
    
         
            -
                # break array into n arrays
         
     | 
| 
       153 
     | 
    
         
            -
                def seperate(n = 8)
         
     | 
| 
       154 
     | 
    
         
            -
            <<<<<<< HEAD
         
     | 
| 
       155 
     | 
    
         
            -
                  f = n
         
     | 
| 
       156 
     | 
    
         
            -
                  aks_size  = self.size
         
     | 
| 
       157 
     | 
    
         
            -
                  rest      = aks_size % f
         
     | 
| 
       158 
     | 
    
         
            -
             
     | 
| 
       159 
     | 
    
         
            -
                  stack = ((aks_size - rest) / f)
         
     | 
| 
       160 
     | 
    
         
            -
             
     | 
| 
       161 
     | 
    
         
            -
                  arrays = (1..f).to_a
         
     | 
| 
       162 
     | 
    
         
            -
             
     | 
| 
       163 
     | 
    
         
            -
                  arrays.map! {|i| self.first(stack*i).last(stack) }
         
     | 
| 
       164 
     | 
    
         
            -
            =======
         
     | 
| 
       165 
     | 
    
         
            -
                  @f = n
         
     | 
| 
       166 
     | 
    
         
            -
                  aks_size  = self.size
         
     | 
| 
       167 
     | 
    
         
            -
                  rest      = aks_size % @f
         
     | 
| 
       168 
     | 
    
         
            -
             
     | 
| 
       169 
     | 
    
         
            -
                  @stack = ((aks_size - rest) / @f)
         
     | 
| 
       170 
     | 
    
         
            -
             
     | 
| 
       171 
     | 
    
         
            -
                  arrays = (1..@f).to_a
         
     | 
| 
       172 
     | 
    
         
            -
             
     | 
| 
       173 
     | 
    
         
            -
                  arrays.map! {|i| self.first(@stack*i).last(@stack) }
         
     | 
| 
       174 
     | 
    
         
            -
            >>>>>>> ad58e345c5de2638e34e44d69bb19b0ebebcd41e
         
     | 
| 
       175 
     | 
    
         
            -
                  arrays[-1] += self.last(rest) if rest != 0
         
     | 
| 
       176 
     | 
    
         
            -
                  #arrays.last.pop if (arrays.last.last.empty? || arrays.last.last.blank?)
         
     | 
| 
       177 
     | 
    
         
            -
                  return arrays
         
     | 
| 
       178 
     | 
    
         
            -
                end
         
     | 
| 
       179 
     | 
    
         
            -
              
         
     | 
| 
       180 
     | 
    
         
            -
                # [1,2,3,5,6,7].stack(2)
         
     | 
| 
       181 
     | 
    
         
            -
                #  will return [[1, 2], [3, 5], [6, 7]]
         
     | 
| 
       182 
     | 
    
         
            -
                def stack(n = 4)
         
     | 
| 
       183 
     | 
    
         
            -
                  arr = []
         
     | 
| 
       184 
     | 
    
         
            -
                  i = (self.size.to_f/n).ceil
         
     | 
| 
       185 
     | 
    
         
            -
                  i.times do |x|
         
     | 
| 
       186 
     | 
    
         
            -
                    arr << self[x*n..(((x+1)*n)-1)]
         
     | 
| 
       187 
     | 
    
         
            -
                  end    
         
     | 
| 
       188 
     | 
    
         
            -
                  return arr
         
     | 
| 
       189 
     | 
    
         
            -
                end  
         
     | 
| 
       190 
     | 
    
         
            -
              
         
     | 
| 
       191 
     | 
    
         
            -
             
     | 
| 
       192 
     | 
    
         
            -
                # Prepare array for use with mysql IN operator
         
     | 
| 
       193 
     | 
    
         
            -
                def to_sql
         
     | 
| 
       194 
     | 
    
         
            -
                  return "(NULL)" if self.empty?
         
     | 
| 
       195 
     | 
    
         
            -
                  if self.first.is_a?(Numeric)
         
     | 
| 
       196 
     | 
    
         
            -
                    return "(#{self.join(',')})"
         
     | 
| 
       197 
     | 
    
         
            -
                  else
         
     | 
| 
       198 
     | 
    
         
            -
                    return "(#{self.map{|i| "'#{i.to_s}'"}.join(',')})"
         
     | 
| 
       199 
     | 
    
         
            -
                  end    
         
     | 
| 
       200 
     | 
    
         
            -
                end 
         
     | 
| 
       201 
     | 
    
         
            -
              
         
     | 
| 
       202 
     | 
    
         
            -
                #== Untested / deprecated functions below, should be moved somewhere else!
         
     | 
| 
       203 
     | 
    
         
            -
                # Ignore these functions, there are neither tested nor documented, use them for fun if you like but dont ask me ;-)
         
     | 
| 
       204 
     | 
    
         
            -
              
         
     | 
| 
       205 
     | 
    
         
            -
                def fill_with_sth(sth, size)
         
     | 
| 
       206 
     | 
    
         
            -
                  ary_length = self.size
         
     | 
| 
       207 
     | 
    
         
            -
                  diff = size - ary_length
         
     | 
| 
       208 
     | 
    
         
            -
                  if diff > 0
         
     | 
| 
       209 
     | 
    
         
            -
                    pop = Array.new(diff){|i| sth}
         
     | 
| 
       210 
     | 
    
         
            -
                    new_ary = pop.push(self).flatten!
         
     | 
| 
       211 
     | 
    
         
            -
                    return new_ary
         
     | 
| 
       212 
     | 
    
         
            -
                  else
         
     | 
| 
       213 
     | 
    
         
            -
                    return self
         
     | 
| 
       214 
     | 
    
         
            -
                  end
         
     | 
| 
       215 
     | 
    
         
            -
                end
         
     | 
| 
       216 
     | 
    
         
            -
             
     | 
| 
       217 
     | 
    
         
            -
             
     | 
| 
       218 
     | 
    
         
            -
                # Generiert einen JSON-String aus einem Array mit Werten
         
     | 
| 
       219 
     | 
    
         
            -
                def json_labels
         
     | 
| 
       220 
     | 
    
         
            -
                  json = "["
         
     | 
| 
       221 
     | 
    
         
            -
                  self.each_with_index {|l,i| json << '{"id": "%s", "text": "%s"}' % [i, l] ; json << "," unless i+1 == self.size}
         
     | 
| 
       222 
     | 
    
         
            -
                  json << "]"
         
     | 
| 
       223 
     | 
    
         
            -
                end
         
     | 
| 
       224 
     | 
    
         
            -
             
     | 
| 
       225 
     | 
    
         
            -
                def to_text(sep = "<br />")
         
     | 
| 
       226 
     | 
    
         
            -
                  if Rails.env == "development"
         
     | 
| 
       227 
     | 
    
         
            -
                    raise "#REMOVED - use .join() - (17.12.2013, 15:18, Florian Eck)"
         
     | 
| 
       228 
     | 
    
         
            -
                  else  
         
     | 
| 
       229 
     | 
    
         
            -
                    self.join(sep)
         
     | 
| 
       230 
     | 
    
         
            -
                  end  
         
     | 
| 
       231 
     | 
    
         
            -
            <<<<<<< HEAD
         
     | 
| 
       232 
     | 
    
         
            -
                end 
         
     | 
| 
       233 
     | 
    
         
            -
                
         
     | 
| 
       234 
     | 
    
         
            -
                
         
     | 
| 
       235 
     | 
    
         
            -
                def interpolate(filtered_value = nil, options = {})
         
     | 
| 
       236 
     | 
    
         
            -
                  begin
         
     | 
| 
       237 
     | 
    
         
            -
                  
         
     | 
| 
       238 
     | 
    
         
            -
                    int_start_value = nil
         
     | 
| 
       239 
     | 
    
         
            -
                    int_end_value   = nil
         
     | 
| 
       240 
     | 
    
         
            -
                    int_from        = 0
         
     | 
| 
       241 
     | 
    
         
            -
                    int_to          = 0 
         
     | 
| 
       242 
     | 
    
         
            -
                    int_steps       = 0 
         
     | 
| 
       243 
     | 
    
         
            -
                  
         
     | 
| 
       244 
     | 
    
         
            -
                    array_with_interpolation = []
         
     | 
| 
       245 
     | 
    
         
            -
                  
         
     | 
| 
       246 
     | 
    
         
            -
                    self.each_with_index do |x,i| 
         
     | 
| 
       247 
     | 
    
         
            -
                      if i > 0
         
     | 
| 
       248 
     | 
    
         
            -
                        if x != filtered_value
         
     | 
| 
       249 
     | 
    
         
            -
                          # Wenn der letze ein fehler war ist die strecke zuende
         
     | 
| 
       250 
     | 
    
         
            -
                          if self[i-1] == filtered_value
         
     | 
| 
       251 
     | 
    
         
            -
                          
         
     | 
| 
       252 
     | 
    
         
            -
                            if i-1 == 0
         
     | 
| 
       253 
     | 
    
         
            -
                              # Berechnung anstieg der linearfunktion zwischen Start-und Endpunkt
         
     | 
| 
       254 
     | 
    
         
            -
                              # 
         
     | 
| 
       255 
     | 
    
         
            -
                              m = (self[i+1]-x)
         
     | 
| 
       256 
     | 
    
         
            -
                            
         
     | 
| 
       257 
     | 
    
         
            -
                              array_with_interpolation[0] = x-m
         
     | 
| 
       258 
     | 
    
         
            -
                              array_with_interpolation << x
         
     | 
| 
       259 
     | 
    
         
            -
                            
         
     | 
| 
       260 
     | 
    
         
            -
                            else  
         
     | 
| 
       261 
     | 
    
         
            -
                              int_end_value = x
         
     | 
| 
       262 
     | 
    
         
            -
                              int_to        = i
         
     | 
| 
       263 
     | 
    
         
            -
                            
         
     | 
| 
       264 
     | 
    
         
            -
                              # Berechnung anstieg der linearfunktion zwischen Start-und Endpunkt
         
     | 
| 
       265 
     | 
    
         
            -
                              m = (int_end_value-int_start_value).fdiv((int_to-int_from))
         
     | 
| 
       266 
     | 
    
         
            -
                          
         
     | 
| 
       267 
     | 
    
         
            -
                              # Fülle fehlende werte mit werten (y = mx + b)
         
     | 
| 
       268 
     | 
    
         
            -
                              int_steps.times {|mi| array_with_interpolation << (int_start_value+((mi+1)*m)) }
         
     | 
| 
       269 
     | 
    
         
            -
                              array_with_interpolation << int_end_value
         
     | 
| 
       270 
     | 
    
         
            -
                          
         
     | 
| 
       271 
     | 
    
         
            -
                              # Reset all values
         
     | 
| 
       272 
     | 
    
         
            -
                              int_start_value = int_end_value
         
     | 
| 
       273 
     | 
    
         
            -
                              int_end_value   = nil
         
     | 
| 
       274 
     | 
    
         
            -
                              int_from        = 0
         
     | 
| 
       275 
     | 
    
         
            -
                              int_to          = 0 
         
     | 
| 
       276 
     | 
    
         
            -
                              int_steps       = 0  
         
     | 
| 
       277 
     | 
    
         
            -
                              puts array_with_interpolation.inspect
         
     | 
| 
       278 
     | 
    
         
            -
                            end  
         
     | 
| 
       279 
     | 
    
         
            -
                          else  
         
     | 
| 
       280 
     | 
    
         
            -
                            int_start_value = x
         
     | 
| 
       281 
     | 
    
         
            -
                            array_with_interpolation << x
         
     | 
| 
       282 
     | 
    
         
            -
                          end
         
     | 
| 
       283 
     | 
    
         
            -
                        # Wenn letzer wert fehlerhaft  
         
     | 
| 
       284 
     | 
    
         
            -
                        elsif i == self.size-1 && x == filtered_value
         
     | 
| 
       285 
     | 
    
         
            -
                          # Berechnung anstieg der linearfunktion zwischen Start-und Endpunkt
         
     | 
| 
       286 
     | 
    
         
            -
                          # Berechnung über gesamtes array
         
     | 
| 
       287 
     | 
    
         
            -
                          m = (array_with_interpolation.last-array_with_interpolation.first).fdiv(array_with_interpolation.size-1)
         
     | 
| 
       288 
     | 
    
         
            -
                          array_with_interpolation << (array_with_interpolation.last+m)
         
     | 
| 
       289 
     | 
    
         
            -
                        else  
         
     | 
| 
       290 
     | 
    
         
            -
                          int_steps += 1
         
     | 
| 
       291 
     | 
    
         
            -
                          int_from = i-int_steps
         
     | 
| 
       292 
     | 
    
         
            -
                        end    
         
     | 
| 
       293 
     | 
    
         
            -
                  
         
     | 
| 
       294 
     | 
    
         
            -
                      else
         
     | 
| 
       295 
     | 
    
         
            -
                        int_start_value = x
         
     | 
| 
       296 
     | 
    
         
            -
                        array_with_interpolation << x
         
     | 
| 
       297 
     | 
    
         
            -
                      end    
         
     | 
| 
       298 
     | 
    
         
            -
                    
         
     | 
| 
       299 
     | 
    
         
            -
                    end  
         
     | 
| 
       300 
     | 
    
         
            -
                  
         
     | 
| 
       301 
     | 
    
         
            -
                    return array_with_interpolation
         
     | 
| 
       302 
     | 
    
         
            -
                  rescue
         
     | 
| 
       303 
     | 
    
         
            -
                    puts "WARNING: Interpolation not possible!".red
         
     | 
| 
       304 
     | 
    
         
            -
                    return self
         
     | 
| 
       305 
     | 
    
         
            -
                  end    
         
     | 
| 
       306 
     | 
    
         
            -
                  
         
     | 
| 
       307 
     | 
    
         
            -
                end   
         
     | 
| 
       308 
     | 
    
         
            -
            =======
         
     | 
| 
       309 
     | 
    
         
            -
                end  
         
     | 
| 
       310 
     | 
    
         
            -
            >>>>>>> ad58e345c5de2638e34e44d69bb19b0ebebcd41e
         
     | 
| 
       311 
     | 
    
         
            -
             
     | 
| 
       312 
     | 
    
         
            -
              end  
         
     | 
| 
       313 
     | 
    
         
            -
            end
         
     | 
    
        data/lib/numbers.rb.orig
    DELETED
    
    | 
         @@ -1,220 +0,0 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            # -*- encoding : utf-8 -*-
         
     | 
| 
       2 
     | 
    
         
            -
            # Numeric Extensions
         
     | 
| 
       3 
     | 
    
         
            -
            module Numbers
         
     | 
| 
       4 
     | 
    
         
            -
              
         
     | 
| 
       5 
     | 
    
         
            -
            <<<<<<< HEAD
         
     | 
| 
       6 
     | 
    
         
            -
            =======
         
     | 
| 
       7 
     | 
    
         
            -
              # returns an array with all prime numbers up to limit
         
     | 
| 
       8 
     | 
    
         
            -
              def self.prime_numbers(limit = 1_000_000, options = {:verbose => false})
         
     | 
| 
       9 
     | 
    
         
            -
                i = 1; divisors = [2]; primzahlen = []
         
     | 
| 
       10 
     | 
    
         
            -
                t = Time.now
         
     | 
| 
       11 
     | 
    
         
            -
                while i <= limit do
         
     | 
| 
       12 
     | 
    
         
            -
                  p = true
         
     | 
| 
       13 
     | 
    
         
            -
                  divisors.each do |d|
         
     | 
| 
       14 
     | 
    
         
            -
                    if i%d == 0 && d != i
         
     | 
| 
       15 
     | 
    
         
            -
                      p = false
         
     | 
| 
       16 
     | 
    
         
            -
                      break
         
     | 
| 
       17 
     | 
    
         
            -
                    end  
         
     | 
| 
       18 
     | 
    
         
            -
                  end
         
     | 
| 
       19 
     | 
    
         
            -
                  
         
     | 
| 
       20 
     | 
    
         
            -
                  if p == true
         
     | 
| 
       21 
     | 
    
         
            -
                    puts i if options[:verbose] == true
         
     | 
| 
       22 
     | 
    
         
            -
                    primzahlen << i
         
     | 
| 
       23 
     | 
    
         
            -
                  end    
         
     | 
| 
       24 
     | 
    
         
            -
                  
         
     | 
| 
       25 
     | 
    
         
            -
                  i += 1
         
     | 
| 
       26 
     | 
    
         
            -
                  divisors << divisors.last+1
         
     | 
| 
       27 
     | 
    
         
            -
                end  
         
     | 
| 
       28 
     | 
    
         
            -
                
         
     | 
| 
       29 
     | 
    
         
            -
                puts "Took #{(t-Time.now).abs.round(2)} sec." if options[:verbose] == true
         
     | 
| 
       30 
     | 
    
         
            -
                return primzahlen
         
     | 
| 
       31 
     | 
    
         
            -
              end  
         
     | 
| 
       32 
     | 
    
         
            -
              
         
     | 
| 
       33 
     | 
    
         
            -
            >>>>>>> ad58e345c5de2638e34e44d69bb19b0ebebcd41e
         
     | 
| 
       34 
     | 
    
         
            -
              Numeric.class_eval do
         
     | 
| 
       35 
     | 
    
         
            -
              
         
     | 
| 
       36 
     | 
    
         
            -
                # Convert Number to numeric german style with precision
         
     | 
| 
       37 
     | 
    
         
            -
                def to_euro(label = nil, options = {})
         
     | 
| 
       38 
     | 
    
         
            -
                  options[:precision] ||= 2
         
     | 
| 
       39 
     | 
    
         
            -
                  result = ActionController::Base.helpers.number_with_precision(self, :precision => options[:precision], :separator => ",", :delimiter => ".")
         
     | 
| 
       40 
     | 
    
         
            -
                
         
     | 
| 
       41 
     | 
    
         
            -
                  if options[:pre] == true && self > 0
         
     | 
| 
       42 
     | 
    
         
            -
                    result = "+#{result}"
         
     | 
| 
       43 
     | 
    
         
            -
                  elsif options[:pre] == true && self < 0
         
     | 
| 
       44 
     | 
    
         
            -
                    result = "-#{result}"
         
     | 
| 
       45 
     | 
    
         
            -
                  end  
         
     | 
| 
       46 
     | 
    
         
            -
                    
         
     | 
| 
       47 
     | 
    
         
            -
                
         
     | 
| 
       48 
     | 
    
         
            -
                  if !label.blank?
         
     | 
| 
       49 
     | 
    
         
            -
                    return [result, label].join(" ").html_safe
         
     | 
| 
       50 
     | 
    
         
            -
                  else
         
     | 
| 
       51 
     | 
    
         
            -
                    return result
         
     | 
| 
       52 
     | 
    
         
            -
                  end    
         
     | 
| 
       53 
     | 
    
         
            -
                end
         
     | 
| 
       54 
     | 
    
         
            -
              
         
     | 
| 
       55 
     | 
    
         
            -
                # Convert Number to numeric german style without precision
         
     | 
| 
       56 
     | 
    
         
            -
                def to_de(label=nil)
         
     | 
| 
       57 
     | 
    
         
            -
            <<<<<<< HEAD
         
     | 
| 
       58 
     | 
    
         
            -
            =======
         
     | 
| 
       59 
     | 
    
         
            -
                  nr = self.round.to_i
         
     | 
| 
       60 
     | 
    
         
            -
            >>>>>>> ad58e345c5de2638e34e44d69bb19b0ebebcd41e
         
     | 
| 
       61 
     | 
    
         
            -
                  result = ActionController::Base.helpers.number_with_precision(self, :precision => 0, :separator => ",", :delimiter => ".")
         
     | 
| 
       62 
     | 
    
         
            -
                  if !label.blank?
         
     | 
| 
       63 
     | 
    
         
            -
                    return [result, label].join(" ").html_safe
         
     | 
| 
       64 
     | 
    
         
            -
                  else
         
     | 
| 
       65 
     | 
    
         
            -
                    return result
         
     | 
| 
       66 
     | 
    
         
            -
                  end
         
     | 
| 
       67 
     | 
    
         
            -
                end  
         
     | 
| 
       68 
     | 
    
         
            -
              
         
     | 
| 
       69 
     | 
    
         
            -
                # Inflate number, y = duration of years, f = percentage
         
     | 
| 
       70 
     | 
    
         
            -
                # tested
         
     | 
| 
       71 
     | 
    
         
            -
                def infla(y=40,f=2)
         
     | 
| 
       72 
     | 
    
         
            -
                  self.to_f*(f.to_q**y)
         
     | 
| 
       73 
     | 
    
         
            -
                end
         
     | 
| 
       74 
     | 
    
         
            -
              
         
     | 
| 
       75 
     | 
    
         
            -
                # Deflate number, y = duration of years, f = percentage
         
     | 
| 
       76 
     | 
    
         
            -
                # tested
         
     | 
| 
       77 
     | 
    
         
            -
                def defla(y=40,f=2)
         
     | 
| 
       78 
     | 
    
         
            -
                  self.to_f*((1-(f.fdiv(100)))**y)
         
     | 
| 
       79 
     | 
    
         
            -
                end
         
     | 
| 
       80 
     | 
    
         
            -
              
         
     | 
| 
       81 
     | 
    
         
            -
                # Prüfen, welche Zahl aus dem Array am nächsten an der aktuellen Dran ist
         
     | 
| 
       82 
     | 
    
         
            -
                # tested
         
     | 
| 
       83 
     | 
    
         
            -
                def get_closest(nrs = [], lim = :ceil)
         
     | 
| 
       84 
     | 
    
         
            -
                
         
     | 
| 
       85 
     | 
    
         
            -
                  com = {}
         
     | 
| 
       86 
     | 
    
         
            -
                  com_a = []
         
     | 
| 
       87 
     | 
    
         
            -
                  nrs.each do |n|
         
     | 
| 
       88 
     | 
    
         
            -
                    case lim
         
     | 
| 
       89 
     | 
    
         
            -
                    when :ceil
         
     | 
| 
       90 
     | 
    
         
            -
                      x = ((self+0.001)-n).abs
         
     | 
| 
       91 
     | 
    
         
            -
                    when :floor
         
     | 
| 
       92 
     | 
    
         
            -
                      x = ((self-0.001)-n).abs
         
     | 
| 
       93 
     | 
    
         
            -
                    else
         
     | 
| 
       94 
     | 
    
         
            -
                      raise ArgumentError, "lim must be :ceil or :floor"
         
     | 
| 
       95 
     | 
    
         
            -
                    end    
         
     | 
| 
       96 
     | 
    
         
            -
                    com.merge!(x => n)
         
     | 
| 
       97 
     | 
    
         
            -
                    com_a << x
         
     | 
| 
       98 
     | 
    
         
            -
                  end
         
     | 
| 
       99 
     | 
    
         
            -
                  return com[com_a.min]  
         
     | 
| 
       100 
     | 
    
         
            -
                end  
         
     | 
| 
       101 
     | 
    
         
            -
              
         
     | 
| 
       102 
     | 
    
         
            -
                # tested
         
     | 
| 
       103 
     | 
    
         
            -
                def min(ref)
         
     | 
| 
       104 
     | 
    
         
            -
            <<<<<<< HEAD
         
     | 
| 
       105 
     | 
    
         
            -
                  [self.to_f, ref.to_f].min
         
     | 
| 
       106 
     | 
    
         
            -
            =======
         
     | 
| 
       107 
     | 
    
         
            -
                  [self, ref].min
         
     | 
| 
       108 
     | 
    
         
            -
            >>>>>>> ad58e345c5de2638e34e44d69bb19b0ebebcd41e
         
     | 
| 
       109 
     | 
    
         
            -
                end
         
     | 
| 
       110 
     | 
    
         
            -
              
         
     | 
| 
       111 
     | 
    
         
            -
                # tested
         
     | 
| 
       112 
     | 
    
         
            -
                def max(ref)
         
     | 
| 
       113 
     | 
    
         
            -
            <<<<<<< HEAD
         
     | 
| 
       114 
     | 
    
         
            -
                  [self.to_f, ref.to_f].max
         
     | 
| 
       115 
     | 
    
         
            -
            =======
         
     | 
| 
       116 
     | 
    
         
            -
                  [self, ref].max
         
     | 
| 
       117 
     | 
    
         
            -
            >>>>>>> ad58e345c5de2638e34e44d69bb19b0ebebcd41e
         
     | 
| 
       118 
     | 
    
         
            -
                end
         
     | 
| 
       119 
     | 
    
         
            -
              
         
     | 
| 
       120 
     | 
    
         
            -
                # Wert zwischen den Grenzen, ansonsten ober-oder unterkante
         
     | 
| 
       121 
     | 
    
         
            -
                # tested
         
     | 
| 
       122 
     | 
    
         
            -
                def min_max(m1, m2)
         
     | 
| 
       123 
     | 
    
         
            -
                  self.min(m2).max(m1)
         
     | 
| 
       124 
     | 
    
         
            -
                end  
         
     | 
| 
       125 
     | 
    
         
            -
              
         
     | 
| 
       126 
     | 
    
         
            -
                # => tested
         
     | 
| 
       127 
     | 
    
         
            -
                def fdiv(d)
         
     | 
| 
       128 
     | 
    
         
            -
                  self.to_f/d
         
     | 
| 
       129 
     | 
    
         
            -
                end
         
     | 
| 
       130 
     | 
    
         
            -
              
         
     | 
| 
       131 
     | 
    
         
            -
              
         
     | 
| 
       132 
     | 
    
         
            -
                # Finanzmathematik, Zinsen und so
         
     | 
| 
       133 
     | 
    
         
            -
                def to_q
         
     | 
| 
       134 
     | 
    
         
            -
                  1+(self/100.0)
         
     | 
| 
       135 
     | 
    
         
            -
                end  
         
     | 
| 
       136 
     | 
    
         
            -
              
         
     | 
| 
       137 
     | 
    
         
            -
                def alpha_sum(u,o)
         
     | 
| 
       138 
     | 
    
         
            -
                  (self**u - self**(o+1)).fdiv(1-self)
         
     | 
| 
       139 
     | 
    
         
            -
                end  
         
     | 
| 
       140 
     | 
    
         
            -
              
         
     | 
| 
       141 
     | 
    
         
            -
              
         
     | 
| 
       142 
     | 
    
         
            -
                def to_time(options = {})
         
     | 
| 
       143 
     | 
    
         
            -
                  values = [ self.to_i/3600, self.to_i / 60 % 60, self.to_i%60 ].map{ |t| t.to_s.rjust(2, '0') }
         
     | 
| 
       144 
     | 
    
         
            -
                  if options[:split] == true
         
     | 
| 
       145 
     | 
    
         
            -
                    return {:h => values[0].round, :m => values[1].round, :s => values[2].round}
         
     | 
| 
       146 
     | 
    
         
            -
                  elsif options[:discard_hour] == true && values[0] == "00"
         
     | 
| 
       147 
     | 
    
         
            -
                    return values[1,2].join(':')
         
     | 
| 
       148 
     | 
    
         
            -
                  else  
         
     | 
| 
       149 
     | 
    
         
            -
                    return values.join(':')
         
     | 
| 
       150 
     | 
    
         
            -
                  end  
         
     | 
| 
       151 
     | 
    
         
            -
                end 
         
     | 
| 
       152 
     | 
    
         
            -
              
         
     | 
| 
       153 
     | 
    
         
            -
                
         
     | 
| 
       154 
     | 
    
         
            -
              end  
         
     | 
| 
       155 
     | 
    
         
            -
             
     | 
| 
       156 
     | 
    
         
            -
              Integer.class_eval do
         
     | 
| 
       157 
     | 
    
         
            -
              
         
     | 
| 
       158 
     | 
    
         
            -
              
         
     | 
| 
       159 
     | 
    
         
            -
              
         
     | 
| 
       160 
     | 
    
         
            -
                def odd?
         
     | 
| 
       161 
     | 
    
         
            -
                  self%2 == 0
         
     | 
| 
       162 
     | 
    
         
            -
                end
         
     | 
| 
       163 
     | 
    
         
            -
              
         
     | 
| 
       164 
     | 
    
         
            -
                def even?
         
     | 
| 
       165 
     | 
    
         
            -
                  !self.odd?
         
     | 
| 
       166 
     | 
    
         
            -
                end    
         
     | 
| 
       167 
     | 
    
         
            -
              
         
     | 
| 
       168 
     | 
    
         
            -
             
     | 
| 
       169 
     | 
    
         
            -
                # Cals
         
     | 
| 
       170 
     | 
    
         
            -
                def to_years(options = {:s_years => "Jahre", :s_months => "Monate", :s_sep => "und"})
         
     | 
| 
       171 
     | 
    
         
            -
                  x = [self/12, self%12]
         
     | 
| 
       172 
     | 
    
         
            -
                  "#{x[0]} #{options[:s_years]} #{options[:s_sep]} #{x[1]} #{options[:s_months]}"
         
     | 
| 
       173 
     | 
    
         
            -
                end
         
     | 
| 
       174 
     | 
    
         
            -
              
         
     | 
| 
       175 
     | 
    
         
            -
                def days_to_months(options = {:s_days => "Tage", :s_months => "Monate", :s_sep => "und"})
         
     | 
| 
       176 
     | 
    
         
            -
                  x = [self/30, self%30]
         
     | 
| 
       177 
     | 
    
         
            -
                  "#{x[0]} #{options[:s_months]} #{options[:s_sep]} #{x[1]} #{options[:s_days]}"
         
     | 
| 
       178 
     | 
    
         
            -
            <<<<<<< HEAD
         
     | 
| 
       179 
     | 
    
         
            -
                end 
         
     | 
| 
       180 
     | 
    
         
            -
                
         
     | 
| 
       181 
     | 
    
         
            -
                
         
     | 
| 
       182 
     | 
    
         
            -
                # Split number in smallest prime factors
         
     | 
| 
       183 
     | 
    
         
            -
                def prime_factors(options = {})
         
     | 
| 
       184 
     | 
    
         
            -
                  options[:nrs] ||= Math.sqrt(self).floor.prime_numbers
         
     | 
| 
       185 
     | 
    
         
            -
                  options[:nrs].each_with_index do |n,i|
         
     | 
| 
       186 
     | 
    
         
            -
                    if self%n == 0
         
     | 
| 
       187 
     | 
    
         
            -
                      return [n, (self/n).prime_factors(:nrs => options[:nrs])].flatten.except(1)
         
     | 
| 
       188 
     | 
    
         
            -
                    elsif i == options[:nrs].size-1
         
     | 
| 
       189 
     | 
    
         
            -
                      return [self]
         
     | 
| 
       190 
     | 
    
         
            -
                    end      
         
     | 
| 
       191 
     | 
    
         
            -
                  end
         
     | 
| 
       192 
     | 
    
         
            -
                end
         
     | 
| 
       193 
     | 
    
         
            -
                
         
     | 
| 
       194 
     | 
    
         
            -
                # Create list with prime numbers up to 'self'  
         
     | 
| 
       195 
     | 
    
         
            -
                def prime_numbers
         
     | 
| 
       196 
     | 
    
         
            -
                  s = (0..self).to_a
         
     | 
| 
       197 
     | 
    
         
            -
                  s[0] = s[1] = nil
         
     | 
| 
       198 
     | 
    
         
            -
                  s.each do |p|
         
     | 
| 
       199 
     | 
    
         
            -
                    next unless p
         
     | 
| 
       200 
     | 
    
         
            -
                    break if p * p > self
         
     | 
| 
       201 
     | 
    
         
            -
                    (p*p).step(self, p) { |m| s[m] = nil }
         
     | 
| 
       202 
     | 
    
         
            -
                  end
         
     | 
| 
       203 
     | 
    
         
            -
                  s.compact
         
     | 
| 
       204 
     | 
    
         
            -
                end  
         
     | 
| 
       205 
     | 
    
         
            -
             
         
     | 
| 
       206 
     | 
    
         
            -
            =======
         
     | 
| 
       207 
     | 
    
         
            -
                end     
         
     | 
| 
       208 
     | 
    
         
            -
              
         
     | 
| 
       209 
     | 
    
         
            -
            >>>>>>> ad58e345c5de2638e34e44d69bb19b0ebebcd41e
         
     | 
| 
       210 
     | 
    
         
            -
              end
         
     | 
| 
       211 
     | 
    
         
            -
             
     | 
| 
       212 
     | 
    
         
            -
             
     | 
| 
       213 
     | 
    
         
            -
              Fixnum.class_eval do
         
     | 
| 
       214 
     | 
    
         
            -
                def nan?
         
     | 
| 
       215 
     | 
    
         
            -
                  self.to_f.nan?
         
     | 
| 
       216 
     | 
    
         
            -
                end
         
     | 
| 
       217 
     | 
    
         
            -
              end
         
     | 
| 
       218 
     | 
    
         
            -
             
     | 
| 
       219 
     | 
    
         
            -
            end
         
     | 
| 
       220 
     | 
    
         
            -
             
     | 
    
        data/lib/smart_currency.rb.orig
    DELETED
    
    | 
         @@ -1,74 +0,0 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            # -*- encoding : utf-8 -*-
         
     | 
| 
       2 
     | 
    
         
            -
            module SmartCurrency
         
     | 
| 
       3 
     | 
    
         
            -
              
         
     | 
| 
       4 
     | 
    
         
            -
              def self.included(base)
         
     | 
| 
       5 
     | 
    
         
            -
                base.extend ClassMethods
         
     | 
| 
       6 
     | 
    
         
            -
              end
         
     | 
| 
       7 
     | 
    
         
            -
              
         
     | 
| 
       8 
     | 
    
         
            -
              module ClassMethods
         
     | 
| 
       9 
     | 
    
         
            -
                def smart_currency
         
     | 
| 
       10 
     | 
    
         
            -
                  unless smart_currency?
         
     | 
| 
       11 
     | 
    
         
            -
                      include InstanceMethods
         
     | 
| 
       12 
     | 
    
         
            -
                      auto_attributes = []
         
     | 
| 
       13 
     | 
    
         
            -
                      self.skip_time_zone_conversion_for_attributes = []
         
     | 
| 
       14 
     | 
    
         
            -
            <<<<<<< HEAD
         
     | 
| 
       15 
     | 
    
         
            -
                      attributes = self.columns.select {|c| (c.type == :integer || c.type == :decimal) && !c.name.match("id") }
         
     | 
| 
       16 
     | 
    
         
            -
            =======
         
     | 
| 
       17 
     | 
    
         
            -
                      attributes = self.columns.select {|c| (c.type == :integer || c.type == :decimal) && c.name != "id" }
         
     | 
| 
       18 
     | 
    
         
            -
            >>>>>>> ad58e345c5de2638e34e44d69bb19b0ebebcd41e
         
     | 
| 
       19 
     | 
    
         
            -
                      
         
     | 
| 
       20 
     | 
    
         
            -
                      attributes.each do |a|
         
     | 
| 
       21 
     | 
    
         
            -
                        define_method("#{a.name}=") do |val|
         
     | 
| 
       22 
     | 
    
         
            -
                          self[a.name.to_sym] = currency_to_db(val)
         
     | 
| 
       23 
     | 
    
         
            -
                        end  
         
     | 
| 
       24 
     | 
    
         
            -
                      end  
         
     | 
| 
       25 
     | 
    
         
            -
                      
         
     | 
| 
       26 
     | 
    
         
            -
                  end    
         
     | 
| 
       27 
     | 
    
         
            -
                end
         
     | 
| 
       28 
     | 
    
         
            -
                
         
     | 
| 
       29 
     | 
    
         
            -
                def smart_currency?
         
     | 
| 
       30 
     | 
    
         
            -
                  self.included_modules.include?(InstanceMethods)
         
     | 
| 
       31 
     | 
    
         
            -
                end
         
     | 
| 
       32 
     | 
    
         
            -
                
         
     | 
| 
       33 
     | 
    
         
            -
              end  
         
     | 
| 
       34 
     | 
    
         
            -
             
     | 
| 
       35 
     | 
    
         
            -
              module InstanceMethods # any method placed here will apply to instaces, like @hickwall  
         
     | 
| 
       36 
     | 
    
         
            -
                
         
     | 
| 
       37 
     | 
    
         
            -
                def currency_to_db(string)
         
     | 
| 
       38 
     | 
    
         
            -
                  if string.is_a?(String) 
         
     | 
| 
       39 
     | 
    
         
            -
                    return (string.gsub(/\./, '').gsub(/,/, '.')).to_f
         
     | 
| 
       40 
     | 
    
         
            -
            <<<<<<< HEAD
         
     | 
| 
       41 
     | 
    
         
            -
                  elsif string.nil?
         
     | 
| 
       42 
     | 
    
         
            -
                    return 0
         
     | 
| 
       43 
     | 
    
         
            -
                  else  
         
     | 
| 
       44 
     | 
    
         
            -
            =======
         
     | 
| 
       45 
     | 
    
         
            -
                  else
         
     | 
| 
       46 
     | 
    
         
            -
            >>>>>>> ad58e345c5de2638e34e44d69bb19b0ebebcd41e
         
     | 
| 
       47 
     | 
    
         
            -
                    return string
         
     | 
| 
       48 
     | 
    
         
            -
                  end      
         
     | 
| 
       49 
     | 
    
         
            -
                end
         
     | 
| 
       50 
     | 
    
         
            -
             
     | 
| 
       51 
     | 
    
         
            -
                def currency_to_view(decimal)
         
     | 
| 
       52 
     | 
    
         
            -
                  if !decimal.nil?
         
     | 
| 
       53 
     | 
    
         
            -
                    str = decimal.to_s.split(".")
         
     | 
| 
       54 
     | 
    
         
            -
                    str[1] = "0" unless str[1]
         
     | 
| 
       55 
     | 
    
         
            -
                    if str[1].size == 1
         
     | 
| 
       56 
     | 
    
         
            -
                      str[1] += "0"
         
     | 
| 
       57 
     | 
    
         
            -
                    end
         
     | 
| 
       58 
     | 
    
         
            -
                    if str[0].size == 5 || str[0].size == 6
         
     | 
| 
       59 
     | 
    
         
            -
                      str[0].gsub!(/\B([0-9]{3})\b/,'.\1')
         
     | 
| 
       60 
     | 
    
         
            -
                    elsif str[0].size > 7
         
     | 
| 
       61 
     | 
    
         
            -
                      str[0].gsub!(/([0-9]{3})\b/,'.\1').gsub!(/([0-9]{3}\.)/, '.\1') 
         
     | 
| 
       62 
     | 
    
         
            -
                    else
         
     | 
| 
       63 
     | 
    
         
            -
                      str[0].gsub!(/\B([0-9]{3})/,'.\1')  
         
     | 
| 
       64 
     | 
    
         
            -
                    end
         
     | 
| 
       65 
     | 
    
         
            -
                    str[1].size > 2 ? str[1] = str[1][0..1] : nil
         
     | 
| 
       66 
     | 
    
         
            -
                    return (str[0] + "," + str[1]).to_s  
         
     | 
| 
       67 
     | 
    
         
            -
                  else                                 
         
     | 
| 
       68 
     | 
    
         
            -
                    return "keine Angabe"
         
     | 
| 
       69 
     | 
    
         
            -
                  end  
         
     | 
| 
       70 
     | 
    
         
            -
                end
         
     | 
| 
       71 
     | 
    
         
            -
                
         
     | 
| 
       72 
     | 
    
         
            -
              end
         
     | 
| 
       73 
     | 
    
         
            -
               
         
     | 
| 
       74 
     | 
    
         
            -
            end
         
     | 
    
        data/lib/string_and_more.rb.orig
    DELETED
    
    | 
         @@ -1,303 +0,0 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            # -*- encoding : utf-8 -*-
         
     | 
| 
       2 
     | 
    
         
            -
            module StringAndMore
         
     | 
| 
       3 
     | 
    
         
            -
              String.class_eval do
         
     | 
| 
       4 
     | 
    
         
            -
              
         
     | 
| 
       5 
     | 
    
         
            -
                require "chars_2_remove"
         
     | 
| 
       6 
     | 
    
         
            -
                require 'digest/sha1'
         
     | 
| 
       7 
     | 
    
         
            -
                
         
     | 
| 
       8 
     | 
    
         
            -
                # List with internation chars and their ASCII replacement
         
     | 
| 
       9 
     | 
    
         
            -
                CHARS_TO_REMOVE = Chars2Remove::CHARS
         
     | 
| 
       10 
     | 
    
         
            -
                
         
     | 
| 
       11 
     | 
    
         
            -
                # Characters for creating randdom char combinations
         
     | 
| 
       12 
     | 
    
         
            -
                String::RANDOM_CHARS = {:upcase => "ABCDEFGHIJKLMNOPQRSTUVWXYZ", :downcase => "abcdefghijklmnopqrstuvwxyz", :numbers => "1234567890"}
         
     | 
| 
       13 
     | 
    
         
            -
                
         
     | 
| 
       14 
     | 
    
         
            -
                # String charsets used for numeric encryption
         
     | 
| 
       15 
     | 
    
         
            -
                STRING_CHARSETS = {
         
     | 
| 
       16 
     | 
    
         
            -
                  "a" => String::RANDOM_CHARS[:upcase],
         
     | 
| 
       17 
     | 
    
         
            -
                  "A" => String::RANDOM_CHARS[:downcase],
         
     | 
| 
       18 
     | 
    
         
            -
                  "1" => String::RANDOM_CHARS[:numbers],
         
     | 
| 
       19 
     | 
    
         
            -
                  "ä" => "äöüÄÖÜß",
         
     | 
| 
       20 
     | 
    
         
            -
                  "!" => '!\"§$%&/()=?+*#@,.-;:_\' ¡“”¶¢[]|{}≠¿^°≤≥∞…–‘’<>'
         
     | 
| 
       21 
     | 
    
         
            -
                }
         
     | 
| 
       22 
     | 
    
         
            -
                
         
     | 
| 
       23 
     | 
    
         
            -
                # Array with all strings which can be encrypted
         
     | 
| 
       24 
     | 
    
         
            -
                STRING_BASE = STRING_CHARSETS.values.join("")
         
     | 
| 
       25 
     | 
    
         
            -
              
         
     | 
| 
       26 
     | 
    
         
            -
                # Returns random String, for Passwords, Captachs etc..
         
     | 
| 
       27 
     | 
    
         
            -
                # could create :upcase, :downcase, :numbers or :all
         
     | 
| 
       28 
     | 
    
         
            -
                def self.random_string(l=12, mode = :all)
         
     | 
| 
       29 
     | 
    
         
            -
                  case mode
         
     | 
| 
       30 
     | 
    
         
            -
                  when :all
         
     | 
| 
       31 
     | 
    
         
            -
                    base = String::RANDOM_CHARS.values.join("").split("")
         
     | 
| 
       32 
     | 
    
         
            -
                  else
         
     | 
| 
       33 
     | 
    
         
            -
                    base = String::RANDOM_CHARS[mode].split("")
         
     | 
| 
       34 
     | 
    
         
            -
                  end
         
     | 
| 
       35 
     | 
    
         
            -
                
         
     | 
| 
       36 
     | 
    
         
            -
                  str = ""
         
     | 
| 
       37 
     | 
    
         
            -
                
         
     | 
| 
       38 
     | 
    
         
            -
                  l.times do 
         
     | 
| 
       39 
     | 
    
         
            -
                    str <<  base.shuffle[rand(base.size-1)]
         
     | 
| 
       40 
     | 
    
         
            -
                  end    
         
     | 
| 
       41 
     | 
    
         
            -
                  return str
         
     | 
| 
       42 
     | 
    
         
            -
                end
         
     | 
| 
       43 
     | 
    
         
            -
              
         
     | 
| 
       44 
     | 
    
         
            -
              
         
     | 
| 
       45 
     | 
    
         
            -
                # Extract boolean status from string
         
     | 
| 
       46 
     | 
    
         
            -
                def to_boolean
         
     | 
| 
       47 
     | 
    
         
            -
                  if ['true', 'True', 'TRUE', '1'].include?(self)
         
     | 
| 
       48 
     | 
    
         
            -
                    return true
         
     | 
| 
       49 
     | 
    
         
            -
                  else
         
     | 
| 
       50 
     | 
    
         
            -
                    return false
         
     | 
| 
       51 
     | 
    
         
            -
                  end
         
     | 
| 
       52 
     | 
    
         
            -
                end
         
     | 
| 
       53 
     | 
    
         
            -
              
         
     | 
| 
       54 
     | 
    
         
            -
                # Create string with german date format to Date
         
     | 
| 
       55 
     | 
    
         
            -
              	def to_date
         
     | 
| 
       56 
     | 
    
         
            -
            <<<<<<< HEAD
         
     | 
| 
       57 
     | 
    
         
            -
                  # Try German
         
     | 
| 
       58 
     | 
    
         
            -
                  matched_date = self.match(/((0|1|2|3)[0-9]{1})\.(0[0-9]{1}|10|11|12)\.[0-9]{4}/)
         
     | 
| 
       59 
     | 
    
         
            -
                  
         
     | 
| 
       60 
     | 
    
         
            -
                  if !matched_date.nil?
         
     | 
| 
       61 
     | 
    
         
            -
                    return Date.new(matched_date.to_s.split(".")[2].to_i, matched_date.to_s.split(".")[1].to_i, matched_date.to_s.split(".")[0].to_i)
         
     | 
| 
       62 
     | 
    
         
            -
                  elsif matched_date.nil?
         
     | 
| 
       63 
     | 
    
         
            -
                    matched_date = self.match(/[0-9]{4}-(0[0-9]{1}|10|11|12)-((0|1|2|3)[0-9]{1})/)
         
     | 
| 
       64 
     | 
    
         
            -
                    if !matched_date.nil?
         
     | 
| 
       65 
     | 
    
         
            -
                      return Date.new(matched_date.to_s.split("-")[0].to_i, matched_date.to_s.split("-")[1].to_i, matched_date.to_s.split("-")[2].to_i)
         
     | 
| 
       66 
     | 
    
         
            -
                    end  
         
     | 
| 
       67 
     | 
    
         
            -
                  end 
         
     | 
| 
       68 
     | 
    
         
            -
                   
         
     | 
| 
       69 
     | 
    
         
            -
                  raise ArgumentError, "String has no date like DD.MM.YYYY or YYYY-DD-MM" if matched_date.nil?
         
     | 
| 
       70 
     | 
    
         
            -
            =======
         
     | 
| 
       71 
     | 
    
         
            -
                  matched_date = self.match(/((0|1|2|3)[0-9]{1})\.(0[0-9]{1}|11|12)\.[0-9]{4}/)
         
     | 
| 
       72 
     | 
    
         
            -
                  raise ArgumentError, "String has no date like DD.MM.YYYY" if matched_date.nil?
         
     | 
| 
       73 
     | 
    
         
            -
                  
         
     | 
| 
       74 
     | 
    
         
            -
              	  Date.new(matched_date.to_s.split(".")[2].to_i, matched_date.to_s.split(".")[1].to_i, matched_date.to_s.split(".")[0].to_i)
         
     | 
| 
       75 
     | 
    
         
            -
            >>>>>>> ad58e345c5de2638e34e44d69bb19b0ebebcd41e
         
     | 
| 
       76 
     | 
    
         
            -
              	end
         
     | 
| 
       77 
     | 
    
         
            -
                
         
     | 
| 
       78 
     | 
    
         
            -
                
         
     | 
| 
       79 
     | 
    
         
            -
                def to_number(type = :float)
         
     | 
| 
       80 
     | 
    
         
            -
                  extract = self.match(/[0-9\.,]{1,}/).to_s
         
     | 
| 
       81 
     | 
    
         
            -
                  final = extract.gsub(".", "").gsub(",", ".")
         
     | 
| 
       82 
     | 
    
         
            -
                  case type 
         
     | 
| 
       83 
     | 
    
         
            -
                  when :float
         
     | 
| 
       84 
     | 
    
         
            -
                    return final.to_f
         
     | 
| 
       85 
     | 
    
         
            -
                  else
         
     | 
| 
       86 
     | 
    
         
            -
                    return final.to_i
         
     | 
| 
       87 
     | 
    
         
            -
                  end    
         
     | 
| 
       88 
     | 
    
         
            -
                end  
         
     | 
| 
       89 
     | 
    
         
            -
              
         
     | 
| 
       90 
     | 
    
         
            -
                def to_label(options = {:show_tooltip => false})
         
     | 
| 
       91 
     | 
    
         
            -
                  l = ConceptLabel::LABELS[self]
         
     | 
| 
       92 
     | 
    
         
            -
                  if l.nil? 
         
     | 
| 
       93 
     | 
    
         
            -
                    ConceptLabel.create(:label => self, :attribute_name => self)
         
     | 
| 
       94 
     | 
    
         
            -
                    return self
         
     | 
| 
       95 
     | 
    
         
            -
                  else  
         
     | 
| 
       96 
     | 
    
         
            -
                    unless options[:show_tooltip] == true
         
     | 
| 
       97 
     | 
    
         
            -
                      return l[:label]
         
     | 
| 
       98 
     | 
    
         
            -
                    else
         
     | 
| 
       99 
     | 
    
         
            -
                      return l[:tooltip]
         
     | 
| 
       100 
     | 
    
         
            -
                    end
         
     | 
| 
       101 
     | 
    
         
            -
                  end  
         
     | 
| 
       102 
     | 
    
         
            -
                end
         
     | 
| 
       103 
     | 
    
         
            -
            <<<<<<< HEAD
         
     | 
| 
       104 
     | 
    
         
            -
                
         
     | 
| 
       105 
     | 
    
         
            -
                def shuffle
         
     | 
| 
       106 
     | 
    
         
            -
                  self.split("").sort_by {rand}.join.humanize
         
     | 
| 
       107 
     | 
    
         
            -
                end  
         
     | 
| 
       108 
     | 
    
         
            -
            =======
         
     | 
| 
       109 
     | 
    
         
            -
              
         
     | 
| 
       110 
     | 
    
         
            -
            >>>>>>> ad58e345c5de2638e34e44d69bb19b0ebebcd41e
         
     | 
| 
       111 
     | 
    
         
            -
              
         
     | 
| 
       112 
     | 
    
         
            -
              
         
     | 
| 
       113 
     | 
    
         
            -
                def to_glossar(with = "", options = {:show_tooltip => false})
         
     | 
| 
       114 
     | 
    
         
            -
                  with ||= ""
         
     | 
| 
       115 
     | 
    
         
            -
                  attribute = self
         
     | 
| 
       116 
     | 
    
         
            -
                  l = Glossar.find_by_attribute_name(attribute)
         
     | 
| 
       117 
     | 
    
         
            -
                  if l.nil?
         
     | 
| 
       118 
     | 
    
         
            -
                    Glossar.create(:label => attribute, :attribute_name => attribute)
         
     | 
| 
       119 
     | 
    
         
            -
                  end  
         
     | 
| 
       120 
     | 
    
         
            -
                
         
     | 
| 
       121 
     | 
    
         
            -
                  return "<a href='#glossar_#{attribute.parameterize}' class='glossarlink_small'>#{attribute}#{with}</a>".html_safe
         
     | 
| 
       122 
     | 
    
         
            -
                end
         
     | 
| 
       123 
     | 
    
         
            -
              
         
     | 
| 
       124 
     | 
    
         
            -
                def to_foldername(sep = "_")
         
     | 
| 
       125 
     | 
    
         
            -
                  # deutsch umlaute ersetzen
         
     | 
| 
       126 
     | 
    
         
            -
                  parameterized_string = self.strip.gsub(/\ {2,}/ , " ").de_2_int
         
     | 
| 
       127 
     | 
    
         
            -
                
         
     | 
| 
       128 
     | 
    
         
            -
                  # Turn unwanted chars into the separator
         
     | 
| 
       129 
     | 
    
         
            -
                  parameterized_string.gsub!(/[^a-zA-Z0-9ÄÖÜöäüß\-_]+/, sep)
         
     | 
| 
       130 
     | 
    
         
            -
                  unless sep.nil? || sep.empty?
         
     | 
| 
       131 
     | 
    
         
            -
                    re_sep = Regexp.escape(sep)
         
     | 
| 
       132 
     | 
    
         
            -
                    # No more than one of the separator in a row.
         
     | 
| 
       133 
     | 
    
         
            -
                    parameterized_string.gsub!(/#{re_sep}{2,}/, sep)
         
     | 
| 
       134 
     | 
    
         
            -
                    # Remove leading/trailing separator.
         
     | 
| 
       135 
     | 
    
         
            -
                    parameterized_string.gsub!(/^#{re_sep}|#{re_sep}$/, '')
         
     | 
| 
       136 
     | 
    
         
            -
                  end
         
     | 
| 
       137 
     | 
    
         
            -
                  return parameterized_string
         
     | 
| 
       138 
     | 
    
         
            -
                end
         
     | 
| 
       139 
     | 
    
         
            -
              
         
     | 
| 
       140 
     | 
    
         
            -
              
         
     | 
| 
       141 
     | 
    
         
            -
              
         
     | 
| 
       142 
     | 
    
         
            -
                def de_2_int
         
     | 
| 
       143 
     | 
    
         
            -
                  str = self
         
     | 
| 
       144 
     | 
    
         
            -
                  CHARS_TO_REMOVE.each do |de, int|
         
     | 
| 
       145 
     | 
    
         
            -
                    str = str.gsub(de, int)
         
     | 
| 
       146 
     | 
    
         
            -
                  end
         
     | 
| 
       147 
     | 
    
         
            -
                  str = str.gsub("  ", " ")
         
     | 
| 
       148 
     | 
    
         
            -
                  return str  
         
     | 
| 
       149 
     | 
    
         
            -
                end
         
     | 
| 
       150 
     | 
    
         
            -
            	
         
     | 
| 
       151 
     | 
    
         
            -
              	def limit(l=20)
         
     | 
| 
       152 
     | 
    
         
            -
              	  if self.size > l
         
     | 
| 
       153 
     | 
    
         
            -
              	    s = self.size
         
     | 
| 
       154 
     | 
    
         
            -
              	    s2 = (((self.size-1)/2).round)
         
     | 
| 
       155 
     | 
    
         
            -
              	    first = self.slice(0..s2)
         
     | 
| 
       156 
     | 
    
         
            -
                    last  = self.slice(s2+1..-1)
         
     | 
| 
       157 
     | 
    
         
            -
                  
         
     | 
| 
       158 
     | 
    
         
            -
                    l1 = (l/2).round
         
     | 
| 
       159 
     | 
    
         
            -
                  
         
     | 
| 
       160 
     | 
    
         
            -
              	    "#{first.first(l1)}...#{last.last(l1)}"
         
     | 
| 
       161 
     | 
    
         
            -
              	  else
         
     | 
| 
       162 
     | 
    
         
            -
              	    return self
         
     | 
| 
       163 
     | 
    
         
            -
              	  end    
         
     | 
| 
       164 
     | 
    
         
            -
              	end  
         
     | 
| 
       165 
     | 
    
         
            -
            	
         
     | 
| 
       166 
     | 
    
         
            -
            	
         
     | 
| 
       167 
     | 
    
         
            -
            	
         
     | 
| 
       168 
     | 
    
         
            -
            	
         
     | 
| 
       169 
     | 
    
         
            -
              	def to_datetime
         
     | 
| 
       170 
     | 
    
         
            -
              	  date  = self.split(" ").first
         
     | 
| 
       171 
     | 
    
         
            -
              	  time  = self.split(" ").last.split(":")
         
     | 
| 
       172 
     | 
    
         
            -
              	  DateTime.new(date.split(".")[2].to_i, date.split(".")[1].to_i, date.split(".")[0].to_i, time.first.to_i, time.last.to_i)
         
     | 
| 
       173 
     | 
    
         
            -
              	end  
         
     | 
| 
       174 
     | 
    
         
            -
            	
         
     | 
| 
       175 
     | 
    
         
            -
            	
         
     | 
| 
       176 
     | 
    
         
            -
              	def clear_html(options = {})
         
     | 
| 
       177 
     | 
    
         
            -
              	  ActionView::Base.full_sanitizer.sanitize(self, :tags => options[:tags] )
         
     | 
| 
       178 
     | 
    
         
            -
              	end
         
     | 
| 
       179 
     | 
    
         
            -
              
         
     | 
| 
       180 
     | 
    
         
            -
              	def replace_html(from, to)
         
     | 
| 
       181 
     | 
    
         
            -
              	  new_text = self
         
     | 
| 
       182 
     | 
    
         
            -
              	  new_text = new_text.gsub("<#{from}>", "<#{to}>")
         
     | 
| 
       183 
     | 
    
         
            -
                  new_text = new_text.gsub("</#{from}>", "</#{to}>")
         
     | 
| 
       184 
     | 
    
         
            -
                  return new_text
         
     | 
| 
       185 
     | 
    
         
            -
              	end    
         
     | 
| 
       186 
     | 
    
         
            -
            	
         
     | 
| 
       187 
     | 
    
         
            -
              	def to_model
         
     | 
| 
       188 
     | 
    
         
            -
                  self.singularize.camelize.constantize
         
     | 
| 
       189 
     | 
    
         
            -
              	end  
         
     | 
| 
       190 
     | 
    
         
            -
            	
         
     | 
| 
       191 
     | 
    
         
            -
              	def to_a
         
     | 
| 
       192 
     | 
    
         
            -
              	  return [self]
         
     | 
| 
       193 
     | 
    
         
            -
              	end  
         
     | 
| 
       194 
     | 
    
         
            -
            	
         
     | 
| 
       195 
     | 
    
         
            -
              	#== HTML Styling
         
     | 
| 
       196 
     | 
    
         
            -
                # as the function names say
         
     | 
| 
       197 
     | 
    
         
            -
                
         
     | 
| 
       198 
     | 
    
         
            -
              	def bold
         
     | 
| 
       199 
     | 
    
         
            -
                  "<b>#{self}</b>".html_safe
         
     | 
| 
       200 
     | 
    
         
            -
              	end
         
     | 
| 
       201 
     | 
    
         
            -
            	
         
     | 
| 
       202 
     | 
    
         
            -
              	def ital
         
     | 
| 
       203 
     | 
    
         
            -
                  "<i>#{self}</i>".html_safe
         
     | 
| 
       204 
     | 
    
         
            -
              	end
         
     | 
| 
       205 
     | 
    
         
            -
            	
         
     | 
| 
       206 
     | 
    
         
            -
              	def span
         
     | 
| 
       207 
     | 
    
         
            -
                  "<span>#{self}</span>".html_safe
         
     | 
| 
       208 
     | 
    
         
            -
              	end
         
     | 
| 
       209 
     | 
    
         
            -
            	
         
     | 
| 
       210 
     | 
    
         
            -
              	def uline
         
     | 
| 
       211 
     | 
    
         
            -
                  "<u>#{self}</u>".html_safe
         
     | 
| 
       212 
     | 
    
         
            -
              	end  
         
     | 
| 
       213 
     | 
    
         
            -
            	
         
     | 
| 
       214 
     | 
    
         
            -
                def nbsp
         
     | 
| 
       215 
     | 
    
         
            -
                  self.gsub(" ", " ").html_safe
         
     | 
| 
       216 
     | 
    
         
            -
                end  
         
     | 
| 
       217 
     | 
    
         
            -
              
         
     | 
| 
       218 
     | 
    
         
            -
            <<<<<<< HEAD
         
     | 
| 
       219 
     | 
    
         
            -
              	def replace_entities(mode = :html, options = {})
         
     | 
| 
       220 
     | 
    
         
            -
            =======
         
     | 
| 
       221 
     | 
    
         
            -
              	def replace_entities(mode = :html)
         
     | 
| 
       222 
     | 
    
         
            -
            >>>>>>> ad58e345c5de2638e34e44d69bb19b0ebebcd41e
         
     | 
| 
       223 
     | 
    
         
            -
              	  str = self
         
     | 
| 
       224 
     | 
    
         
            -
              	  Chars2Remove::ENTITIES.each do |orig, rep|
         
     | 
| 
       225 
     | 
    
         
            -
              	     str = str.gsub(orig, rep[mode])
         
     | 
| 
       226 
     | 
    
         
            -
              	  end
         
     | 
| 
       227 
     | 
    
         
            -
              	  return str.html_safe  
         
     | 
| 
       228 
     | 
    
         
            -
              	end
         
     | 
| 
       229 
     | 
    
         
            -
            	
         
     | 
| 
       230 
     | 
    
         
            -
              	def add_brs
         
     | 
| 
       231 
     | 
    
         
            -
              	  return self.gsub("\n", "<br />")
         
     | 
| 
       232 
     | 
    
         
            -
              	end    
         
     | 
| 
       233 
     | 
    
         
            -
            	
         
     | 
| 
       234 
     | 
    
         
            -
              	#== colorization in console
         
     | 
| 
       235 
     | 
    
         
            -
                
         
     | 
| 
       236 
     | 
    
         
            -
                  def colorize(color_code)
         
     | 
| 
       237 
     | 
    
         
            -
                    "\e[#{color_code};40m#{self}\e[0m"
         
     | 
| 
       238 
     | 
    
         
            -
                  end
         
     | 
| 
       239 
     | 
    
         
            -
             
     | 
| 
       240 
     | 
    
         
            -
                  def red
         
     | 
| 
       241 
     | 
    
         
            -
                    colorize(31)
         
     | 
| 
       242 
     | 
    
         
            -
                  end
         
     | 
| 
       243 
     | 
    
         
            -
             
     | 
| 
       244 
     | 
    
         
            -
                  def green
         
     | 
| 
       245 
     | 
    
         
            -
                    colorize(32)
         
     | 
| 
       246 
     | 
    
         
            -
                  end
         
     | 
| 
       247 
     | 
    
         
            -
             
     | 
| 
       248 
     | 
    
         
            -
                  def yellow
         
     | 
| 
       249 
     | 
    
         
            -
                    colorize(33)
         
     | 
| 
       250 
     | 
    
         
            -
                  end
         
     | 
| 
       251 
     | 
    
         
            -
             
     | 
| 
       252 
     | 
    
         
            -
                  def pink
         
     | 
| 
       253 
     | 
    
         
            -
                    colorize(35)
         
     | 
| 
       254 
     | 
    
         
            -
                  end
         
     | 
| 
       255 
     | 
    
         
            -
            	
         
     | 
| 
       256 
     | 
    
         
            -
               
         
     | 
| 
       257 
     | 
    
         
            -
               #== Numerische encription
         
     | 
| 
       258 
     | 
    
         
            -
               # cool thing for simple encrypt and decrypt strings
         
     | 
| 
       259 
     | 
    
         
            -
               
         
     | 
| 
       260 
     | 
    
         
            -
               def numberize(options = {})
         
     | 
| 
       261 
     | 
    
         
            -
                 # Basisarray das alle zeichen enthält die verschlüsselt werden können
         
     | 
| 
       262 
     | 
    
         
            -
                 string_array = STRING_BASE.split("")
         
     | 
| 
       263 
     | 
    
         
            -
               
         
     | 
| 
       264 
     | 
    
         
            -
                 # Nur Zahlen und buchstaben für die verschlüsselung/mix nehmen wg. URLs
         
     | 
| 
       265 
     | 
    
         
            -
                 string_array_filtered = string_array.select {|s| !s.match(/[a-zA-Z0-9\-_]/).nil? }
         
     | 
| 
       266 
     | 
    
         
            -
                 splitted = self.split("")
         
     | 
| 
       267 
     | 
    
         
            -
             
     | 
| 
       268 
     | 
    
         
            -
                 numbered_string = ""
         
     | 
| 
       269 
     | 
    
         
            -
             
     | 
| 
       270 
     | 
    
         
            -
                 splitted.each do |s|
         
     | 
| 
       271 
     | 
    
         
            -
                   position = string_array.index(s)
         
     | 
| 
       272 
     | 
    
         
            -
                   if !position.nil?
         
     | 
| 
       273 
     | 
    
         
            -
                     numbered_string << (position.to_s.rjust(2, "0")+string_array_filtered[rand(string_array_filtered.size-1)])
         
     | 
| 
       274 
     | 
    
         
            -
                   end  
         
     | 
| 
       275 
     | 
    
         
            -
                 end
         
     | 
| 
       276 
     | 
    
         
            -
             
     | 
| 
       277 
     | 
    
         
            -
                 return options[:base_64] == true ? Base64.encode64(numbered_string) : numbered_string  
         
     | 
| 
       278 
     | 
    
         
            -
               end  
         
     | 
| 
       279 
     | 
    
         
            -
            	
         
     | 
| 
       280 
     | 
    
         
            -
               def denumberize(options = {})
         
     | 
| 
       281 
     | 
    
         
            -
                 string_array = STRING_BASE.split("")
         
     | 
| 
       282 
     | 
    
         
            -
                 real_string = ""
         
     | 
| 
       283 
     | 
    
         
            -
                 (options[:base_64] == true ? Base64.decode64(self) : self  ).scan(/[0-9]{2}.{1}/).each do |s|
         
     | 
| 
       284 
     | 
    
         
            -
                   real_string << string_array[s.first(2).to_i]
         
     | 
| 
       285 
     | 
    
         
            -
                 end
         
     | 
| 
       286 
     | 
    
         
            -
                 return real_string  
         
     | 
| 
       287 
     | 
    
         
            -
               end  
         
     | 
| 
       288 
     | 
    
         
            -
              
         
     | 
| 
       289 
     | 
    
         
            -
                  
         
     | 
| 
       290 
     | 
    
         
            -
            	
         
     | 
| 
       291 
     | 
    
         
            -
              end
         
     | 
| 
       292 
     | 
    
         
            -
             
     | 
| 
       293 
     | 
    
         
            -
              Symbol.class_eval do
         
     | 
| 
       294 
     | 
    
         
            -
             
     | 
| 
       295 
     | 
    
         
            -
                def to_label(options = {})
         
     | 
| 
       296 
     | 
    
         
            -
                  self.to_s.to_label(options)
         
     | 
| 
       297 
     | 
    
         
            -
                end
         
     | 
| 
       298 
     | 
    
         
            -
                
         
     | 
| 
       299 
     | 
    
         
            -
                def gsub(old, repl)  
         
     | 
| 
       300 
     | 
    
         
            -
                  self.to_s.gsub(old, repl)
         
     | 
| 
       301 
     | 
    
         
            -
                end  
         
     | 
| 
       302 
     | 
    
         
            -
              end  
         
     | 
| 
       303 
     | 
    
         
            -
            end
         
     |