genderizr 0.0.3
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.
- data/.gitignore +17 -0
- data/README.md +4 -0
- data/Rakefile +25 -0
- data/genderizr.gemspec.erb +18 -0
- data/lib/genderizr/railtie.rb +2 -0
- data/lib/genderizr/version.rb +1 -0
- data/lib/genderizr.rb +90 -0
- metadata +53 -0
    
        data/.gitignore
    ADDED
    
    
    
        data/README.md
    ADDED
    
    
    
        data/Rakefile
    ADDED
    
    | @@ -0,0 +1,25 @@ | |
| 1 | 
            +
            require 'erb'
         | 
| 2 | 
            +
            require './lib/genderizr/version'
         | 
| 3 | 
            +
             | 
| 4 | 
            +
            GEM         = "genderizr-#{Genderizr::VERSION}.gem"
         | 
| 5 | 
            +
            GEMSPEC     = "genderizr.gemspec"
         | 
| 6 | 
            +
            GEMSPEC_ERB = GEMSPEC + ".erb"
         | 
| 7 | 
            +
            FILES       = `git ls-files`.split(/\n/).delete_if { |f| [GEMSPEC].include?(f) }
         | 
| 8 | 
            +
             | 
| 9 | 
            +
             | 
| 10 | 
            +
            task :build => :default
         | 
| 11 | 
            +
            task :default => GEM
         | 
| 12 | 
            +
             | 
| 13 | 
            +
            task :install => GEM do
         | 
| 14 | 
            +
              system "gem install #{GEM}"
         | 
| 15 | 
            +
            end
         | 
| 16 | 
            +
             | 
| 17 | 
            +
            file GEM => GEMSPEC do |task|
         | 
| 18 | 
            +
              system "gem build -V #{GEMSPEC}"
         | 
| 19 | 
            +
            end
         | 
| 20 | 
            +
             | 
| 21 | 
            +
            file GEMSPEC => FILES do |task|
         | 
| 22 | 
            +
              input  = File.open(GEMSPEC_ERB, "r")
         | 
| 23 | 
            +
              output = File.open(task.to_s, "w")
         | 
| 24 | 
            +
              output.write( ERB.new( input.read ).result )
         | 
| 25 | 
            +
            end
         | 
| @@ -0,0 +1,18 @@ | |
| 1 | 
            +
            $:.push File.expand_path("../lib", __FILE__)
         | 
| 2 | 
            +
            require "genderizr/version"
         | 
| 3 | 
            +
             | 
| 4 | 
            +
            Gem::Specification.new do |s|
         | 
| 5 | 
            +
              s.name        = "genderizr"
         | 
| 6 | 
            +
              s.version     = Genderizr::VERSION
         | 
| 7 | 
            +
              s.platform    = Gem::Platform::RUBY
         | 
| 8 | 
            +
              s.authors     = ["Dean Brundage"]
         | 
| 9 | 
            +
              s.email       = ["dean@newrepublicbrewing.com"]
         | 
| 10 | 
            +
              s.homepage    = "https://github.com/brundage/genderizr"
         | 
| 11 | 
            +
              s.summary     = "Genderize text"
         | 
| 12 | 
            +
              s.description = "A gem to genderize strings"
         | 
| 13 | 
            +
             | 
| 14 | 
            +
              s.files         = [ <%= `git ls-files`.split(/\n/).collect {|f| "'#{f}'" }.join(", ") %> ]
         | 
| 15 | 
            +
              s.test_files    = [ <%= `git ls-files -- spec/*`.split("\n").collect {|f| "'#{f}'" }.join(", ") %> ]
         | 
