traco 2.0.0 → 2.1.0
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 +15 -0
- data/README.md +2 -1
- data/lib/traco/attribute_setup.rb +4 -2
- data/lib/traco/version.rb +1 -1
- data/spec/traco_spec.rb +13 -2
- metadata +5 -21
    
        checksums.yaml
    ADDED
    
    | @@ -0,0 +1,15 @@ | |
| 1 | 
            +
            ---
         | 
| 2 | 
            +
            !binary "U0hBMQ==":
         | 
| 3 | 
            +
              metadata.gz: !binary |-
         | 
| 4 | 
            +
                NDRjODY3Yjg3NmE2MmJiZWQ3NjBhNGE2MDJhNDIwM2ZhNjY4MjNjOQ==
         | 
| 5 | 
            +
              data.tar.gz: !binary |-
         | 
| 6 | 
            +
                MzIxZjkyY2JiODc3YzU3NDhmYWNiNzI2ODMzMjI5MWY4ZmQ2YmRhMQ==
         | 
| 7 | 
            +
            SHA512:
         | 
| 8 | 
            +
              metadata.gz: !binary |-
         | 
| 9 | 
            +
                ZTNhZjQyMzEyZTgyNGQwYzg1NTgyZWIzYTc2MjJlZWUwYTNhMGY5OTkwMWQ3
         | 
| 10 | 
            +
                YzNhMWEyNDhiNjE0ZjYxYTc5N2IzMjljOWEyOGVlNDVhZTZhZTljOWE2MTM2
         | 
| 11 | 
            +
                NzgwYTk3OGNjY2Y3ZWY0YTcwNWQxMzg2YWI4MWZmMDBiZDM5YzA=
         | 
| 12 | 
            +
              data.tar.gz: !binary |-
         | 
| 13 | 
            +
                YTQ4NmNhMDMxZmI2NTQxMzBkMWYzNDc1MGU0OTgzODEyYTUzZTE3MTAyOTFi
         | 
| 14 | 
            +
                NDhlZDg5MzEzZTVjZThlYmU3NzExYTZmZjM1ZTMwYTQxOWQyMTE1ZTMxZjYw
         | 
| 15 | 
            +
                NGM5ZDVlYTViYTlmMDE4MmI3YzgzMGQ2Y2U5YmQyYTgxMGI0NGI=
         | 
    
        data/README.md
    CHANGED
    
    | @@ -97,6 +97,8 @@ end | |
| 97 97 |  | 
| 98 98 | 
             
            then `#title` will return `nil` if there is no translation in the current locale, instead of falling back to the default locale.
         | 
| 99 99 |  | 
| 100 | 
            +
            If you still want to fall back in some cases, call `post.title(fallback: true)`.
         | 
| 101 | 
            +
             | 
| 100 102 |  | 
| 101 103 | 
             
            ### Overriding methods
         | 
| 102 104 |  | 
| @@ -144,7 +146,6 @@ Possible improvements to make: | |
| 144 146 |  | 
| 145 147 | 
             
              * Validation that checks that at least one translation for a column exists.
         | 
| 146 148 | 
             
              * Validation that checks that every translation for a column exists.
         | 
| 147 | 
            -
              * Option to disable fallback.
         | 
| 148 149 | 
             
              * Scopes like `translated`, `translated_to(locale)`.
         | 
| 149 150 | 
             
              * Support for region locales, like `en-US` and `en-GB`.
         | 
| 150 151 |  | 
| @@ -49,9 +49,11 @@ module Traco | |
| 49 49 | 
             
                end
         | 
| 50 50 |  | 
| 51 51 | 
             
                def define_localized_reader(attribute, options)
         | 
| 52 | 
            -
                   | 
| 52 | 
            +
                  default_fallback = options.fetch(:fallback, true)
         | 
| 53 | 
            +
             | 
| 54 | 
            +
                  custom_define_method(attribute) do |method_opts = {}|
         | 
| 55 | 
            +
                    fallback = method_opts.fetch(:fallback, default_fallback)
         | 
| 53 56 |  | 
| 54 | 
            -
                  custom_define_method(attribute) do
         | 
| 55 57 | 
             
                    @localized_readers ||= {}
         | 
| 56 58 | 
             
                    @localized_readers[attribute] ||= Traco::LocalizedReader.new(self, attribute, fallback: fallback)
         | 
| 57 59 | 
             
                    @localized_readers[attribute].value
         | 
    
        data/lib/traco/version.rb
    CHANGED
    
    
    
        data/spec/traco_spec.rb
    CHANGED
    
    | @@ -111,6 +111,12 @@ describe Post, "#title" do | |
