fetcher-mongoid-models 0.0.0

Sign up to get free protection for your applications and to get access to all the features.
data/Gemfile ADDED
@@ -0,0 +1,3 @@
1
+ source "https://rubygems.org"
2
+
3
+ gemspec
data/Gemfile.lock ADDED
@@ -0,0 +1,50 @@
1
+ PATH
2
+ remote: .
3
+ specs:
4
+ fetcher-mongoid-models (0.0.0)
5
+ mongoid
6
+
7
+ GEM
8
+ remote: https://rubygems.org/
9
+ specs:
10
+ activemodel (3.2.9)
11
+ activesupport (= 3.2.9)
12
+ builder (~> 3.0.0)
13
+ activesupport (3.2.9)
14
+ i18n (~> 0.6)
15
+ multi_json (~> 1.0)
16
+ builder (3.0.4)
17
+ coderay (1.0.8)
18
+ diff-lcs (1.1.3)
19
+ i18n (0.6.1)
20
+ method_source (0.8.1)
21
+ mongoid (3.0.14)
22
+ activemodel (~> 3.1)
23
+ moped (~> 1.1)
24
+ origin (~> 1.0)
25
+ tzinfo (~> 0.3.22)
26
+ moped (1.3.1)
27
+ multi_json (1.5.0)
28
+ origin (1.0.11)
29
+ pry (0.9.10)
30
+ coderay (~> 1.0.5)
31
+ method_source (~> 0.8)
32
+ slop (~> 3.3.1)
33
+ rspec (2.12.0)
34
+ rspec-core (~> 2.12.0)
35
+ rspec-expectations (~> 2.12.0)
36
+ rspec-mocks (~> 2.12.0)
37
+ rspec-core (2.12.2)
38
+ rspec-expectations (2.12.0)
39
+ diff-lcs (~> 1.1.3)
40
+ rspec-mocks (2.12.0)
41
+ slop (3.3.3)
42
+ tzinfo (0.3.35)
43
+
44
+ PLATFORMS
45
+ ruby
46
+
47
+ DEPENDENCIES
48
+ fetcher-mongoid-models!
49
+ pry
50
+ rspec
data/README.rest ADDED
@@ -0,0 +1,33 @@
1
+ Usage examples
2
+
3
+ In folder config is a examples of a configuration file, for more information go to
4
+
5
+ http://mongoid.org/en/mongoid/docs/installation.html
6
+
7
+ Example 1:
8
+
9
+ Fetcher::Mongoid::Models::DB.new path_to_config_file
10
+
11
+ u = User.new
12
+ u.login = "hola soy tomy"
13
+ u.save
14
+
15
+ User.find(u._id)
16
+
17
+ Example 2:
18
+
19
+ I have a Valid Column and a Filter
20
+ The filter is valid only if it references a valid column, to make this you need to make:
21
+
22
+ Fetcher::Mongoid::Models::DB.new path_to_config_file
23
+
24
+ column = Column.new
25
+ column.save
26
+ f = Filter.new :Column => column
27
+ Filter::Column_id = column._id
28
+ f.save #<- this will return true
29
+
30
+ We need to set the Filter::Column_id to let the Filters know to wich column it will belongs_to
31
+
32
+
33
+
data/Rakefile ADDED
@@ -0,0 +1,11 @@
1
+ #!/usr/bin/env rake
2
+ require "bundler/gem_tasks"
3
+
4
+ require "rspec/core/rake_task"
5
+
6
+ desc "Run specs"
7
+ RSpec::Core::RakeTask.new(:spec) do |t|
8
+ t.pattern = "./spec/**/*_spec.rb"
9
+ end
10
+
11
+ task :default => :spec
@@ -0,0 +1,10 @@
1
+ require "mongoid"
2
+
3
+ class Column
4
+ include Mongoid::Document
5
+ store_in collection: "Column"
6
+ belongs_to :User
7
+ has_many :Filter, inverse_of: :Column
8
+ has_many :Source, inverse_of: :Column
9
+
10
+ end
@@ -0,0 +1,14 @@
1
+ require "mongoid"
2
+
3
+ class Filter
4
+ include Mongoid::Document
5
+ store_in collection: "Filter"
6
+ field :type
7
+ field :property
8
+ field :operator
9
+ field :value, type: Array
10
+ belongs_to :Column
11
+
12
+ validates :Column_id, :presence => { :message => :required }
13
+ validates :Column, :presence => { :message => :required, :if => :Column_id }
14
+ end
@@ -0,0 +1,20 @@
1
+ require "mongoid"
2
+
3
+ class PersonUser
4
+ include Mongoid::Document
5
+ store_in collection: "PersonUser"
6
+ field :provider, type: Array
7
+ field :additionalType, type: Array
8
+ field :itemId, type: Array
9
+ field :name, type: Array
10
+ field :userDateRegistered, type: Array
11
+ field :description, type: Array
12
+ field :url, type: Array
13
+ field :accessToken, type: String
14
+ field :accessSecret, type: String
15
+ belongs_to :User
16
+ has_many :Filter
17
+ has_many :Source
18
+
19
+ validates :accessToken, allow_nil: false, presence: true
20
+ end
@@ -0,0 +1,14 @@
1
+ require "mongoid"
2
+
3
+ class Source
4
+ include Mongoid::Document
5
+ store_in collection: "Source"
6
+ field :streamArgument, type: Array
7
+ field :provider
8
+ field :endpoint
9
+ field :viewer, type: Integer
10
+ belongs_to :Column
11
+
12
+ validates :Column_id, :presence => { :message => :required }
13
+ validates :Column, :presence => { :message => :required, :if => :Column_id }
14
+ end
@@ -0,0 +1,12 @@
1
+ require 'mongoid'
2
+
3
+ class User
4
+ include Mongoid::Document
5
+ store_in collection: "User"
6
+ field :email
7
+ field :login
8
+ field :password
9
+ has_many :Column
10
+ has_many :Source
11
+ has_many :PersonUser
12
+ end
data/config/main.yml ADDED
@@ -0,0 +1,6 @@
1
+ development:
2
+ sessions:
3
+ default:
4
+ database: mongoid
5
+ hosts:
6
+ - localhost:27017
@@ -0,0 +1,22 @@
1
+ # -*- encoding: utf-8 -*-
2
+ require File.expand_path('../lib/fetcher/mongoid/models/version', __FILE__)
3
+
4
+ Gem::Specification.new do |gem|
5
+ gem.authors = ["Olivier Ducroux","Tomas Mehdi"]
6
+ gem.email = ["ducrouxolivier@gmail.com", "tomymehdi@gmail.com"]
7
+ gem.description = %q{Fetcher Mongoid Models}
8
+ gem.summary = %q{Fetcher Mongodb Models}
9
+ gem.homepage = "http://github.com/Fetcher/fetcher-mongoid-models"
10
+
11
+ gem.add_dependency 'mongoid'
12
+
13
+ gem.add_development_dependency 'rspec'
14
+ gem.add_development_dependency 'pry'
15
+
16
+ gem.files = `git ls-files`.split($\)
17
+ gem.executables = gem.files.grep(%r{^bin/}).map{ |f| File.basename(f) }
18
+ gem.test_files = gem.files.grep(%r{^(test|spec|features)/})
19
+ gem.name = "fetcher-mongoid-models"
20
+ gem.require_paths = ["lib"]
21
+ gem.version = Fetcher::Mongoid::Models::VERSION
22
+ end
@@ -0,0 +1,16 @@
1
+ require 'mongoid'
2
+ require 'pry'
3
+
4
+ module Fetcher
5
+ module Mongoid
6
+ module Models
7
+ class Db
8
+
9
+ def initialize path_to_mongoid_config
10
+ ::Mongoid.load!(path_to_mongoid_config, :development)
11
+ end
12
+
13
+ end
14
+ end
15
+ end
16
+ end
@@ -0,0 +1,7 @@
1
+ module Fetcher
2
+ module Mongoid
3
+ module Models
4
+ VERSION = '0.0.0'
5
+ end
6
+ end
7
+ end
@@ -0,0 +1,5 @@
1
+ require 'models'
2
+ require 'fetcher/mongoid/models/db'
3
+
4
+
5
+
data/lib/models.rb ADDED
@@ -0,0 +1,8 @@
1
+ $LOAD_PATH << File.expand_path('../../app', __FILE__)
2
+
3
+
4
+ require "models/column"
5
+ require "models/filter"
6
+ require "models/person_user"
7
+ require "models/source"
8
+ require "models/user"
@@ -0,0 +1,19 @@
1
+ require 'spec_helper'
2
+
3
+ describe 'Fetcher::Mongoid::Models::Db' do
4
+ describe '.new' do
5
+ context 'call Fetcher::Mongoid::Models::Db.new' do
6
+ it 'should call ::Mongoid.load!' do
7
+ valid_path = "./config/main.yml"
8
+ ::Mongoid.should_receive(:load!).with(valid_path,:development)
9
+ Fetcher::Mongoid::Models::Db.new valid_path
10
+ end
11
+ it 'should raise an exception when a invalid configuration path is passed' do
12
+ invalid_path = "caca_path"
13
+ expect{
14
+ Fetcher::Mongoid::Models::Db.new valid_path
15
+ }.to raise_error NameError
16
+ end
17
+ end
18
+ end
19
+ end
@@ -0,0 +1,35 @@
1
+ require 'spec_helper'
2
+
3
+
4
+ describe 'Fetcher::Mongoid::Models::Db' do
5
+ context 'When I create a column' do
6
+
7
+ before do
8
+ Fetcher::Mongoid::Models::Db.new "./config/main.yml"
9
+ @column = Column.new
10
+ end
11
+
12
+ it 'should return true when insert it empty' do
13
+ @column.save.should == true
14
+ end
15
+
16
+ it 'should return true when insert with a Filter that is in the Db and i can get the filter back' do
17
+ @column.save
18
+ f = Filter.new :Column => @column
19
+ Filter::Column_id = @column._id
20
+ f.save
21
+
22
+ @column.Filter.push f
23
+ @column.save.should == true
24
+
25
+ aux_filter = Column.find(@column._id).Filter
26
+ aux_filter.first.should == f
27
+ f.remove
28
+ end
29
+
30
+ after do
31
+ @column.remove
32
+ end
33
+
34
+ end
35
+ end
@@ -0,0 +1,41 @@
1
+ require 'spec_helper'
2
+
3
+
4
+ describe 'Fetcher::Mongoid::Models::Db' do
5
+ context 'When I create a filter' do
6
+
7
+ before do
8
+ Fetcher::Mongoid::Models::Db.new "./config/main.yml"
9
+ end
10
+
11
+ let(:filter) {Filter.new}
12
+ let(:column) {Column.new}
13
+
14
+ it 'should return false when inserted without a Column' do
15
+ expect {
16
+ filter.save
17
+ }.to raise_error NameError, "uninitialized constant Filter::Column_id"
18
+ end
19
+
20
+ it 'should return false when inserted with a Column that is not in the db' do
21
+ filter.Column = column
22
+ expect {
23
+ filter.save
24
+ }.to raise_error NameError, "uninitialized constant Filter::Column_id"
25
+ end
26
+
27
+ it 'should return true when inserted with a valid Column' do
28
+ column.save
29
+ f = Filter.new :Column => column
30
+ Filter::Column_id = column._id
31
+ f.save.should == true
32
+ column.remove
33
+ f.remove
34
+ end
35
+
36
+ after do
37
+ filter.remove
38
+ end
39
+
40
+ end
41
+ end
@@ -0,0 +1,26 @@
1
+ require "spec_helper"
2
+
3
+ describe "Fetcher::Mongoid::Models::Db" do
4
+ context "when i create a PersonUser" do
5
+
6
+ before do
7
+ Fetcher::Mongoid::Models::Db.new "./config/main.yml"
8
+ end
9
+
10
+ let(:personuser) {PersonUser.new}
11
+
12
+ it "should return false when inserted without an access token" do
13
+ personuser.save.should == false
14
+ end
15
+
16
+ it "should return true when inserted with an access token" do
17
+ personuser.accessToken = "askjhdla654654kjsdhlaksdjhlkasjdh65464"
18
+ personuser.save.should == true
19
+ end
20
+
21
+ after do
22
+ personuser.remove
23
+ end
24
+
25
+ end
26
+ end
@@ -0,0 +1,40 @@
1
+ require 'spec_helper'
2
+
3
+
4
+ describe 'Fetcher::Mongoid::Models::Db' do
5
+ context 'When I create a source' do
6
+ before do
7
+ Fetcher::Mongoid::Models::Db.new "./config/main.yml"
8
+ @source = Source.new
9
+ end
10
+
11
+ it 'should return false when insert without a Column' do
12
+ expect {
13
+ @source.save
14
+ }.to raise_error NameError, "uninitialized constant Source::Column_id"
15
+ end
16
+
17
+ it 'should return false when insert with a Column that is not in the db' do
18
+ column = Column.new
19
+ @source.Column = column
20
+ expect {
21
+ @source.save
22
+ }.to raise_error NameError, "uninitialized constant Source::Column_id"
23
+ end
24
+
25
+ it 'should return true when insert with a valid Column' do
26
+ column = Column.new
27
+ column.save
28
+ s = Source.new :Column => column
29
+ Source::Column_id = column._id
30
+ s.save.should == true
31
+ column.remove
32
+ s.remove
33
+ end
34
+
35
+ after do
36
+ @source.remove
37
+ end
38
+
39
+ end
40
+ end
@@ -0,0 +1,23 @@
1
+ require "spec_helper"
2
+
3
+ describe "Fetcher::Mongoid::Models::Db" do
4
+ context "when i create a user" do
5
+
6
+ before do
7
+ Fetcher::Mongoid::Models::Db.new "./config/main.yml"
8
+ end
9
+
10
+ let(:user) {User.new}
11
+
12
+ it "should return true when inserted in database" do
13
+ user.save.should be_true
14
+ end
15
+
16
+
17
+
18
+ after do
19
+ user.remove
20
+ end
21
+
22
+ end
23
+ end
@@ -0,0 +1,3 @@
1
+ require 'pry'
2
+
3
+ require 'fetcher-mongoid-models'
metadata ADDED
@@ -0,0 +1,124 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: fetcher-mongoid-models
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.0
5
+ prerelease:
6
+ platform: ruby
7
+ authors:
8
+ - Olivier Ducroux
9
+ - Tomas Mehdi
10
+ autorequire:
11
+ bindir: bin
12
+ cert_chain: []
13
+ date: 2012-12-17 00:00:00.000000000 Z
14
+ dependencies:
15
+ - !ruby/object:Gem::Dependency
16
+ name: mongoid
17
+ requirement: !ruby/object:Gem::Requirement
18
+ none: false
19
+ requirements:
20
+ - - ! '>='
21
+ - !ruby/object:Gem::Version
22
+ version: '0'
23
+ type: :runtime
24
+ prerelease: false
25
+ version_requirements: !ruby/object:Gem::Requirement
26
+ none: false
27
+ requirements:
28
+ - - ! '>='
29
+ - !ruby/object:Gem::Version
30
+ version: '0'
31
+ - !ruby/object:Gem::Dependency
32
+ name: rspec
33
+ requirement: !ruby/object:Gem::Requirement
34
+ none: false
35
+ requirements:
36
+ - - ! '>='
37
+ - !ruby/object:Gem::Version
38
+ version: '0'
39
+ type: :development
40
+ prerelease: false
41
+ version_requirements: !ruby/object:Gem::Requirement
42
+ none: false
43
+ requirements:
44
+ - - ! '>='
45
+ - !ruby/object:Gem::Version
46
+ version: '0'
47
+ - !ruby/object:Gem::Dependency
48
+ name: pry
49
+ requirement: !ruby/object:Gem::Requirement
50
+ none: false
51
+ requirements:
52
+ - - ! '>='
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
55
+ type: :development
56
+ prerelease: false
57
+ version_requirements: !ruby/object:Gem::Requirement
58
+ none: false
59
+ requirements:
60
+ - - ! '>='
61
+ - !ruby/object:Gem::Version
62
+ version: '0'
63
+ description: Fetcher Mongoid Models
64
+ email:
65
+ - ducrouxolivier@gmail.com
66
+ - tomymehdi@gmail.com
67
+ executables: []
68
+ extensions: []
69
+ extra_rdoc_files: []
70
+ files:
71
+ - Gemfile
72
+ - Gemfile.lock
73
+ - README.rest
74
+ - Rakefile
75
+ - app/models/column.rb
76
+ - app/models/filter.rb
77
+ - app/models/person_user.rb
78
+ - app/models/source.rb
79
+ - app/models/user.rb
80
+ - config/main.yml
81
+ - fetcher-mongoid-models.gemspec
82
+ - lib/fetcher-mongoid-models.rb
83
+ - lib/fetcher/mongoid/models/db.rb
84
+ - lib/fetcher/mongoid/models/version.rb
85
+ - lib/models.rb
86
+ - spec/fetcher/mongoid/models/db_spec.rb
87
+ - spec/models/column_spec.rb
88
+ - spec/models/filter_spec.rb
89
+ - spec/models/person_user_spec.rb
90
+ - spec/models/source_spec.rb
91
+ - spec/models/user_spec.rb
92
+ - spec/spec_helper.rb
93
+ homepage: http://github.com/Fetcher/fetcher-mongoid-models
94
+ licenses: []
95
+ post_install_message:
96
+ rdoc_options: []
97
+ require_paths:
98
+ - lib
99
+ required_ruby_version: !ruby/object:Gem::Requirement
100
+ none: false
101
+ requirements:
102
+ - - ! '>='
103
+ - !ruby/object:Gem::Version
104
+ version: '0'
105
+ required_rubygems_version: !ruby/object:Gem::Requirement
106
+ none: false
107
+ requirements:
108
+ - - ! '>='
109
+ - !ruby/object:Gem::Version
110
+ version: '0'
111
+ requirements: []
112
+ rubyforge_project:
113
+ rubygems_version: 1.8.24
114
+ signing_key:
115
+ specification_version: 3
116
+ summary: Fetcher Mongodb Models
117
+ test_files:
118
+ - spec/fetcher/mongoid/models/db_spec.rb
119
+ - spec/models/column_spec.rb
120
+ - spec/models/filter_spec.rb
121
+ - spec/models/person_user_spec.rb
122
+ - spec/models/source_spec.rb
123
+ - spec/models/user_spec.rb
124
+ - spec/spec_helper.rb