lovely 0.0.1 → 0.0.2

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 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