phrasing 2.1.0 → 2.1.1

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/README.md CHANGED
@@ -90,4 +90,4 @@ Phrasing.allow_update_on_all_models_and_attributes = true
90
90
 
91
91
  Copyright (c) 2013, Infinum
92
92
 
93
- Phrasing relies heavily (or is built) on two other libraries: the Copycat gem and the ZenPen library. So thank you to the authors and all the contributors!
93
+ Phrasing relies heavily (or is built) on two other libraries: the [Copycat gem](https://github.com/Zorros/copycat) and the [ZenPen library](https://github.com/tholman/zenpen/tree/master/). So thank you to the authors and all the contributors!
@@ -1,5 +1,4 @@
1
1
  class PhrasingPhrase < ActiveRecord::Base
2
- require 'phrasing/ambiguous_phrases_error'
3
2
 
4
3
  unless ENV['PHRASING_DEBUG']
5
4
  self.logger = Logger.new('/dev/null')
@@ -7,11 +6,13 @@ class PhrasingPhrase < ActiveRecord::Base
7
6
 
8
7
  validates_presence_of :key, :locale
9
8
 
10
- before_create :check_ambiguity
9
+ # These validation methods are used so the YAML file can be exported/imported properly.
10
+ validate :check_ambiguity, on: :create, :unless => Proc.new { |phrase| phrase.key.nil? }
11
+ validate :key_muts_not_end_with_a_dot, on: :create, :unless => Proc.new { |phrase| phrase.key.nil? }
11
12
 
12
13
  def self.create_phrase(key)
13
14
  phrasing_phrase = PhrasingPhrase.new
14
- phrasing_phrase.key = key
15
+ phrasing_phrase.key = key.to_s
15
16
  phrasing_phrase.value = key.to_s.humanize
16
17
  phrasing_phrase.locale = I18n.locale
17
18
  phrasing_phrase.save!
@@ -69,7 +70,6 @@ class PhrasingPhrase < ActiveRecord::Base
69
70
 
70
71
  extend Serialize
71
72
 
72
-
73
73
  private
74
74
 
75
75
  def check_ambiguity
@@ -82,16 +82,20 @@ class PhrasingPhrase < ActiveRecord::Base
82
82
  while stripped_key.include?('.')
83
83
  stripped_key = stripped_key.split('.')[0..-2].join('.')
84
84
  if PhrasingPhrase.where(key: stripped_key).count > 0
85
- raise Phrasing::AmbiguousPhrasesError, "Ambiguous calling! There exists a '#{stripped_key}' key, unable to call a new key '#{key}'"
85
+ errors.add(:key, "can't be named '#{key}', there already exists a key named '#{stripped_key}'. Ambiguous calling!")
86
86
  end
87
87
  end
88
88
  end
89
89
 
90
90
  def check_ambiguity_on_successors
91
91
  key_successor = "#{key}."
92
- if PhrasingPhrase.where(PhrasingPhrase.arel_table[:key].matches("%#{key_successor}%")).count > 0
93
- raise Phrasing::AmbiguousPhrasesError, "Ambiguous calling! There exists one or multiple keys beginning with '#{key_successor}', unable to call a new key '#{key}'"
92
+ if PhrasingPhrase.where(PhrasingPhrase.arel_table[:key].matches("#{key_successor}%")).count > 0
93
+ errors.add(:key, "can't be named '#{key}', there already exists one or multiple keys beginning with '#{key_successor}'. Ambiguous calling!")
94
94
  end
95
95
  end
96
96
 
97
+ def key_muts_not_end_with_a_dot
98
+ errors.add(:key, "mustn't end with a dot") if key[-1] == "."
99
+ end
100
+
97
101
  end
data/lib/phrasing.rb CHANGED
@@ -1,7 +1,6 @@
1
1
  require 'phrasing'
2
2
  require "phrasing/implementation"
3
3
  require "phrasing/simple"
4
- require 'phrasing/phrasable_error_handler'
5
4
 
6
5
  module Phrasing
7
6
  module Rails
@@ -11,11 +10,6 @@ module Phrasing
11
10
  ::Rails.application.config.assets.paths << ::Rails.root.join('app', 'assets', 'images')
12
11
  ::Rails.application.config.assets.precompile += ['editor.js', 'phrasing_engine.css', 'icomoon.dev.svg', 'icomoon.svg', 'icomoon.eot', 'icomoon.ttf', 'icomoon.woff', 'phrasing_information_icon.png']
13
12
  end
14
- initializer "phrasing" do
15
- ActiveSupport.on_load(:action_controller) do
16
- # ActionController::Base.send(:include, PhrasableErrorHandler)
17
- end
18
- end
19
13
  end
20
14
  end
21
15
  end
@@ -1,3 +1,3 @@
1
1
  module Phrasing
2
- VERSION = "2.1.0"
2
+ VERSION = "2.1.1"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: phrasing
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.1.0
4
+ version: 2.1.1
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -10,7 +10,7 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2013-10-14 00:00:00.000000000 Z
13
+ date: 2013-10-15 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: rails
@@ -101,9 +101,7 @@ files:
101
101
  - config/routes.rb
102
102
  - db/migrate/20120313191745_create_phrasing_phrases.rb
103
103
  - lib/phrasing.rb
104
- - lib/phrasing/ambiguous_phrases_error.rb
105
104
  - lib/phrasing/implementation.rb
106
- - lib/phrasing/phrasable_error_handler.rb
107
105
  - lib/phrasing/simple.rb
108
106
  - lib/phrasing/version.rb
109
107
  - lib/tasks/phrasing_tasks.rake
@@ -1,3 +0,0 @@
1
- module Phrasing
2
- class AmbiguousPhrasesError < StandardError; end
3
- end
@@ -1,9 +0,0 @@
1
- module PhrasableErrorHandler
2
- extend ActiveSupport::Concern
3
- included do
4
- rescue_from "Phrasing::AmbiguousPhrasesError", with: :phrasing_error
5
- def phrasing_error(e)
6
- render text: e.message
7
- end
8
- end
9
- end