bfriend 0.7.3 → 0.8.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 +4 -4
- data/.DS_Store +0 -0
- data/README.md +4 -2
- data/bfriend.gemspec +5 -3
- data/lib/bfriend.rb +21 -2
- data/lib/bfriend/version.rb +1 -1
- data/lib/generators/bfriend/bfriend_generator.rb +6 -29
- data/lib/generators/bfriend/templates/model.rb +1 -4
- metadata +6 -6
- data/lib/generators/bfriend/tmp.rb +0 -15
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 6ffc6af4bea6eb13f40601754e7eb1b91911ac6d
|
4
|
+
data.tar.gz: f3d9c7e662c2844a9b006eb6a81b31c7a191b35c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 66defefd24e69a79d99c414cbc0f05dc37b8dd0f864af5a4832457e3553b49293ae34e2daa1976c90959d1f49295efe74fee94d46846df5a0ef6913270de7c11
|
7
|
+
data.tar.gz: 8a446320e214177cfcbd004b0ae643f173d04ca7dfeb5292915ed623eee56eb6254e3601be5ce8fa356ee13def144c53a902462835ef87849cc00f2246856330
|
data/.DS_Store
ADDED
Binary file
|
data/README.md
CHANGED
@@ -21,9 +21,9 @@ Or install it yourself as:
|
|
21
21
|
|
22
22
|
## Usage
|
23
23
|
|
24
|
-
Run the bfriend generator `rails g bfriend
|
24
|
+
Run the bfriend generator `rails g bfriend`. This will generate a friendship model, a migration, add routes & associations to your user model and generate a friendship controller suitable for use in an API.
|
25
25
|
|
26
|
-
If you are using
|
26
|
+
If you are using the gem for a ruby on rails project, run `rails g bfriend --ror` .
|
27
27
|
|
28
28
|
Edit the migration to give the status a default of false
|
29
29
|
|
@@ -47,6 +47,8 @@ Now you can:
|
|
47
47
|
|
48
48
|
At this time no view templates are created and I will update this readme when and if I add them.
|
49
49
|
|
50
|
+
### Upgrading to >= 0.8.0
|
51
|
+
The class methods have been moved to the bfriend module of the gem so you will need to remove them from your user model and add `include Bfriend`
|
50
52
|
|
51
53
|
## Contributing
|
52
54
|
|
data/bfriend.gemspec
CHANGED
@@ -6,8 +6,8 @@ require "bfriend/version"
|
|
6
6
|
Gem::Specification.new do |spec|
|
7
7
|
spec.name = "bfriend"
|
8
8
|
spec.version = Bfriend::VERSION
|
9
|
-
spec.authors =
|
10
|
-
spec.email =
|
9
|
+
spec.authors = "xfinger"
|
10
|
+
spec.email = "xfinger@gmail.com"
|
11
11
|
|
12
12
|
spec.summary = %q{A simple friendship model}
|
13
13
|
spec.description = %q{Based on Railscasts #163 Self-Referential Association}
|
@@ -26,9 +26,11 @@ Gem::Specification.new do |spec|
|
|
26
26
|
spec.files = `git ls-files -z`.split("\x0").reject do |f|
|
27
27
|
f.match(%r{^(test|spec|features)/})
|
28
28
|
end
|
29
|
+
|
29
30
|
spec.bindir = "exe"
|
30
31
|
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
31
|
-
spec.require_paths = ["lib"]
|
32
|
+
spec.require_paths = ["lib","lib/generators"]
|
33
|
+
spec.required_ruby_version = ">= 2.0.0"
|
32
34
|
|
33
35
|
spec.add_development_dependency "bundler", "~> 1.15"
|
34
36
|
spec.add_development_dependency "rake", "~> 10.0"
|
data/lib/bfriend.rb
CHANGED
@@ -1,5 +1,24 @@
|
|
1
|
-
require "bfriend/version"
|
2
1
|
|
3
2
|
module Bfriend
|
4
|
-
|
3
|
+
def self.included(base)
|
4
|
+
base.class_eval do
|
5
|
+
has_many :friendships
|
6
|
+
has_many :bfriended_friendships, class_name: "Friendship", foreign_key: "friend_id"
|
7
|
+
# bfriended by user
|
8
|
+
has_many :current_friends, -> { where(friendships: { status: true}) }, through: :friendships, source: :friend
|
9
|
+
# bfriended by friend
|
10
|
+
has_many :bfriended_friends, -> { where(friendships: { status: true}) }, through: :bfriended_friendships, source: :user # requested by friend
|
11
|
+
has_many :requested_friends, -> { where(friendships: { status: false}) }, through: :bfriended_friendships, source: :user
|
12
|
+
# requested by user
|
13
|
+
has_many :pending_friends, -> { where(friendships: { status: false}) }, through: :friendships, source: :friend
|
14
|
+
end
|
15
|
+
# combine the sets to see all your friends
|
16
|
+
def friends
|
17
|
+
current_friends | bfriended_friends
|
18
|
+
end
|
19
|
+
# combine the sets to see pending and requested friendships
|
20
|
+
def pending
|
21
|
+
pending_friends | requested_friends
|
22
|
+
end
|
23
|
+
end
|
5
24
|
end
|
data/lib/bfriend/version.rb
CHANGED
@@ -5,7 +5,8 @@ require 'rails/generators/active_record'
|
|
5
5
|
class BfriendGenerator < Rails::Generators::Base
|
6
6
|
source_root File.expand_path('../templates', __FILE__)
|
7
7
|
include Rails::Generators::Migration
|
8
|
-
|
8
|
+
|
9
|
+
class_option :controller_template, :type => :string, :desc => "Template engine for the Controller. Available options are 'api' and 'ror'.", :default => "api"
|
9
10
|
class_option :ror, :type => :boolean, :default => false
|
10
11
|
|
11
12
|
|
@@ -22,34 +23,8 @@ class BfriendGenerator < Rails::Generators::Base
|
|
22
23
|
|
23
24
|
|
24
25
|
def add_to_user
|
25
|
-
|
26
|
-
|
27
|
-
has_many :friendships
|
28
|
-
has_many :bfriended_friendships, :class_name => \"Friendship\", :foreign_key => \"friend_id\"
|
29
|
-
|
30
|
-
# bfriended by user
|
31
|
-
has_many :current_friends, -> { where(friendships: { status: true}) }, through: :friendships, source: :friend
|
32
|
-
# bfriended by friend
|
33
|
-
has_many :bfriended_friends, -> { where(friendships: { status: true}) }, through: :bfriended_friendships, source: :user
|
34
|
-
# requested by friend
|
35
|
-
has_many :requested_friends, -> { where(friendships: { status: false}) }, through: :bfriended_friendships, source: :user
|
36
|
-
# requested by user
|
37
|
-
has_many :pending_friends, -> { where(friendships: { status: false}) }, through: :friendships, source: :friend
|
38
|
-
\n
|
39
|
-
|
40
|
-
# combine the sets to see all your friends
|
41
|
-
def friends
|
42
|
-
current_friends | bfriended_friends
|
43
|
-
end
|
44
|
-
|
45
|
-
# combine the sets to see pending and requested friendships
|
46
|
-
def pending
|
47
|
-
pending_friends | requested_friends
|
48
|
-
end
|
49
|
-
|
50
|
-
\n
|
51
|
-
"
|
52
|
-
|
26
|
+
inject_into_file 'app/models/user.rb', before: "end" do
|
27
|
+
"include Bfriend\n"
|
53
28
|
end
|
54
29
|
end
|
55
30
|
|
@@ -65,5 +40,7 @@ class BfriendGenerator < Rails::Generators::Base
|
|
65
40
|
def generate_migration #after generating the migration, add 'default: false' to status
|
66
41
|
generate "migration", "create_friendships user_id:integer friend_id:integer status:boolean "
|
67
42
|
end
|
43
|
+
|
44
|
+
|
68
45
|
|
69
46
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: bfriend
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.8.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- xfinger
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-09-
|
11
|
+
date: 2017-09-25 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -39,12 +39,12 @@ dependencies:
|
|
39
39
|
- !ruby/object:Gem::Version
|
40
40
|
version: '10.0'
|
41
41
|
description: 'Based on Railscasts #163 Self-Referential Association'
|
42
|
-
email:
|
43
|
-
- xfinger@gmail.com
|
42
|
+
email: xfinger@gmail.com
|
44
43
|
executables: []
|
45
44
|
extensions: []
|
46
45
|
extra_rdoc_files: []
|
47
46
|
files:
|
47
|
+
- ".DS_Store"
|
48
48
|
- ".gitignore"
|
49
49
|
- Gemfile
|
50
50
|
- LICENSE.txt
|
@@ -59,7 +59,6 @@ files:
|
|
59
59
|
- lib/generators/bfriend/templates/api_controller.rb
|
60
60
|
- lib/generators/bfriend/templates/model.rb
|
61
61
|
- lib/generators/bfriend/templates/ror_controller.rb
|
62
|
-
- lib/generators/bfriend/tmp.rb
|
63
62
|
homepage: https://github.com/XFinger/bfriend
|
64
63
|
licenses:
|
65
64
|
- MIT
|
@@ -69,11 +68,12 @@ post_install_message:
|
|
69
68
|
rdoc_options: []
|
70
69
|
require_paths:
|
71
70
|
- lib
|
71
|
+
- lib/generators
|
72
72
|
required_ruby_version: !ruby/object:Gem::Requirement
|
73
73
|
requirements:
|
74
74
|
- - ">="
|
75
75
|
- !ruby/object:Gem::Version
|
76
|
-
version:
|
76
|
+
version: 2.0.0
|
77
77
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
78
78
|
requirements:
|
79
79
|
- - ">="
|
@@ -1,15 +0,0 @@
|
|
1
|
-
has_many :friendships
|
2
|
-
has_many :received_friendships, class_name: "Friendship", foreign_key: "friend_id"
|
3
|
-
|
4
|
-
has_many :active_friends, -> { where(friendships: { accepted: true}) }, through: :friendships, source: :friend
|
5
|
-
has_many :received_friends, -> { where(friendships: { accepted: true}) }, through: :received_friendships, source: :user
|
6
|
-
has_many :pending_friends, -> { where(friendships: { accepted: false}) }, through: :friendships, source: :friend
|
7
|
-
has_many :requested_friendships, -> { where(friendships: { accepted: false}) }, through: :received_friendships, source: :user
|
8
|
-
|
9
|
-
def friends
|
10
|
-
active_friends | received_friends
|
11
|
-
end
|
12
|
-
|
13
|
-
def pending
|
14
|
-
pending_friends | requested_friendships
|
15
|
-
end
|