| 111 111 | 
             
                post.title.should be_nil
         | 
| 112 112 | 
             
              end
         | 
| 113 113 |  | 
| 114 | 
            +
              it "does not fall back if called with fallback: false" do
         | 
| 115 | 
            +
                I18n.locale = :sv
         | 
| 116 | 
            +
                post.title_sv = ""
         | 
| 117 | 
            +
                post.title(fallback: false).should be_nil
         | 
| 118 | 
            +
              end
         | 
| 119 | 
            +
             | 
| 114 120 | 
             
              it "returns nil if all are blank" do
         | 
| 115 121 | 
             
                post.title_sv = " "
         | 
| 116 122 | 
             
                post.title_en = ""
         | 
| @@ -136,7 +142,7 @@ describe Post, "#title" do | |
| 136 142 | 
             
                post.title.should == "title"
         | 
| 137 143 | 
             
                post.body.should == "body"
         | 
| 138 144 | 
             
              end
         | 
| 139 | 
            -
             | 
| 145 | 
            +
             | 
| 140 146 | 
             
              it "reflects locale change" do
         | 
| 141 147 | 
             
                post.title.should == "Hej"
         | 
| 142 148 | 
             
                I18n.locale = :en
         | 
| @@ -145,7 +151,7 @@ describe Post, "#title" do | |
| 145 151 | 
             
                post.title.should == "Hej"
         | 
| 146 152 | 
             
              end
         | 
| 147 153 |  | 
| 148 | 
            -
              context "with fallback: false" do
         | 
| 154 | 
            +
              context "when the translation was defined with fallback: false" do
         | 
| 149 155 | 
             
                let(:post) {
         | 
| 150 156 | 
             
                  Post.new(title_sv: "Hej", title_en: "Halloa")
         | 
| 151 157 | 
             
                }
         | 
| @@ -165,6 +171,11 @@ describe Post, "#title" do | |
| 165 171 | 
             
                  post.title_sv = " "
         | 
| 166 172 | 
             
                  post.title.should be_nil
         | 
| 167 173 | 
             
                end
         | 
| 174 | 
            +
             | 
| 175 | 
            +
                it "still falls back if called with fallback: true" do
         | 
| 176 | 
            +
                  I18n.locale = :ru
         | 
| 177 | 
            +
                  post.title(fallback: true).should == "Halloa"
         | 
| 178 | 
            +
                end
         | 
| 168 179 | 
             
              end
         | 
| 169 180 | 
             
            end
         | 
| 170 181 |  | 
    
        metadata
    CHANGED
    
    | @@ -1,20 +1,18 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: traco
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version: 2. | 
| 5 | 
            -
              prerelease: 
         | 
| 4 | 
            +
              version: 2.1.0
         | 
| 6 5 | 
             
            platform: ruby
         | 
| 7 6 | 
             
            authors:
         | 
| 8 7 | 
             
            - Henrik Nyh
         | 
| 9 8 | 
             
            autorequire: 
         | 
| 10 9 | 
             
            bindir: bin
         | 
| 11 10 | 
             
            cert_chain: []
         | 
| 12 | 
            -
            date:  | 
| 11 | 
            +
            date: 2014-02-21 00:00:00.000000000 Z
         | 
| 13 12 | 
             
            dependencies:
         | 
| 14 13 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 15 14 | 
             
              name: activerecord
         | 
| 16 15 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| 17 | 
            -
                none: false
         | 
| 18 16 | 
             
                requirements:
         | 
| 19 17 | 
             
                - - ! '>='
         | 
| 20 18 | 
             
                  - !ruby/object:Gem::Version
         | 
| @@ -22,7 +20,6 @@ dependencies: | |
| 22 20 | 
             
              type: :runtime
         | 
| 23 21 | 
             
              prerelease: false
         | 
| 24 22 | 
             
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 25 | 
            -
                none: false
         | 
| 26 23 | 
             
                requirements:
         | 
| 27 24 | 
             
                - - ! '>='
         | 
| 28 25 | 
             
                  - !ruby/object:Gem::Version
         | 
| @@ -30,7 +27,6 @@ dependencies: | |
| 30 27 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 31 28 | 
             
              name: sqlite3
         | 
| 32 29 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| 33 | 
            -
                none: false
         | 
| 34 30 | 
             
                requirements:
         | 
| 35 31 | 
             
                - - ! '>='
         | 
| 36 32 | 
             
                  - !ruby/object:Gem::Version
         | 
| @@ -38,7 +34,6 @@ dependencies: | |
| 38 34 | 
             
              type: :development
         | 
| 39 35 | 
             
              prerelease: false
         | 
| 40 36 | 
             
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 41 | 
            -
                none: false
         | 
| 42 37 | 
             
                requirements:
         | 
| 43 38 | 
             
                - - ! '>='
         | 
| 44 39 | 
             
                  - !ruby/object:Gem::Version
         | 
| @@ -46,7 +41,6 @@ dependencies: | |
| 46 41 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 47 42 | 
             
              name: rake
         | 
| 48 43 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| 49 | 
            -
                none: false
         | 
| 50 44 | 
             
                requirements:
         | 
| 51 45 | 
             
                - - ! '>='
         | 
| 52 46 | 
             
                  - !ruby/object:Gem::Version
         | 
| @@ -54,7 +48,6 @@ dependencies: | |
| 54 48 | 
             
              type: :development
         | 
| 55 49 | 
             
              prerelease: false
         | 
| 56 50 | 
             
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 57 | 
            -
                none: false
         | 
| 58 51 | 
             
                requirements:
         | 
| 59 52 | 
             
                - - ! '>='
         | 
| 60 53 | 
             
                  - !ruby/object:Gem::Version
         | 
| @@ -62,7 +55,6 @@ dependencies: | |
| 62 55 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 63 56 | 
             
              name: rspec
         | 
| 64 57 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| 65 | 
            -
                none: false
         | 
| 66 58 | 
             
                requirements:
         | 
| 67 59 | 
             
                - - ! '>='
         | 
| 68 60 | 
             
                  - !ruby/object:Gem::Version
         | 
| @@ -70,7 +62,6 @@ dependencies: | |
| 70 62 | 
             
              type: :development
         | 
| 71 63 | 
             
              prerelease: false
         | 
| 72 64 | 
             
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 73 | 
            -
                none: false
         | 
| 74 65 | 
             
                requirements:
         | 
| 75 66 | 
             
                - - ! '>='
         | 
| 76 67 | 
             
                  - !ruby/object:Gem::Version
         | 
| @@ -102,33 +93,26 @@ files: | |
| 102 93 | 
             
            - traco.gemspec
         | 
| 103 94 | 
             
            homepage: ''
         | 
| 104 95 | 
             
            licenses: []
         | 
| 96 | 
            +
            metadata: {}
         | 
| 105 97 | 
             
            post_install_message: 
         | 
| 106 98 | 
             
            rdoc_options: []
         | 
| 107 99 | 
             
            require_paths:
         | 
| 108 100 | 
             
            - lib
         | 
| 109 101 | 
             
            required_ruby_version: !ruby/object:Gem::Requirement
         | 
| 110 | 
            -
              none: false
         | 
| 111 102 | 
             
              requirements:
         | 
| 112 103 | 
             
              - - ! '>='
         | 
| 113 104 | 
             
                - !ruby/object:Gem::Version
         | 
| 114 105 | 
             
                  version: '0'
         | 
| 115 | 
            -
                  segments:
         | 
| 116 | 
            -
                  - 0
         | 
| 117 | 
            -
                  hash: -4140218999015648570
         | 
| 118 106 | 
             
            required_rubygems_version: !ruby/object:Gem::Requirement
         | 
| 119 | 
            -
              none: false
         | 
| 120 107 | 
             
              requirements:
         | 
| 121 108 | 
             
              - - ! '>='
         | 
| 122 109 | 
             
                - !ruby/object:Gem::Version
         | 
| 123 110 | 
             
                  version: '0'
         | 
| 124 | 
            -
                  segments:
         | 
| 125 | 
            -
                  - 0
         | 
| 126 | 
            -
                  hash: -4140218999015648570
         | 
| 127 111 | 
             
            requirements: []
         | 
| 128 112 | 
             
            rubyforge_project: 
         | 
| 129 | 
            -
            rubygems_version:  | 
| 113 | 
            +
            rubygems_version: 2.2.1
         | 
| 130 114 | 
             
            signing_key: 
         | 
| 131 | 
            -
            specification_version:  | 
| 115 | 
            +
            specification_version: 4
         | 
| 132 116 | 
             
            summary: Translatable columns for Rails 3 or better, stored in the model table itself.
         | 
| 133 117 | 
             
            test_files:
         | 
| 134 118 | 
             
            - spec/app/post.rb
         |