| 16 | 
            +
              s.executables   = [ <%= `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }.collect {|f| "'#{f}'" }.join(", ") %> ]
         | 
| 17 | 
            +
              s.require_paths = ["lib"]
         | 
| 18 | 
            +
            end
         | 
| @@ -0,0 +1 @@ | |
| 1 | 
            +
            module Genderizr; VERSION = "0.0.3"; end
         | 
    
        data/lib/genderizr.rb
    ADDED
    
    | @@ -0,0 +1,90 @@ | |
| 1 | 
            +
            require 'genderizr/version'
         | 
| 2 | 
            +
            module Genderizr
         | 
| 3 | 
            +
             | 
| 4 | 
            +
              extend self
         | 
| 5 | 
            +
             | 
| 6 | 
            +
              def feminize_string(string)
         | 
| 7 | 
            +
                genderize_string(string, true)
         | 
| 8 | 
            +
              end
         | 
| 9 | 
            +
             | 
| 10 | 
            +
             | 
| 11 | 
            +
              def genderize_string(string,turn_feminine)
         | 
| 12 | 
            +
                string.split(/ /).collect do |word|
         | 
| 13 | 
            +
                  genderized = turn_feminine ? masculine_to_feminine[word] :
         | 
| 14 | 
            +
                                               feminine_to_masculine[word]
         | 
| 15 | 
            +
                  genderized || word
         | 
| 16 | 
            +
                end.join(' ')
         | 
| 17 | 
            +
              end
         | 
| 18 | 
            +
             | 
| 19 | 
            +
             | 
| 20 | 
            +
              def masculize_string(string)
         | 
| 21 | 
            +
                genderize_string(string, false)
         | 
| 22 | 
            +
              end
         | 
| 23 | 
            +
             | 
| 24 | 
            +
             | 
| 25 | 
            +
              module StringMethods
         | 
| 26 | 
            +
                def feminize; Genderizr.feminize_string(self); end
         | 
| 27 | 
            +
                def genderize(turn_feminine); Genderizr.feminize_string(self,turn_feminine); end
         | 
| 28 | 
            +
                def masculize; Genderizr.masculize_string(self); end
         | 
| 29 | 
            +
              end
         | 
| 30 | 
            +
             | 
| 31 | 
            +
             | 
| 32 | 
            +
            private
         | 
| 33 | 
            +
             | 
| 34 | 
            +
              def feminine_to_masculine
         | 
| 35 | 
            +
                masculine_to_feminine.invert
         | 
| 36 | 
            +
              end
         | 
| 37 | 
            +
             | 
| 38 | 
            +
              def masculine_to_feminine
         | 
| 39 | 
            +
                {
         | 
| 40 | 
            +
                  'boy' => 'girl',
         | 
| 41 | 
            +
                  'boyish' => 'girlish',
         | 
| 42 | 
            +
                  'boys' => 'girls',
         | 
| 43 | 
            +
                  'brother' => 'sister',
         | 
| 44 | 
            +
                  'brothers' => 'sisters',
         | 
| 45 | 
            +
                  'cowboy' => 'cowgirl',
         | 
| 46 | 
            +
                  'cowboys' => 'cowgirls',
         | 
| 47 | 
            +
                  'craftsman' => 'craftswoman',
         | 
| 48 | 
            +
                  'dad' => 'mom',
         | 
| 49 | 
            +
                  'daddy' => 'mommy',
         | 
| 50 | 
            +
                  'dick' => 'pussy',
         | 
| 51 | 
            +
                  'dude' => 'lady',
         | 
| 52 | 
            +
                  'dudes' => 'ladies',
         | 
| 53 | 
            +
                  'ex-wife' => 'ex-husband',
         | 
| 54 | 
            +
                  'father' => 'mother',
         | 
| 55 | 
            +
                  'fathers' => 'mothers',
         | 
| 56 | 
            +
                  'gentleman' => 'lady',
         | 
| 57 | 
            +
                  'gentlemen' => 'ladies',
         | 
| 58 | 
            +
                  'guy' => 'gal',
         | 
| 59 | 
            +
                  'guys' => 'gals',
         | 
| 60 | 
            +
                  'he' => 'she',
         | 
| 61 | 
            +
                  'him' => 'her',
         | 
| 62 | 
            +
                  'himself' => 'herself',
         | 
| 63 | 
            +
                  'his' => 'her',
         | 
| 64 | 
            +
                  'king' => 'queen',
         | 
| 65 | 
            +
                  'kings' => 'queens',
         | 
| 66 | 
            +
                  'male' => 'female',
         | 
| 67 | 
            +
                  'man' => 'woman',
         | 
| 68 | 
            +
                  'manhood' => 'womanhood',
         | 
| 69 | 
            +
                  'manlier' => 'womanlier',
         | 
| 70 | 
            +
                  'manliest' => 'womanliest',
         | 
| 71 | 
            +
                  'manliness' => 'womanliness',
         | 
| 72 | 
            +
                  'manly' => 'womanly',
         | 
| 73 | 
            +
                  'masculine' => 'feminine',
         | 
| 74 | 
            +
                  'masculinity' => 'femininity',
         | 
| 75 | 
            +
                  'men' => 'women',
         | 
| 76 | 
            +
                  'mr' => 'ms',
         | 
| 77 | 
            +
                  'mr.' => 'ms.',
         | 
| 78 | 
            +
                  'nobleman' => 'noblewoman',
         | 
| 79 | 
            +
                  'patriarch' => 'matriarch',
         | 
| 80 | 
            +
                  'prince' => 'princess',
         | 
| 81 | 
            +
                  'princes' => 'princesses',
         | 
| 82 | 
            +
                  'waitress' => 'waiter',
         | 
| 83 | 
            +
                  'waitressed' => 'waited'
         | 
| 84 | 
            +
                }
         | 
| 85 | 
            +
              end
         | 
| 86 | 
            +
            end
         | 
| 87 | 
            +
             | 
| 88 | 
            +
            if defined?(Rails) && Rails::VERSION::MAJOR >= 3
         | 
| 89 | 
            +
              require 'genderizr/railtie'
         | 
| 90 | 
            +
            end
         | 
    
        metadata
    ADDED
    
    | @@ -0,0 +1,53 @@ | |
| 1 | 
            +
            --- !ruby/object:Gem::Specification
         | 
| 2 | 
            +
            name: genderizr
         | 
| 3 | 
            +
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            +
              version: 0.0.3
         | 
| 5 | 
            +
              prerelease: 
         | 
| 6 | 
            +
            platform: ruby
         | 
| 7 | 
            +
            authors:
         | 
| 8 | 
            +
            - Dean Brundage
         | 
| 9 | 
            +
            autorequire: 
         | 
| 10 | 
            +
            bindir: bin
         | 
| 11 | 
            +
            cert_chain: []
         | 
| 12 | 
            +
            date: 2012-05-19 00:00:00.000000000 Z
         | 
| 13 | 
            +
            dependencies: []
         | 
| 14 | 
            +
            description: A gem to genderize strings
         | 
| 15 | 
            +
            email:
         | 
| 16 | 
            +
            - dean@newrepublicbrewing.com
         | 
| 17 | 
            +
            executables: []
         | 
| 18 | 
            +
            extensions: []
         | 
| 19 | 
            +
            extra_rdoc_files: []
         | 
| 20 | 
            +
            files:
         | 
| 21 | 
            +
            - .gitignore
         | 
| 22 | 
            +
            - README.md
         | 
| 23 | 
            +
            - Rakefile
         | 
| 24 | 
            +
            - genderizr.gemspec.erb
         | 
| 25 | 
            +
            - lib/genderizr.rb
         | 
| 26 | 
            +
            - lib/genderizr/railtie.rb
         | 
| 27 | 
            +
            - lib/genderizr/version.rb
         | 
| 28 | 
            +
            homepage: https://github.com/brundage/genderizr
         | 
| 29 | 
            +
            licenses: []
         | 
| 30 | 
            +
            post_install_message: 
         | 
| 31 | 
            +
            rdoc_options: []
         | 
| 32 | 
            +
            require_paths:
         | 
| 33 | 
            +
            - lib
         | 
| 34 | 
            +
            required_ruby_version: !ruby/object:Gem::Requirement
         | 
| 35 | 
            +
              none: false
         | 
| 36 | 
            +
              requirements:
         | 
| 37 | 
            +
              - - ! '>='
         | 
| 38 | 
            +
                - !ruby/object:Gem::Version
         | 
| 39 | 
            +
                  version: '0'
         | 
| 40 | 
            +
            required_rubygems_version: !ruby/object:Gem::Requirement
         | 
| 41 | 
            +
              none: false
         | 
| 42 | 
            +
              requirements:
         | 
| 43 | 
            +
              - - ! '>='
         | 
| 44 | 
            +
                - !ruby/object:Gem::Version
         | 
| 45 | 
            +
                  version: '0'
         | 
| 46 | 
            +
            requirements: []
         | 
| 47 | 
            +
            rubyforge_project: 
         | 
| 48 | 
            +
            rubygems_version: 1.8.10
         | 
| 49 | 
            +
            signing_key: 
         | 
| 50 | 
            +
            specification_version: 3
         | 
| 51 | 
            +
            summary: Genderize text
         | 
| 52 | 
            +
            test_files: []
         | 
| 53 | 
            +
            has_rdoc: 
         |