phrasing 2.1.0 → 2.1.1

Sign up to get free protection for your applications and to get access to all the features.
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