lovely 0.0.1 → 0.0.2

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 69be434100acad0a23cbb48ea23706877c553b83
4
- data.tar.gz: 063b4841452a96f362e5c73f6ea21bb044d62e45
3
+ metadata.gz: ce62f722a4fea812b444ff9e1ba907a5e33e66fc
4
+ data.tar.gz: ea52c4fef6c323d7debcc7725c470e1d99c6d4b3
5
5
  SHA512:
6
- metadata.gz: d9d306536a76d85c87400c9819911b629be7259d4d2bbc03b5e628988aa3d2f70b18cada204030ec058ce8ef1bf3087dd351c260ca2ff5c559541d8611e83d67
7
- data.tar.gz: 7f14e3de7c301f0aa54ec0d5244d3a005ef42908c9d4a7f3c5d788597ae3f50688df66e75c11ab7b439c55f57c649397f547a177be49b28dcbd6eb1d86f78492
6
+ metadata.gz: 19e789c56f058376c695fd3eb0c8f24c54c34d35f58561f87d966c2a86df66d94ddf0d7458ff74f89d996de505a6baf19c3a32afecb9b461484e03f23fb6879d
7
+ data.tar.gz: 0efc606a1192c5d39d51104251c50ede9292b03224df294f051a6d37b1303f29e3f381a899a8c6f3a32a2c344cac44c4dd38f493eaa0fd58d8bcf542d75bdb0b
data/Gemfile CHANGED
@@ -2,3 +2,5 @@ source 'https://rubygems.org'
2
2
 
3
3
  # Specify your gem's dependencies in lovely.gemspec
4
4
  gemspec
5
+
6
+ gem 'pry-byebug'
@@ -3,6 +3,15 @@ module Lovely
3
3
 
4
4
  def add(model, loveable, options = {})
5
5
  cn = class_name(model, loveable)
6
+ ms = model_singular(model)
7
+ ls = loveable_singular(loveable)
8
+ cc = cache_counter(model, loveable)
9
+ join_class = Class.new(ActiveRecord::Base) do
10
+ belongs_to :"#{ms}", required: true
11
+ belongs_to :"#{ls}", counter_cache: :"#{cc}", required: true
12
+ end
13
+ Object.const_set(cn,join_class)
14
+
6
15
  model.class_eval do
7
16
  has_many :"#{loveable}_likes", class_name: cn, dependent: :destroy
8
17
  has_many :"liked_#{loveable}", through: :"#{loveable}_likes", source: :"#{loveable.to_s.singularize}"
@@ -15,5 +24,17 @@ module Lovely
15
24
  loveable_class = loveable.to_s.classify
16
25
  "#{model_class}#{loveable_class}Like"
17
26
  end
27
+
28
+ def cache_counter(model, loveable)
29
+ "#{class_name(model, loveable).pluralize.underscore}_count"
30
+ end
31
+
32
+ def model_singular(model)
33
+ model.name.underscore
34
+ end
35
+
36
+ def loveable_singular(loveable)
37
+ loveable.to_s.singularize
38
+ end
18
39
  end
19
40
  end
@@ -1,3 +1,3 @@
1
1
  module Lovely
2
- VERSION = '0.0.1'
2
+ VERSION = '0.0.2'
3
3
  end
@@ -17,7 +17,7 @@ Gem::Specification.new do |spec|
17
17
  spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test)/}) }
18
18
  spec.require_paths = ['lib']
19
19
 
20
- spec.add_runtime_dependency 'activerecord', '~> 4.0'
20
+ spec.add_runtime_dependency 'activerecord', '>= 4.2'
21
21
  spec.add_development_dependency 'bundler', '~> 1.9'
22
22
  spec.add_development_dependency 'rake', '~> 10.0'
23
23
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: lovely
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.0.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Abdelkader Boudih
@@ -14,16 +14,16 @@ dependencies:
14
14
  name: activerecord
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - "~>"
17
+ - - ">="
18
18
  - !ruby/object:Gem::Version
19
- version: '4.0'
19
+ version: '4.2'
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - "~>"
24
+ - - ">="
25
25
  - !ruby/object:Gem::Version
26
- version: '4.0'
26
+ version: '4.2'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: bundler
29
29
  requirement: !ruby/object:Gem::Requirement