memory_dictionary 1.0.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 ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 3dcd05232a97846c235a328f82a0bb93f10ccffb
4
+ data.tar.gz: 75165a219e877e80fb46961785d19a6f5070b925
5
+ SHA512:
6
+ metadata.gz: e7d51e55d9112e91e4b96dd7386000f79d0591aa360de1e27f8f1080d110719e9632613dbdc8c67e877175b4bc3790ecb2300d5929946d1a6a850574ad85ef4d
7
+ data.tar.gz: 1135c862bab53be2c573acc8918297676c1617b46b0e64e59dec3e60a60800737601cb1861a7bfb107023413b45900f113f259d68d50546ec520b99931686fc5
data/.env.sample ADDED
@@ -0,0 +1,3 @@
1
+ REDIS_URL='redis://localhost:6379'
2
+ MONGODB_URL=mongodb://localhost:27017:memory_dictionary_development
3
+ MONGODB_PORT=27017
data/.gitignore ADDED
@@ -0,0 +1,11 @@
1
+ spec/fixtures/cassettes
2
+ tmp/mongod
3
+ .env
4
+ doc/
5
+ .yardoc/
6
+ pkg/
7
+ Gemfile.lock
8
+ *.DS_Store
9
+ .bundle/
10
+ gem_graph.png
11
+ *.gem
data/.rspec ADDED
@@ -0,0 +1 @@
1
+ --color --format documentation
data/.ruby-version ADDED
@@ -0,0 +1 @@
1
+ 2.1.2
data/.travis.yml ADDED
@@ -0,0 +1,8 @@
1
+ rvm:
2
+ - 2.1.2
3
+ before_install:
4
+ - gem install bundler
5
+ services:
6
+ - mongodb
7
+ env:
8
+ - CODECLIMATE_REPO_TOKEN=af27d02fda3ad85f536f089905b64ad9685d0b27279d849b90b4b1317ac7679d
data/.yardopts ADDED
@@ -0,0 +1,3 @@
1
+ --no-private
2
+ --title "Memory Dictionary"
3
+ --exclude version --exclude config_generator
data/Gemfile ADDED
@@ -0,0 +1,23 @@
1
+ source 'https://rubygems.org'
2
+
3
+ gem 'mongoid', '~> 5.1'
4
+ gem 'rubysl', platform: :rbx
5
+ gem 'yajl-ruby', :platforms=>[:rbx,:ruby]
6
+
7
+ gem 'dotenv', :groups => [:development, :test]
8
+
9
+ group :development do
10
+ gem 'rake'
11
+ gem 'pry'
12
+ gem 'pry-nav'
13
+ gem 'yard'
14
+ end
15
+
16
+ group :test do
17
+ gem 'rspec'
18
+ gem 'rspec-mocks'
19
+ gem 'rspec-expectations'
20
+ gem 'database_cleaner'
21
+ gem 'factory_girl', github: 'thoughtbot/factory_girl'
22
+ gem 'codeclimate-test-reporter', require: nil
23
+ end
data/LICENSE ADDED
@@ -0,0 +1,5 @@
1
+ Copyright (c) Lucas N Martins
2
+
3
+ Memory Dictionary is an Open Source project licensed under the terms of
4
+ the LGPLv3 license. Please see <http://www.gnu.org/licenses/lgpl-3.0.html>
5
+ for license text.
data/Rakefile ADDED
@@ -0,0 +1,26 @@
1
+ require "bundler"
2
+ Bundler::GemHelper.install_tasks
3
+
4
+ require "rspec/core/rake_task"
5
+ RSpec::Core::RakeTask.new
6
+
7
+ task :default => :travis
8
+
9
+ task :environment do
10
+ require './spec/spec_helper'
11
+ end
12
+
13
+ desc 'Opens a Pry/IRB session with the environment loaded'
14
+ task :console => :environment do
15
+ #gotcha!
16
+ Mongoid.load!("spec/support/mongoid.yml", 'development')
17
+ binding.pry
18
+ end
19
+
20
+ task :travis do
21
+ ["rake spec", "rake build"].each do |cmd|
22
+ puts "Starting to run #{cmd}..."
23
+ system("export DISPLAY=:99.0 && bundle exec #{cmd}")
24
+ raise "#{cmd} failed!" unless $?.exitstatus == 0
25
+ end
26
+ end
data/Readme.md ADDED
@@ -0,0 +1,51 @@
1
+ [![Quality](https://codeclimate.com/github/lucasmartins/memory-dictionary.png)](https://codeclimate.com/github/lucasmartins/memory-dictionary) [![Coverage](https://codeclimate.com/github/lucasmartins/memory-dictionary/coverage.png)](https://codeclimate.com/github/lucasmartins/memory-dictionary) [![Build](https://travis-ci.org/lucasmartins/memory-dictionary.svg)](https://travis-ci.org/lucasmartins/memory-dictionary)
2
+
3
+ Memory Dictionary
4
+ =================
5
+
6
+ **IN PROGRESS**
7
+
8
+ Install
9
+ =======
10
+
11
+ You can:
12
+ ```
13
+ $ gem install memory_dictionary
14
+ ```
15
+
16
+ Or just add it to your Gemfile
17
+ ```ruby
18
+ gem 'memory_dictionary', '~> 1.0'
19
+ ```
20
+
21
+ Use
22
+ ===
23
+
24
+ Check the [specs](https://github.com/ContaBoa/memory_dictionary/tree/master/spec)
25
+
26
+ Docs
27
+ ====
28
+ You should check the [factories](https://github.com/ContaBoa/memory_dictionary/tree/master/spec/factories) to learn what you need to build your objects, and the [tests](https://github.com/ContaBoa/memory_dictionary/tree/master/spec/MemoryDictionary) to learn how to use them. But hey, we have docs [right here](http://rdoc.info/github/ContaBoa/memory_dictionary/master/frames).
29
+
30
+ Roadmap
31
+ =======
32
+
33
+ - Binary search;
34
+ - Redis backend;
35
+ - Postgres backend;
36
+ - HTTP (webservice) interface - so you don't need to be coding Ruby to use it!;
37
+
38
+ Contribute
39
+ ==========
40
+
41
+ Just fork [MemoryDictionary](https://github.com/ContaBoa/memory_dictionary), add your feature+spec, and make a pull request. **DO NOT** mess up with the version file though.
42
+
43
+ Support
44
+ =======
45
+
46
+ This is an opensource project so don't expect premium support, but don't be shy, post any troubles you're having in the [Issues](https://github.com/ContaBoa/memory_dictionary/issues) page and we'll do what we can to help.
47
+
48
+ License
49
+ =======
50
+
51
+ Please see [LICENSE](https://github.com/lucasmartins/memory_dictionary/blob/master/LICENSE) for licensing details.
@@ -0,0 +1,37 @@
1
+ if File.exists?('.env')
2
+ require 'dotenv'
3
+ Dotenv.load
4
+ end
5
+
6
+ require 'yaml'
7
+ require 'bundler'
8
+ require 'json'
9
+ require 'mongoid'
10
+ require 'yajl-ruby' if RUBY_PLATFORM=='ruby'
11
+
12
+ Encoding.default_internal = "utf-8"
13
+ Encoding.default_external = "utf-8"
14
+
15
+ module MemoryDictionary
16
+ require_relative 'memory_dictionary/errors'
17
+ require_relative 'memory_dictionary/word'
18
+ require_relative 'memory_dictionary/dictionary'
19
+ require_relative 'memory_dictionary/translator'
20
+ require_relative 'memory_dictionary/version'
21
+
22
+ # Returns the lib logger object
23
+ def self.logger
24
+ @logger || initialize_logger
25
+ end
26
+
27
+ # Initializes logger with MemoryDictionary setup
28
+ def self.initialize_logger(log_target = STDOUT)
29
+ oldlogger = @logger
30
+ @logger = Logger.new(log_target)
31
+ @logger.level = Logger::INFO
32
+ @logger.progname = 'memory_dictionary'
33
+ oldlogger.close if oldlogger && !$TESTING # don't want to close testing's STDOUT logging
34
+ @logger
35
+ end
36
+
37
+ end
@@ -0,0 +1,23 @@
1
+ class MemoryDictionary::Dictionary
2
+ include Mongoid::Document
3
+ field :name, type: String
4
+
5
+ embeds_many :words, class_name: 'MemoryDictionary::Word'
6
+
7
+ validates :name, uniqueness: true
8
+ index({ name: 1 }, { unique: true, name: 'dictionary_names_index' })
9
+ #index 'words.name' => 1
10
+
11
+ def translations
12
+ words.map(&:translation).uniq
13
+ end
14
+
15
+ def words_by_translation(translation)
16
+ words.where(translation: translation)
17
+ end
18
+
19
+ def append_word(name, translation)
20
+ words << MemoryDictionary::Word.new(name: name, translation: translation)
21
+ end
22
+
23
+ end
@@ -0,0 +1,6 @@
1
+ module MemoryDictionary::Errors
2
+ end
3
+
4
+ require_relative 'errors/dictionary_not_found_exception'
5
+ require_relative 'errors/word_not_found_exception'
6
+ require_relative 'errors/blacklisted_exception'
@@ -0,0 +1,2 @@
1
+ class MemoryDictionary::Errors::BlacklistedException < RuntimeError
2
+ end
@@ -0,0 +1,2 @@
1
+ class MemoryDictionary::Errors::DictionaryNotFoundException < RuntimeError
2
+ end
@@ -0,0 +1,2 @@
1
+ class MemoryDictionary::Errors::WordNotFoundException < RuntimeError
2
+ end
@@ -0,0 +1,31 @@
1
+ class MemoryDictionary::Translator
2
+ def initialize(dictionary_name)
3
+ begin
4
+ @dictionary = MemoryDictionary::Dictionary.find_by(name: dictionary_name)
5
+ rescue Mongoid::Errors::DocumentNotFound => e
6
+ MemoryDictionary.logger.debug e
7
+ raise MemoryDictionary::Errors::DictionaryNotFoundException
8
+ end
9
+ end
10
+
11
+ def translate(word)
12
+ begin
13
+ word = @dictionary.words.find_by(name: word)
14
+ word.translation
15
+ rescue Mongoid::Errors::DocumentNotFound => e
16
+ MemoryDictionary.logger.debug e
17
+ raise MemoryDictionary::Errors::WordNotFoundException
18
+ end
19
+ end
20
+
21
+ def add_word(word, translation, &block)
22
+ @dictionary.words << MemoryDictionary::Word.new(name: word, translation: translation)
23
+ block.call if block_given?
24
+ end
25
+
26
+ def self.add_word(dictionary, word, translation, &block)
27
+ translator = MemoryDictionary::Translator.new(dictionary)
28
+ translator.add_word(word, translation, &block)
29
+ end
30
+
31
+ end
@@ -0,0 +1,10 @@
1
+ # Keeps the versioning clean and simple.
2
+ module MemoryDictionary
3
+ module Version
4
+ MAJOR = 1
5
+ MINOR = 0
6
+ PATCH = 0
7
+ ALPHA = nil # ex: '.pre.1'
8
+ STRING = "#{MAJOR}.#{MINOR}.#{PATCH}#{ALPHA}"
9
+ end
10
+ end
@@ -0,0 +1,12 @@
1
+ class MemoryDictionary::Word
2
+ include Mongoid::Document
3
+ field :name, type: String
4
+ field :translation, type: String
5
+
6
+ embedded_in :dictionary, class_name: 'MemoryDictionary::Dictionary'
7
+
8
+ validates :name, uniqueness: true
9
+ validates :name, :translation, presence: true
10
+ index({ name: 1 }, { unique: true, name: 'dictionary_words_index' })
11
+
12
+ end
@@ -0,0 +1,40 @@
1
+ # -*- encoding: utf-8 -*-
2
+ $:.push File.expand_path("../lib", __FILE__)
3
+ require "memory_dictionary/version"
4
+
5
+ Gem::Specification.new do |s|
6
+ s.name = "memory_dictionary"
7
+ s.version = MemoryDictionary::Version::STRING
8
+ s.platform = Gem::Platform::RUBY
9
+ s.required_ruby_version = ">= 2.1.0"
10
+ s.authors = ["Lucas Martins"]
11
+ s.email = ["lucasmartins@railsnapraia.com"]
12
+ s.homepage = "http://rubygems.org/gems/memory_dictionary"
13
+ s.summary = "A general purposed memory dictionary for quick and dirty translations."
14
+ s.description = s.summary
15
+ s.license = "LGPL-3.0"
16
+
17
+ s.files = `git ls-files`.split("\n")
18
+ s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
19
+ s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
20
+ s.require_paths = ["lib"]
21
+
22
+ if RUBY_ENGINE=='rbx'
23
+ s.add_dependency 'rubysl'
24
+ end
25
+ if RUBY_PLATFORM=='ruby'
26
+ s.add_dependency 'yajl-ruby'
27
+ end
28
+
29
+ s.add_dependency 'mongoid', '~> 5.1'
30
+
31
+ s.add_development_dependency "rspec", "~> 2.1"
32
+ s.add_development_dependency "rspec-mocks", "~> 2.1"
33
+ s.add_development_dependency "rspec-expectations", "~> 2.1"
34
+ s.add_development_dependency "database_cleaner", '~> 0'
35
+ s.add_development_dependency "factory_girl", '~> 0'
36
+ s.add_development_dependency "rake", '~> 0'
37
+ s.add_development_dependency "pry", '~> 0'
38
+ s.add_development_dependency "pry-nav", '~> 0'
39
+ s.add_development_dependency "yard", '~> 0'
40
+ end
@@ -0,0 +1,9 @@
1
+ FactoryGirl.define do
2
+ factory :dictionary, class: MemoryDictionary::Dictionary do
3
+ name 'rosetta-stone'
4
+
5
+ factory :dictionary_with_words, class: MemoryDictionary::Dictionary do
6
+ words {[MemoryDictionary::Word.new(name: 'ruby', translation: 'is awesome'), MemoryDictionary::Word.new(name: 'rubinius', translation: 'is faster')]}
7
+ end
8
+ end
9
+ end
@@ -0,0 +1,9 @@
1
+ FactoryGirl.define do
2
+ factory :word, class: MemoryDictionary::Word do
3
+ name 'ruby'
4
+ translation 'is awesome'
5
+ factory :word_within_dictionary, class: MemoryDictionary::Word do
6
+ dictionary factory: :dictionary
7
+ end
8
+ end
9
+ end
@@ -0,0 +1,36 @@
1
+ require "spec_helper"
2
+
3
+ describe MemoryDictionary::Dictionary do
4
+ #smoke test
5
+
6
+ let(:dictionary) { create(:dictionary_with_words) }
7
+
8
+ before(:each) { dictionary.save }
9
+
10
+ describe "#words" do
11
+ it "has words" do
12
+ expect(dictionary.reload.words.count).to eq(2)
13
+ end
14
+ end
15
+
16
+ describe "#translations" do
17
+ it "retrieve translations" do
18
+ expect(dictionary.reload.translations).to eq(["is awesome", "is faster"])
19
+ end
20
+ end
21
+
22
+ describe "#words_by_translation" do
23
+ it "search words by translation" do
24
+ words = dictionary.reload.words_by_translation("is faster")
25
+ expect(words.count).to eq(1)
26
+ expect(words.first.name).to eq('rubinius')
27
+ end
28
+ end
29
+
30
+ describe "#append_word" do
31
+ it "appends a new word" do
32
+ expect{ dictionary.reload.append_word('jruby', 'is jruby...') }.to change{ dictionary.reload.words.count}.by 1
33
+ end
34
+ end
35
+
36
+ end
@@ -0,0 +1,80 @@
1
+ require "spec_helper"
2
+
3
+ describe MemoryDictionary::Translator do
4
+
5
+ #smoke test
6
+ describe "#initialize" do
7
+
8
+ context 'when theres a dictionary' do
9
+ let(:dictionary) { create(:dictionary) }
10
+ let(:translator) { MemoryDictionary::Translator.new(dictionary.name) }
11
+ it "has a dictionary" do
12
+ expect{translator}.not_to raise_error
13
+ end
14
+ end
15
+
16
+ context 'when there is no dictionary' do
17
+ let(:translator) { MemoryDictionary::Translator.new('wut?') }
18
+ it "does not have a dictionary" do
19
+ expect{translator}.to raise_error(MemoryDictionary::Errors::DictionaryNotFoundException)
20
+ end
21
+ end
22
+
23
+ end
24
+
25
+ describe '#translate_word' do
26
+ let(:dictionary) { create(:dictionary_with_words) }
27
+ let(:translator) { MemoryDictionary::Translator.new(dictionary.name) }
28
+ context 'when word exists' do
29
+ it 'translates the word' do
30
+ expect(translator.translate('ruby')).to eq('is awesome')
31
+ end
32
+ end
33
+ context 'when word do not exist' do
34
+ it 'raises WordNotFoundException' do
35
+ expect{translator.translate('waka waka')}.to raise_error(MemoryDictionary::Errors::WordNotFoundException)
36
+ end
37
+ end
38
+ end
39
+
40
+ describe '#add_word' do
41
+ let(:dictionary) { create(:dictionary, name: 'empty-dic') }
42
+ let(:translator) { MemoryDictionary::Translator.new(dictionary.name) }
43
+
44
+ context 'without a block' do
45
+ it 'adds a new word to the dictionary' do
46
+ expect(dictionary.words.count).to eq(0)
47
+ expect{ translator.add_word('new word', 'new translation') }.to change{ dictionary.reload.words.count }.by(1)
48
+ end
49
+ it 'translates a recently added word' do
50
+ translator.add_word('recently added word', 'recently added translation')
51
+ expect(translator.translate('recently added word')).to eq('recently added translation')
52
+ end
53
+ end
54
+
55
+ context 'with a block' do
56
+ it 'translates a word and runs a block' do
57
+ translator.add_word('recently added word', 'recently added translation') do
58
+ expect(translator.translate('recently added word')).to eq('recently added translation')
59
+ end
60
+ end
61
+ end
62
+
63
+ end
64
+
65
+ describe '.add_word' do
66
+ let(:dictionary) { create(:dictionary, name: 'instance-dic') }
67
+ let(:translator) { MemoryDictionary::Translator.new(dictionary.name) }
68
+
69
+ it 'calls the instance method with all the params' do
70
+ pending 'unstable travis exec'
71
+ translator
72
+ block = lambda do
73
+ puts "I'm a block"
74
+ end
75
+ MemoryDictionary::Translator.any_instance.should_receive(:add_word).with('new word', 'new translation', &block)
76
+ MemoryDictionary::Translator.add_word('instance-dic', 'new word', 'new translation', &block)
77
+ end
78
+ end
79
+
80
+ end
@@ -0,0 +1,11 @@
1
+ require "spec_helper"
2
+
3
+ describe MemoryDictionary::Word do
4
+ #smoke test
5
+ describe "#dictionary" do
6
+ let(:word) { create(:word_within_dictionary) }
7
+ it "belongs to a dictionary" do
8
+ expect(word.dictionary.id).not_to be_nil
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,8 @@
1
+ require "spec_helper"
2
+
3
+ describe MemoryDictionary, "::version" do
4
+ it "returns a valid version" do
5
+ version = MemoryDictionary::Version::STRING
6
+ expect(version.split('.').size).to be >= 3
7
+ end
8
+ end
@@ -0,0 +1,52 @@
1
+ require 'codeclimate-test-reporter'
2
+ CodeClimate::TestReporter.start
3
+
4
+ require 'pry'
5
+ require 'pry-nav'
6
+ require 'memory_dictionary'
7
+ require 'rspec'
8
+ require 'rspec/mocks'
9
+ require 'rspec/expectations'
10
+ require "pathname"
11
+ require 'database_cleaner'
12
+ require 'factory_girl'
13
+
14
+ MemoryDictionary::logger.level = Logger::ERROR
15
+
16
+ if ENV['TRAVIS']==true
17
+ begin
18
+ require 'coveralls'
19
+ Coveralls.wear!
20
+ rescue Exception => e
21
+ puts "Coveralls not available!"
22
+ end
23
+ end
24
+
25
+ SPECDIR = Pathname.new(File.dirname(__FILE__))
26
+ TMPDIR = SPECDIR.join("tmp")
27
+
28
+ Dir[File.dirname(__FILE__) + "/support/**/*.rb"].each {|r| require r}
29
+ Dir[File.dirname(__FILE__) + "/factories/**/*.rb"].each {|r| require r}
30
+
31
+ RSpec.configure do |config|
32
+ config.treat_symbols_as_metadata_keys_with_true_values = true
33
+ config.order = :random
34
+ config.include FactoryGirl::Syntax::Methods
35
+ config.before { FileUtils.mkdir_p(TMPDIR) }
36
+ config.mock_with :rspec
37
+
38
+ config.before(:suite) do
39
+ DatabaseCleaner.clean_with(:truncation)
40
+ DatabaseCleaner.strategy = :truncation
41
+ end
42
+
43
+ config.around(:each) do |example|
44
+ DatabaseCleaner[:mongoid].strategy = :truncation
45
+ DatabaseCleaner.strategy = :truncation
46
+ DatabaseCleaner.start
47
+ example.run
48
+ DatabaseCleaner.clean
49
+ end
50
+ end
51
+
52
+ Mongoid.load!("spec/support/mongoid.yml", 'test')
@@ -0,0 +1,23 @@
1
+ development:
2
+ # Configure available database sessions. (required)
3
+ sessions:
4
+ # Defines the default session. (required)
5
+ default:
6
+ # Defines the name of the default database that Mongoid can connect to.
7
+ # (required).
8
+ database: memory_dictionary_development
9
+ # Provides the hosts the default session can connect to. Must be an array
10
+ # of host:port pairs. (required)
11
+ hosts:
12
+ - localhost:<%= ENV['MONGODB_PORT'] || '27017' %>
13
+ test:
14
+ sessions:
15
+ default:
16
+ database: memory_dictionary_test
17
+ hosts:
18
+ - localhost:<%= ENV['MONGODB_PORT'] || '27017' %>
19
+ options:
20
+ # In the test environment we lower the retries and retry interval to
21
+ # low amounts for fast failures.
22
+ max_retries: 1
23
+ retry_interval: 0
data/tmp/.keep ADDED
File without changes
metadata ADDED
@@ -0,0 +1,222 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: memory_dictionary
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.0.0
5
+ platform: ruby
6
+ authors:
7
+ - Lucas Martins
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2016-05-23 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: mongoid
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '5.1'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '5.1'
27
+ - !ruby/object:Gem::Dependency
28
+ name: rspec
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: '2.1'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: '2.1'
41
+ - !ruby/object:Gem::Dependency
42
+ name: rspec-mocks
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: '2.1'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: '2.1'
55
+ - !ruby/object:Gem::Dependency
56
+ name: rspec-expectations
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - "~>"
60
+ - !ruby/object:Gem::Version
61
+ version: '2.1'
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - "~>"
67
+ - !ruby/object:Gem::Version
68
+ version: '2.1'
69
+ - !ruby/object:Gem::Dependency
70
+ name: database_cleaner
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - "~>"
74
+ - !ruby/object:Gem::Version
75
+ version: '0'
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - "~>"
81
+ - !ruby/object:Gem::Version
82
+ version: '0'
83
+ - !ruby/object:Gem::Dependency
84
+ name: factory_girl
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - "~>"
88
+ - !ruby/object:Gem::Version
89
+ version: '0'
90
+ type: :development
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - "~>"
95
+ - !ruby/object:Gem::Version
96
+ version: '0'
97
+ - !ruby/object:Gem::Dependency
98
+ name: rake
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - "~>"
102
+ - !ruby/object:Gem::Version
103
+ version: '0'
104
+ type: :development
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - "~>"
109
+ - !ruby/object:Gem::Version
110
+ version: '0'
111
+ - !ruby/object:Gem::Dependency
112
+ name: pry
113
+ requirement: !ruby/object:Gem::Requirement
114
+ requirements:
115
+ - - "~>"
116
+ - !ruby/object:Gem::Version
117
+ version: '0'
118
+ type: :development
119
+ prerelease: false
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ requirements:
122
+ - - "~>"
123
+ - !ruby/object:Gem::Version
124
+ version: '0'
125
+ - !ruby/object:Gem::Dependency
126
+ name: pry-nav
127
+ requirement: !ruby/object:Gem::Requirement
128
+ requirements:
129
+ - - "~>"
130
+ - !ruby/object:Gem::Version
131
+ version: '0'
132
+ type: :development
133
+ prerelease: false
134
+ version_requirements: !ruby/object:Gem::Requirement
135
+ requirements:
136
+ - - "~>"
137
+ - !ruby/object:Gem::Version
138
+ version: '0'
139
+ - !ruby/object:Gem::Dependency
140
+ name: yard
141
+ requirement: !ruby/object:Gem::Requirement
142
+ requirements:
143
+ - - "~>"
144
+ - !ruby/object:Gem::Version
145
+ version: '0'
146
+ type: :development
147
+ prerelease: false
148
+ version_requirements: !ruby/object:Gem::Requirement
149
+ requirements:
150
+ - - "~>"
151
+ - !ruby/object:Gem::Version
152
+ version: '0'
153
+ description: A general purposed memory dictionary for quick and dirty translations.
154
+ email:
155
+ - lucasmartins@railsnapraia.com
156
+ executables: []
157
+ extensions: []
158
+ extra_rdoc_files: []
159
+ files:
160
+ - ".env.sample"
161
+ - ".gitignore"
162
+ - ".rspec"
163
+ - ".ruby-version"
164
+ - ".travis.yml"
165
+ - ".yardopts"
166
+ - Gemfile
167
+ - LICENSE
168
+ - Rakefile
169
+ - Readme.md
170
+ - lib/memory_dictionary.rb
171
+ - lib/memory_dictionary/dictionary.rb
172
+ - lib/memory_dictionary/errors.rb
173
+ - lib/memory_dictionary/errors/blacklisted_exception.rb
174
+ - lib/memory_dictionary/errors/dictionary_not_found_exception.rb
175
+ - lib/memory_dictionary/errors/word_not_found_exception.rb
176
+ - lib/memory_dictionary/translator.rb
177
+ - lib/memory_dictionary/version.rb
178
+ - lib/memory_dictionary/word.rb
179
+ - memory_dictionary.gemspec
180
+ - spec/factories/dictionary.rb
181
+ - spec/factories/word.rb
182
+ - spec/memory_dictionary/dictionary_spec.rb
183
+ - spec/memory_dictionary/translator_spec.rb
184
+ - spec/memory_dictionary/word_spec.rb
185
+ - spec/memory_dictionary_spec.rb
186
+ - spec/spec_helper.rb
187
+ - spec/support/mongoid.yml
188
+ - tmp/.keep
189
+ homepage: http://rubygems.org/gems/memory_dictionary
190
+ licenses:
191
+ - LGPL-3.0
192
+ metadata: {}
193
+ post_install_message:
194
+ rdoc_options: []
195
+ require_paths:
196
+ - lib
197
+ required_ruby_version: !ruby/object:Gem::Requirement
198
+ requirements:
199
+ - - ">="
200
+ - !ruby/object:Gem::Version
201
+ version: 2.1.0
202
+ required_rubygems_version: !ruby/object:Gem::Requirement
203
+ requirements:
204
+ - - ">="
205
+ - !ruby/object:Gem::Version
206
+ version: '0'
207
+ requirements: []
208
+ rubyforge_project:
209
+ rubygems_version: 2.6.4
210
+ signing_key:
211
+ specification_version: 4
212
+ summary: A general purposed memory dictionary for quick and dirty translations.
213
+ test_files:
214
+ - spec/factories/dictionary.rb
215
+ - spec/factories/word.rb
216
+ - spec/memory_dictionary/dictionary_spec.rb
217
+ - spec/memory_dictionary/translator_spec.rb
218
+ - spec/memory_dictionary/word_spec.rb
219
+ - spec/memory_dictionary_spec.rb
220
+ - spec/spec_helper.rb
221
+ - spec/support/mongoid.yml
222
+ has_rdoc: