active_orm 3.0.0 → 4.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: da03a7da4c7e4a6842338e0e31ea791a561f0b7e
4
- data.tar.gz: ef6069ee665ae797c4dc77ae8b1886df4fd3ffb1
3
+ metadata.gz: f553533ee1d9e00017974e9be0f066242baaf401
4
+ data.tar.gz: 8dc77ee230e832e299ef3bf08dba9c8cea08be5b
5
5
  SHA512:
6
- metadata.gz: f8dd836ccfbfdcf2aeffd8016b721a3ad31e4d7471d1bafffede3d945012b258292c4f8754d6568fdd0bc7b0fdd1cab6efcb474a2084dd3212a04700191a8797
7
- data.tar.gz: 8dda4a7f1b7d7160016874389b08709a9f6f3295df2d16dbc81aceefaf5f0263a7040e6decb3b53d0a2a9ee12b2a288a899473d91a569dfae7bfaac088ed6721
6
+ metadata.gz: 060aeaf9aa0a1bc68ab5646e39379aaa06a838c6b18b855471e958fa01b04bf1c551583c4e3d94c68c0aaa5336d79d058ecfb3f1771551d358168098f53186f3
7
+ data.tar.gz: be4c7ba86630e1c45d9cff37d83d10561cd59beae5745419f2d4661eb43bf287d07590c774e85b84d89ad75dfa41127ba4828b89b67f75aef531e7f652f78d62
Binary file
@@ -0,0 +1,19 @@
1
+ speedups:
2
+ rescue_vs_respond_to: true
3
+ module_eval: true
4
+ shuffle_first_vs_sample: true
5
+ for_loop_vs_each: true
6
+ each_with_index_vs_while: false
7
+ map_flatten_vs_flat_map: true
8
+ reverse_each_vs_reverse_each: true
9
+ select_first_vs_detect: true
10
+ sort_vs_sort_by: true
11
+ fetch_with_argument_vs_block: true
12
+ keys_each_vs_each_key: true
13
+ hash_merge_bang_vs_hash_brackets: true
14
+ block_vs_symbol_to_proc: true
15
+ proc_call_vs_yield: true
16
+ gsub_vs_tr: true
17
+ select_last_vs_reverse_detect: true
18
+ getter_vs_attr_reader: true
19
+ setter_vs_attr_writer: true
data/.reek ADDED
@@ -0,0 +1,34 @@
1
+ ---
2
+ Attribute:
3
+ enabled: false
4
+ BooleanParameter:
5
+ enabled: false
6
+ ClassVariable:
7
+ enabled: false
8
+ ControlParameter:
9
+ enabled: false
10
+ DuplicateMethodCall:
11
+ exclude:
12
+ - 'Base#metamorph'
13
+ FeatureEnvy:
14
+ enabled: false
15
+ IrresponsibleModule:
16
+ enabled: false
17
+ LongParameterList:
18
+ enabled: false
19
+ ManualDispatch:
20
+ enabled: false
21
+ NestedIterators:
22
+ max_allowed_nesting: 2
23
+ NilCheck:
24
+ enabled: false
25
+ PrimaDonnaMethod:
26
+ enabled: false
27
+ RepeatedConditional:
28
+ enabled: false
29
+ TooManyStatements:
30
+ max_statements: 10
31
+ exclude:
32
+ - 'Base#metamorph'
33
+ UtilityFunction:
34
+ enabled: false
@@ -0,0 +1,42 @@
1
+ AllCops:
2
+ DisplayCopNames: true
3
+ DisplayStyleGuide: true
4
+ TargetRubyVersion: 2.3
5
+ Exclude:
6
+ - 'spec/**/**/*'
7
+ LineLength:
8
+ Max: 100
9
+ Metrics/ClassLength:
10
+ Enabled: false
11
+ Metrics/ModuleLength:
12
+ Enabled: false
13
+ Style/Alias:
14
+ EnforcedStyle: prefer_alias_method
15
+ Style/BracesAroundHashParameters:
16
+ Enabled: false
17
+ Style/ClassAndModuleChildren:
18
+ EnforcedStyle: compact
19
+ Style/ClassVars:
20
+ Enabled: false
21
+ Style/ClosingParenthesisIndentation:
22
+ Enabled: false
23
+ Style/Documentation:
24
+ Enabled: false
25
+ Style/EmptyLinesAroundBlockBody:
26
+ Enabled: false
27
+ Style/EmptyLinesAroundClassBody:
28
+ Enabled: false
29
+ Style/EmptyLinesAroundModuleBody:
30
+ Enabled: false
31
+ Style/HashSyntax:
32
+ Enabled: false
33
+ Style/FirstParameterIndentation:
34
+ Enabled: false
35
+ Style/FrozenStringLiteralComment:
36
+ Enabled: false
37
+ Style/MultilineMethodCallIndentation:
38
+ EnforcedStyle: aligned
39
+ Style/NumericLiterals:
40
+ Enabled: false
41
+ Style/RescueModifier:
42
+ Enabled: false
data/Gemfile CHANGED
@@ -1,4 +1,4 @@
1
- source "https://rubygems.org"
1
+ source 'https://rubygems.org'
2
2
 
3
3
  # Specify your gem's dependencies in active_orm.gemspec
4
4
  gemspec
data/README.md CHANGED
@@ -18,7 +18,7 @@ ActiveOrm is a library for object ruby mapping of different databases.
18
18
  Add this line to your application's Gemfile:
19
19
 
20
20
  ```ruby
21
- gem "active_orm"
21
+ gem 'active_orm'
22
22
  ```
23
23
 
24
24
  And then execute:
@@ -40,14 +40,13 @@ Or install it yourself as:
40
40
  **Options:**
41
41
  * client: add a custom Redis client
42
42
 
43
- `rails generate active_orm:install` will generate the following `active_orm.rb` file:
43
+ `rails generate active_orm:install` will generate the following file:
44
+ `../config/initalizers/active_orm.rb`
44
45
 
45
46
  ```ruby
46
- # config/initalizers/active_orm.rb
47
-
48
47
  if defined?(Redis)
49
48
  ActiveOrm::Redis.configure do |config|
50
- config.client = Redis.new(:host => "10.0.1.1", :port => 6380, :db => 15)
49
+ config.client = Redis.new(host: '10.0.1.1', port: 6380, db: 15)
51
50
  end
52
51
  end
53
52
  ```
@@ -68,13 +67,13 @@ end
68
67
  * Transaction
69
68
 
70
69
  ```ruby
71
- ActiveOrm::Redis::String.create(:month, "01")
72
- ActiveOrm::Redis::String.find(:month) #=> "01"
73
- ActiveOrm::Redis::String.evaluate.find(:month) #=> 1
70
+ ActiveOrm::Redis::String.create(:month, '01')
71
+ ActiveOrm::Redis::String.find(:month) #=> '01'
72
+ ActiveOrm::Redis::String.evaluate.find(:month) #=> 1
74
73
 
75
- ActiveOrm::Redis::List.create(:user_1, { id: 32123, name: "James Dean", username: "alpha123" })
76
- ActiveOrm::Redis::List.find(:user_1) #=> { id: "32123", name: "James Dean", username: "alpha123" }
77
- ActiveOrm::Redis::List.evaluate.find(:user_1) #=> { id: 32123, name: "James Dean", username: "alpha123" }
74
+ ActiveOrm::Redis::List.create(:user_1, { id: 32123, name: 'James Dean', username: 'alpha123' })
75
+ ActiveOrm::Redis::List.find(:user_1) #=> { id: '32123', name: 'James Dean', username: 'alpha123' }
76
+ ActiveOrm::Redis::List.evaluate.find(:user_1) #=> { id: 32123, name: 'James Dean', username: 'alpha123' }
78
77
  ```
79
78
 
80
79
  **Rake:**
data/Rakefile CHANGED
@@ -1,5 +1,5 @@
1
- require "bundler/gem_tasks"
1
+ require 'bundler/gem_tasks'
2
2
 
3
3
  task default: :spec
4
4
 
5
- import "lib/tasks/redis.rake"
5
+ import 'lib/tasks/redis.rake'
@@ -1,29 +1,33 @@
1
1
  # coding: utf-8
2
- lib = File.expand_path("../lib", __FILE__)
2
+ lib = File.expand_path('../lib', __FILE__)
3
3
  $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
- require "active_orm/version"
4
+ require 'active_orm/version'
5
5
 
6
6
  Gem::Specification.new do |spec|
7
- spec.name = "active_orm"
7
+ spec.name = 'active_orm'
8
8
  spec.version = ActiveOrm::VERSION
9
- spec.authors = ["Juan Gomez"]
10
- spec.email = ["j.gomez@drexed.com"]
9
+ spec.authors = ['Juan Gomez']
10
+ spec.email = ['j.gomez@drexed.com']
11
11
 
12
- spec.summary = %q{Gem for commonly used database ORM.}
13
- spec.description = %q{ORM for non-supported databases.}
14
- spec.homepage = "http://drexed.github.io/active_orm"
15
- spec.license = "MIT"
12
+ spec.summary = 'Gem for commonly used database ORM.'
13
+ spec.description = 'ORM for non-supported databases.'
14
+ spec.homepage = 'http://drexed.github.io/active_orm'
15
+ spec.license = 'MIT'
16
16
 
17
17
  spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
18
- spec.bindir = "exe"
18
+ spec.bindir = 'exe'
19
19
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
20
- spec.require_paths = ["lib"]
20
+ spec.require_paths = ['lib']
21
21
 
22
- spec.add_runtime_dependency "rails"
22
+ spec.add_runtime_dependency 'rails'
23
+ spec.add_runtime_dependency 'dry-configurable'
23
24
 
24
- spec.add_development_dependency "bundler"
25
- spec.add_development_dependency "coveralls"
26
- spec.add_development_dependency "rake"
27
- spec.add_development_dependency "rspec"
28
- spec.add_development_dependency "generator_spec"
25
+ spec.add_development_dependency 'bundler'
26
+ spec.add_development_dependency 'coveralls'
27
+ spec.add_development_dependency 'rake'
28
+ spec.add_development_dependency 'rspec'
29
+ spec.add_development_dependency 'generator_spec'
30
+ spec.add_development_dependency 'fasterer'
31
+ spec.add_development_dependency 'reek'
32
+ spec.add_development_dependency 'rubocop'
29
33
  end
@@ -1,14 +1,14 @@
1
1
  #!/usr/bin/env ruby
2
2
 
3
- require "bundler/setup"
4
- require "active_orm"
3
+ require 'bundler/setup'
4
+ require 'active_orm'
5
5
 
6
6
  # You can add fixtures and/or initialization code here to make experimenting
7
7
  # with your gem easier. You can also use a different console, if you like.
8
8
 
9
9
  # (If you use this, don't forget to add pry to your Gemfile!)
10
- # require "pry"
10
+ # require 'pry'
11
11
  # Pry.start
12
12
 
13
- require "irb"
13
+ require 'irb'
14
14
  IRB.start
data/bin/rake CHANGED
@@ -2,15 +2,14 @@
2
2
  #
3
3
  # This file was generated by Bundler.
4
4
  #
5
- # The application "rake" is installed as part of a gem, and
5
+ # The application 'rake' is installed as part of a gem, and
6
6
  # this file is here to facilitate running it.
7
7
  #
8
8
 
9
- require "pathname"
10
- ENV["BUNDLE_GEMFILE"] ||= File.expand_path("../../Gemfile",
11
- Pathname.new(__FILE__).realpath)
9
+ require 'pathname'
10
+ ENV['BUNDLE_GEMFILE'] ||= File.expand_path('../../Gemfile', Pathname.new(__FILE__).realpath)
12
11
 
13
- require "rubygems"
14
- require "bundler/setup"
12
+ require 'rubygems'
13
+ require 'bundler/setup'
15
14
 
16
- load Gem.bin_path("rake", "rake")
15
+ load Gem.bin_path('rake', 'rake')
Binary file
@@ -1,30 +1,12 @@
1
- require "rails/railtie"
1
+ require 'rails/railtie'
2
2
 
3
- require "active_orm/version"
4
- require "active_orm/base"
5
-
6
- require "active_orm/redis"
7
- require "active_orm/redis/connection"
8
- require "active_orm/redis/geo"
9
- require "active_orm/redis/hash"
10
- require "active_orm/redis/hyper_log_log"
11
- require "active_orm/redis/key"
12
- require "active_orm/redis/list"
13
- require "active_orm/redis/pub_sub"
14
- require "active_orm/redis/script"
15
- require "active_orm/redis/set"
16
- require "active_orm/redis/sorted_set"
17
- require "active_orm/redis/string"
18
- require "active_orm/redis/transaction"
19
-
20
- require "generators/active_orm/install_generator"
21
-
22
- module ActiveOrm
23
- class Railtie < Rails::Railtie
24
-
25
- rake_tasks do
26
- Dir[File.expand_path("tasks/*.rake", File.dirname(__FILE__))].each { |ext| load(ext) }
27
- end
3
+ %w(version railtie base redis).each do |file_name|
4
+ require "active_orm/#{file_name}"
5
+ end
28
6
 
7
+ %w(connection geo hash hyper_log_log key list pub_sub script set sorted_set string transaction)
8
+ .each do |file_name|
9
+ require "active_orm/redis/#{file_name}"
29
10
  end
30
- end
11
+
12
+ require 'generators/active_orm/install_generator'
Binary file
@@ -6,10 +6,6 @@ class ActiveOrm::Base
6
6
  @configuration ||= Configuration.new
7
7
  end
8
8
 
9
- def self.configuration=(config)
10
- @configuration = config
11
- end
12
-
13
9
  def self.configure
14
10
  yield(configuration)
15
11
  end
@@ -0,0 +1,7 @@
1
+ class ActiveOrm::Railtie < Rails::Railtie
2
+
3
+ rake_tasks do
4
+ Dir[File.expand_path('tasks/*.rake', File.dirname(__FILE__))].each { |ext| load(ext) }
5
+ end
6
+
7
+ end
@@ -1,22 +1,22 @@
1
1
  begin
2
- require "fakeredis"
2
+ require 'fakeredis'
3
3
  rescue LoadError
4
- require "redis"
4
+ require 'redis'
5
5
  end
6
6
 
7
- require "active_orm/redis/base"
8
- require "active_orm/redis/configuration"
9
- class ActiveOrm::Redis < ActiveOrm::Base
7
+ require 'active_orm/redis/base'
8
+ require 'active_orm/redis/configuration'
10
9
 
10
+ class ActiveOrm::Redis < ActiveOrm::Base
11
11
  extend Base
12
12
 
13
13
  attr_accessor :client
14
14
 
15
- def initialize(client=nil)
15
+ def initialize(client = nil)
16
16
  @client ||= (client.nil? ? ActiveOrm::Redis.configuration.client : client)
17
17
  end
18
18
 
19
- def self.client(client=nil)
19
+ def self.client(client = nil)
20
20
  client.nil? ? new.client : new(client).client
21
21
  end
22
22
 
@@ -2,7 +2,7 @@ module Base
2
2
 
3
3
  @@evaluate = false
4
4
 
5
- def evaluate(value=true)
5
+ def evaluate(value = true)
6
6
  @@evaluate = value
7
7
  self
8
8
  end
@@ -10,44 +10,51 @@ module Base
10
10
  private
11
11
 
12
12
  def evaluate?
13
- value = @@evaluate
13
+ value = @@evaluate
14
14
  @@evaluate = false
15
15
  value
16
16
  end
17
17
 
18
18
  def append?(order)
19
- "append" == order.to_s
19
+ 'append' == order.to_s
20
20
  end
21
21
 
22
+ # rubocop:disable Lint/Eval, Lint/RescueException
22
23
  def metaform(value)
23
24
  value.nil? ? value : eval(value)
24
- rescue Exception => e
25
+ rescue Exception
25
26
  value
26
27
  end
28
+ # rubocop:enable Lint/Eval, Lint/RescueException
27
29
 
30
+ # rubocop:disable Metrics/AbcSize, Metrics/MethodLength
28
31
  def metamorph(datum)
29
32
  case datum.class.name
30
- when "Array"
31
- if datum.first.is_a?(Array)
32
- datum.map { |array| array.map { |value| metaform(value) } }
33
- elsif datum.first.is_a?(Hash)
34
- datum.map { |hash| hash.each { |key, value| hash.store(key, metaform(value)) } }
33
+ when 'Array'
34
+ data = datum.first
35
+
36
+ if data.is_a?(Array)
37
+ datum.map { |arr| arr.map { |val| metaform(val) } }
38
+ elsif data.is_a?(Hash)
39
+ datum.map { |hsh| hsh.each { |key, val| hash.store(key, metaform(val)) } }
35
40
  else
36
- datum.map { |value| metaform(value) }
41
+ datum.map { |val| metaform(val) }
37
42
  end
38
- when "Hash"
39
- datum.each { |key, value| datum.store(key, metaform(value)) }
43
+ when 'Hash'
44
+ datum.each { |key, val| datum.store(key, metaform(val)) }
40
45
  else
41
46
  metaform(datum)
42
47
  end
43
48
  end
49
+ # rubocop:enable Metrics/AbcSize, Metrics/MethodLength
44
50
 
45
51
  def metatransform(datum)
46
- datum.empty? ? nil : (evaluate? ? metamorph(datum) : datum)
52
+ return(nil) if datum.empty?
53
+ evaluate? ? metamorph(datum) : datum
47
54
  end
48
55
 
49
56
  def milliseconds?(format)
50
- "milliseconds" == format.to_s
57
+ 'milliseconds' == format.to_s
51
58
  end
52
59
 
53
60
  def normalize_key(key)
@@ -55,15 +62,15 @@ module Base
55
62
  end
56
63
 
57
64
  def prepend?(order)
58
- "prepend" == order.to_s
65
+ 'prepend' == order.to_s
59
66
  end
60
67
 
61
68
  def seconds?(format)
62
- "seconds" == format.to_s
69
+ 'seconds' == format.to_s
63
70
  end
64
71
 
65
72
  def stringify_keys(value)
66
- value.map { |k, v| k.to_s }
73
+ value.map { |key, _| key.to_s }
67
74
  end
68
75
 
69
76
  end
@@ -72,15 +72,11 @@ class ActiveOrm::Redis::Connection < ActiveOrm::Redis
72
72
  client.shutdown
73
73
  end
74
74
 
75
- def self.shutdown
76
- client.shutdown
77
- end
78
-
79
75
  def self.slave_of(host, port)
80
76
  client.slaveof(host, port)
81
77
  end
82
78
 
83
- def self.slowlog(command, length=nil)
79
+ def self.slowlog(command, length = nil)
84
80
  client.slowlog(command, length)
85
81
  end
86
82
 
@@ -92,7 +88,7 @@ class ActiveOrm::Redis::Connection < ActiveOrm::Redis
92
88
  client.time
93
89
  end
94
90
 
95
- def self.with_reconnect(val=true, &block)
91
+ def self.with_reconnect(val = true, &block)
96
92
  client.with_reconnect(val, &block)
97
93
  end
98
94
 
@@ -55,14 +55,20 @@ class ActiveOrm::Redis::Hash < ActiveOrm::Redis
55
55
  end
56
56
 
57
57
  def self.increment(key, field, value)
58
- value.is_a?(Float) ? client.hincrbyfloat(normalize_key(key), field, value) : client.hincrby(normalize_key(key), field, value)
58
+ normalized_key = normalize_key(key)
59
+
60
+ if value.is_a?(Float)
61
+ client.hincrbyfloat(normalized_key, field, value)
62
+ else
63
+ client.hincrby(normalized_key, field, value)
64
+ end
59
65
  end
60
66
 
61
67
  def self.destroy(key, *args)
62
68
  client.hdel(normalize_key(key), *args)
63
69
  end
64
70
 
65
- def self.scan(key, cursor, opts={})
71
+ def self.scan(key, cursor, opts = {})
66
72
  client.hdel(normalize_key(key), cursor, opts)
67
73
  end
68
74
 
@@ -8,11 +8,13 @@ class ActiveOrm::Redis::Key < ActiveOrm::Redis
8
8
  client.type(normalize_key(key))
9
9
  end
10
10
 
11
- def self.ttl?(key, format=:seconds)
12
- seconds?(format) ? client.ttl(normalize_key(key)) : client.pttl(normalize_key(key))
11
+ def self.ttl?(key, format = :seconds)
12
+ normalized_key = normalize_key(key)
13
+
14
+ seconds?(format) ? client.ttl(normalized_key) : client.pttl(normalized_key)
13
15
  end
14
16
 
15
- def self.sort(key, opts={})
17
+ def self.sort(key, opts = {})
16
18
  client.sort(normalize_key(key), opts)
17
19
  end
18
20
 
@@ -36,19 +38,31 @@ class ActiveOrm::Redis::Key < ActiveOrm::Redis
36
38
  client.persist(normalize_key(key))
37
39
  end
38
40
 
39
- def self.expire(key, seconds, format=:seconds)
40
- seconds?(format) ? client.expire(normalize_key(key), seconds) : client.pexpire(normalize_key(key), seconds)
41
+ def self.expire(key, seconds, format = :seconds)
42
+ normalized_key = normalize_key(key)
43
+
44
+ if seconds?(format)
45
+ client.expire(normalized_key, seconds)
46
+ else
47
+ client.pexpire(normalized_key, seconds)
48
+ end
41
49
  end
42
50
 
43
- def self.expire_at(key, seconds, format=:seconds)
44
- seconds?(format) ? client.expireat(normalize_key(key), seconds) : client.pexpireat(normalize_key(key), seconds)
51
+ def self.expire_at(key, seconds, format = :seconds)
52
+ normalized_key = normalize_key(key)
53
+
54
+ if seconds?(format)
55
+ client.expireat(normalized_key, seconds)
56
+ else
57
+ client.pexpireat(normalized_key, seconds)
58
+ end
45
59
  end
46
60
 
47
61
  def self.dump(key)
48
62
  client.dump(normalize_key(key))
49
63
  end
50
64
 
51
- def self.match(pattern='*')
65
+ def self.match(pattern = '*')
52
66
  value = client.keys(normalize_key(pattern))
53
67
  value = nil if value.empty?
54
68
  value
@@ -70,11 +84,7 @@ class ActiveOrm::Redis::Key < ActiveOrm::Redis
70
84
  client.restore(normalize_key(key), milliseconds, value)
71
85
  end
72
86
 
73
- def self.sort(key, opts={})
74
- client.sort(normalize_key(key), opts)
75
- end
76
-
77
- def self.scan(cursor, opts={})
87
+ def self.scan(cursor, opts = {})
78
88
  client.scan(cursor, opts)
79
89
  end
80
90
 
@@ -1,26 +1,26 @@
1
1
  class ActiveOrm::Redis::List < ActiveOrm::Redis
2
2
 
3
- def self.find(key, position=1)
3
+ def self.find(key, position = 1)
4
4
  value = client.lindex(normalize_key(key), (position - 1))
5
5
  value = metamorph(value) if evaluate?
6
6
  value
7
7
  end
8
8
 
9
- def self.first(key, limit=1)
9
+ def self.first(key, limit = 1)
10
10
  value = client.lrange(normalize_key(key), 0, -1)
11
- value = ((limit == 1) ? value.first : value.first(limit))
11
+ value = (limit == 1 ? value.first : value.first(limit))
12
12
  value = metamorph(value) if evaluate?
13
13
  value
14
14
  end
15
15
 
16
- def self.last(key, limit=1)
16
+ def self.last(key, limit = 1)
17
17
  value = client.lrange(normalize_key(key), 0, -1)
18
- value = ((limit == 1) ? value.last : value.last(limit))
18
+ value = (limit == 1 ? value.last : value.last(limit))
19
19
  value = metamorph(value) if evaluate?
20
20
  value
21
21
  end
22
22
 
23
- def self.between(key, start=1, finish=0)
23
+ def self.between(key, start = 1, finish = 0)
24
24
  value = client.lrange(normalize_key(key), (start - 1), (finish - 1))
25
25
  value = metatransform(value)
26
26
  value
@@ -36,22 +36,30 @@ class ActiveOrm::Redis::List < ActiveOrm::Redis
36
36
  client.llen(normalize_key(key))
37
37
  end
38
38
 
39
- def self.create(key, value, order=:prepend)
40
- append?(order) ? client.rpush(normalize_key(key), value) : client.lpush(normalize_key(key), value)
39
+ def self.create(key, value, order = :prepend)
40
+ normalized_key = normalize_key(key)
41
+
42
+ append?(order) ? client.rpush(normalized_key, value) : client.lpush(normalized_key, value)
41
43
  end
42
44
 
43
- def self.create!(key, value, order=:prepend)
44
- append?(order) ? client.rpushx(normalize_key(key), value) : client.lpushx(normalize_key(key), value)
45
+ def self.create!(key, value, order = :prepend)
46
+ normalized_key = normalize_key(key)
47
+
48
+ append?(order) ? client.rpushx(normalized_key, value) : client.lpushx(normalized_key, value)
45
49
  end
46
50
 
47
- def self.create_limit(key, value, limit, order=:prepend)
48
- append?(order) ? client.rpush(normalize_key(key), value) : client.lpush(normalize_key(key), value)
49
- client.ltrim(normalize_key(key), 0, (limit - 1))
51
+ def self.create_limit(key, value, limit, order = :prepend)
52
+ normalized_key = normalize_key(key)
53
+
54
+ append?(order) ? client.rpush(normalized_key, value) : client.lpush(normalized_key, value)
55
+ client.ltrim(normalized_key, 0, (limit - 1))
50
56
  end
51
57
 
52
- def self.create_limit!(key, value, limit, order=:prepend)
53
- append?(order) ? client.rpushx(normalize_key(key), value) : client.lpushx(normalize_key(key), value)
54
- client.ltrim(normalize_key(key), 0, (limit - 1))
58
+ def self.create_limit!(key, value, limit, order = :prepend)
59
+ normalized_key = normalize_key(key)
60
+
61
+ append?(order) ? client.rpushx(normalized_key, value) : client.lpushx(normalized_key, value)
62
+ client.ltrim(normalized_key, 0, (limit - 1))
55
63
  end
56
64
 
57
65
  def self.create_before(key, pivot, value)
@@ -72,7 +80,7 @@ class ActiveOrm::Redis::List < ActiveOrm::Redis
72
80
  value
73
81
  end
74
82
 
75
- def self.move_blocking(key, desination, opts={})
83
+ def self.move_blocking(key, desination)
76
84
  value = brpoplpush(normalize_key(key), normalize_key(desination))
77
85
  value = metamorph(value) if evaluate?
78
86
  value
@@ -82,11 +90,11 @@ class ActiveOrm::Redis::List < ActiveOrm::Redis
82
90
  client.lrem(normalize_key(key), count, value)
83
91
  end
84
92
 
85
- def self.destroy_first(key, limit=1)
93
+ def self.destroy_first(key, limit = 1)
86
94
  client.ltrim(normalize_key(key), limit, -1)
87
95
  end
88
96
 
89
- def self.destroy_last(key, limit=1)
97
+ def self.destroy_last(key, limit = 1)
90
98
  client.ltrim(normalize_key(key), 0, -(limit + 1))
91
99
  end
92
100
 
@@ -98,14 +106,20 @@ class ActiveOrm::Redis::List < ActiveOrm::Redis
98
106
  client.ltrim(normalize_key(key), -1, 0)
99
107
  end
100
108
 
101
- def self.pop(key, order=:prepend)
109
+ def self.pop(key, order = :prepend)
102
110
  value = append?(order) ? client.rpop(key) : client.lpop(key)
103
111
  value = metamorph(value) if evaluate?
104
112
  value
105
113
  end
106
114
 
107
- def self.pop_blocking(keys, opts={})
108
- value = append?(opts.fetch(:order, :prepend)) ? client.brpop(keys, opts.fetch(:timeout, 0)) : client.blpop(keys, opts.fetch(:timeout, 0))
115
+ def self.pop_blocking(keys, opts = {})
116
+ timeout = opts[:timeout] || 0
117
+ value = if append?(opts[:order] || :prepend)
118
+ client.brpop(keys, timeout)
119
+ else
120
+ client.blpop(keys, timeout)
121
+ end
122
+
109
123
  value = metamorph(value) if evaluate?
110
124
  value
111
125
  end
@@ -24,7 +24,7 @@ class ActiveOrm::Redis::Set < ActiveOrm::Redis
24
24
  value
25
25
  end
26
26
 
27
- def self.sample(key, value=1)
27
+ def self.sample(key, value = 1)
28
28
  value = client.srandmember(normalize_key(key), value)
29
29
  value = metatransform(value)
30
30
  value
@@ -66,7 +66,7 @@ class ActiveOrm::Redis::Set < ActiveOrm::Redis
66
66
  client.spop(normalize_key(key))
67
67
  end
68
68
 
69
- def self.scan(key, cursor, opts={})
69
+ def self.scan(key, cursor, opts = {})
70
70
  client.sscan(normalize_key(key), cursor, opts)
71
71
  end
72
72
 
@@ -1,84 +1,86 @@
1
1
  class ActiveOrm::Redis::SortedSet < ActiveOrm::Redis
2
2
 
3
- def self.find(key, position, opts={})
4
- value = client.zrange(normalize_key(key), (position - 1), (position - 1), opts)
3
+ def self.find(key, position, opts = {})
4
+ position -= 1
5
+
6
+ value = client.zrange(normalize_key(key), position, position, opts)
5
7
  value = value.first
6
8
  value = metamorph(value) if evaluate?
7
9
  value
8
10
  end
9
11
 
10
- def self.find_score(key, position, opts={})
12
+ def self.find_score(key, position, opts = {})
11
13
  value = client.zrangebyscore(normalize_key(key), position, position, opts)
12
14
  value = value.first
13
15
  value = metamorph(value) if evaluate?
14
16
  value
15
17
  end
16
18
 
17
- def self.first(key, opts={})
19
+ def self.first(key, opts = {})
18
20
  value = client.zrange(normalize_key(key), 0, 0, opts)
19
21
  value = value.first
20
22
  value = metamorph(value) if evaluate?
21
23
  value
22
24
  end
23
25
 
24
- def self.first_score(key, opts={})
26
+ def self.first_score(key, opts = {})
25
27
  value = client.zrangebyscore(normalize_key(key), 1, 1, opts)
26
28
  value = value.first
27
29
  value = metamorph(value) if evaluate?
28
30
  value
29
31
  end
30
32
 
31
- def self.last(key, opts={})
33
+ def self.last(key, opts = {})
32
34
  value = client.zrevrange(normalize_key(key), 0, 0, opts)
33
35
  value = value.first
34
36
  value = metamorph(value) if evaluate?
35
37
  value
36
38
  end
37
39
 
38
- def self.last_score(key, opts={})
40
+ def self.last_score(key, opts = {})
39
41
  value = client.zrevrangebyscore(normalize_key(key), 1, 1, opts)
40
42
  value = value.first
41
43
  value = metamorph(value) if evaluate?
42
44
  value
43
45
  end
44
46
 
45
- def self.between(key, start, finish, opts={})
47
+ def self.between(key, start, finish, opts = {})
46
48
  value = client.zrange(normalize_key(key), (start - 1), (finish - 1), opts)
47
49
  value = metatransform(value)
48
50
  value
49
51
  end
50
52
 
51
- def self.between_reverse(key, start, finish, opts={})
53
+ def self.between_reverse(key, start, finish, opts = {})
52
54
  value = client.zrevrange(normalize_key(key), (start - 1), (finish - 1), opts)
53
55
  value = metatransform(value)
54
56
  value
55
57
  end
56
58
 
57
- def self.between_scores(key, min, max, opts={})
59
+ def self.between_scores(key, min, max, opts = {})
58
60
  value = client.zrangebyscore(normalize_key(key), min, max, opts)
59
61
  value = metatransform(value)
60
62
  value
61
63
  end
62
64
 
63
- def self.between_scores_reverse(key, min, max, opts={})
65
+ def self.between_scores_reverse(key, min, max, opts = {})
64
66
  value = client.zrevrangebyscore(normalize_key(key), min, max, opts)
65
67
  value = metatransform(value)
66
68
  value
67
69
  end
68
70
 
69
- def self.between_lex(key, min, max, opts={})
71
+ def self.between_lex(key, min, max, opts = {})
70
72
  value = client.zrangebylex(normalize_key(key), min, max, opts)
71
73
  value = metatransform(value)
72
74
  value
73
75
  end
74
76
 
75
- def self.between_lex_reverse(key, min, max, opts={})
77
+ def self.between_lex_reverse(key, min, max, opts = {})
76
78
  value = client.zrevrangebylex(normalize_key(key), min, max, opts)
77
79
  value = metatransform(value)
78
80
  value
79
81
  end
80
82
 
81
- def self.all(key, opts={})
83
+ def self.all(key, opts = {})
82
84
  value = client.zrange(normalize_key(key), '-inf', '+inf', opts)
83
85
  value = metatransform(value)
84
86
  value
@@ -86,13 +88,13 @@ class ActiveOrm::Redis::SortedSet < ActiveOrm::Redis
86
88
 
87
89
  def self.position(key, value)
88
90
  value = client.zrank(normalize_key(key), value)
89
- value = value + 1 unless value.nil?
91
+ value += 1 unless value.nil?
90
92
  value
91
93
  end
92
94
 
93
95
  def self.position_reverse(key, value)
94
96
  value = client.zrevrank(normalize_key(key), value)
95
- value = value + 1 unless value.nil?
97
+ value += 1 unless value.nil?
96
98
  value
97
99
  end
98
100
 
@@ -112,11 +114,11 @@ class ActiveOrm::Redis::SortedSet < ActiveOrm::Redis
112
114
  client.zadd(normalize_key(key), args)
113
115
  end
114
116
 
115
- def self.create_intersection(key, keys, opts={})
117
+ def self.create_intersection(key, keys, opts = {})
116
118
  client.zinterstore(normalize_key(key), keys, opts)
117
119
  end
118
120
 
119
- def self.create_combination(key, keys, opts={})
121
+ def self.create_combination(key, keys, opts = {})
120
122
  client.zunionstore(normalize_key(key), keys, opts)
121
123
  end
122
124
 
@@ -136,11 +138,11 @@ class ActiveOrm::Redis::SortedSet < ActiveOrm::Redis
136
138
  client.zremrangebyscore(normalize_key(key), min, max)
137
139
  end
138
140
 
139
- def self.destroy_lex(key, min, max, opts={})
141
+ def self.destroy_lex(key, min, max, opts = {})
140
142
  client.zrevrangebylex(normalize_key(key), max, min, opts)
141
143
  end
142
144
 
143
- def self.scan(key, cursor, opts={})
145
+ def self.scan(key, cursor, opts = {})
144
146
  client.zscan(normalize_key(key), cursor, opts)
145
147
  end
146
148
 
@@ -21,7 +21,7 @@ class ActiveOrm::Redis::String < ActiveOrm::Redis
21
21
  client.getrange(normalize_key(key), start, finish)
22
22
  end
23
23
 
24
- def self.create(key, value, opts={})
24
+ def self.create(key, value, opts = {})
25
25
  client.set(normalize_key(key), value, opts)
26
26
  end
27
27
 
@@ -39,8 +39,14 @@ class ActiveOrm::Redis::String < ActiveOrm::Redis
39
39
  client.msetnx(args)
40
40
  end
41
41
 
42
- def self.create_until(key, value, seconds, format=:seconds)
43
- seconds?(format) ? client.setex(normalize_key(key), seconds, value) : client.psetex(normalize_key(key), seconds, value)
42
+ def self.create_until(key, value, seconds, format = :seconds)
43
+ normalized_key = normalize_key(key)
44
+
45
+ if seconds?(format)
46
+ client.setex(normalized_key, seconds, value)
47
+ else
48
+ client.psetex(normalized_key, seconds, value)
49
+ end
44
50
  end
45
51
 
46
52
  def self.append(key, value)
@@ -51,23 +57,27 @@ class ActiveOrm::Redis::String < ActiveOrm::Redis
51
57
  client.setrange(normalize_key(key), offset, value)
52
58
  end
53
59
 
54
- def self.decrement(key, value=1)
55
- (value == 1) ? client.decr(normalize_key(key)) : client.decrby(normalize_key(key), value)
60
+ def self.decrement(key, value = 1)
61
+ normalized_key = normalize_key(key)
62
+
63
+ value == 1 ? client.decr(normalized_key) : client.decrby(normalized_key, value)
56
64
  end
57
65
 
58
- def self.increment(key, value=1)
66
+ def self.increment(key, value = 1)
67
+ normalized_key = normalize_key(key)
68
+
59
69
  if value.is_a?(Float)
60
- client.incrbyfloat(normalize_key(key), value)
70
+ client.incrbyfloat(normalized_key, value)
61
71
  else
62
- (value == 1) ? client.incr(normalize_key(key)) : client.incrby(normalize_key(key), value)
72
+ value == 1 ? client.incr(normalized_key) : client.incrby(normalized_key, value)
63
73
  end
64
74
  end
65
75
 
66
- def self.reset(key, value=0)
76
+ def self.reset(key, value = 0)
67
77
  client.getset(normalize_key(key), value)
68
78
  end
69
79
 
70
- def self.bit_count(key, start=0, finish=-1)
80
+ def self.bit_count(key, start = 0, finish = -1)
71
81
  client.bitcount(normalize_key(key), start, finish)
72
82
  end
73
83
 
@@ -1,3 +1,3 @@
1
1
  module ActiveOrm
2
- VERSION = "3.0.0"
2
+ VERSION = '4.0.0'.freeze
3
3
  end
@@ -1,12 +1,10 @@
1
- require "rails/generators"
1
+ require 'rails/generators'
2
2
 
3
- module ActiveOrm
4
- class InstallGenerator < Rails::Generators::Base
5
- source_root File.expand_path("../templates", __FILE__)
6
-
7
- def copy_initializer_file
8
- copy_file("install.rb", "config/initializers/active_orm.rb")
9
- end
3
+ class ActiveOrm::InstallGenerator < Rails::Generators::Base
4
+ source_root File.expand_path('../templates', __FILE__)
10
5
 
6
+ def copy_initializer_file
7
+ copy_file('install.rb', 'config/initializers/active_orm.rb')
11
8
  end
9
+
12
10
  end
@@ -1,30 +1,30 @@
1
1
  namespace :db do
2
2
  namespace :redis do
3
3
 
4
- desc "Reset Redis database"
4
+ desc 'Reset Redis database'
5
5
  task reset: :environment do
6
- puts "== Reset: reseting Redis ".ljust(80, "=")
6
+ puts '== Reset: reseting Redis '.ljust(80, '=')
7
7
  total_task_start_time = Time.current
8
8
 
9
- puts " -> Resetting"
9
+ puts ' -> Resetting'
10
10
  ActiveOrm::Redis::Connection.flush
11
11
 
12
12
  total_task_elapsed_time = (Time.current - total_task_start_time).round(5)
13
- puts "== Reset: reset Redis (#{total_task_elapsed_time}s) ".ljust(80, "=")
14
- puts ""
13
+ puts "== Reset: reset Redis (#{total_task_elapsed_time}s) ".ljust(80, '=')
14
+ puts ''
15
15
  end
16
16
 
17
- desc "Reset all Redis databases"
17
+ desc 'Reset all Redis databases'
18
18
  task reset_all: :environment do
19
- puts "== Reset: reseting all Redis ".ljust(80, "=")
19
+ puts '== Reset: reseting all Redis '.ljust(80, '=')
20
20
  total_task_start_time = Time.current
21
21
 
22
- puts " -> Resetting"
22
+ puts ' -> Resetting'
23
23
  ActiveOrm::Redis::Connection.flush_all
24
24
 
25
25
  total_task_elapsed_time = (Time.current - total_task_start_time).round(5)
26
- puts "== Reset: reset all Redis (#{total_task_elapsed_time}s) ".ljust(80, "=")
27
- puts ""
26
+ puts "== Reset: reset all Redis (#{total_task_elapsed_time}s) ".ljust(80, '=')
27
+ puts ''
28
28
  end
29
29
 
30
30
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: active_orm
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.0.0
4
+ version: 4.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Juan Gomez
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2016-06-03 00:00:00.000000000 Z
11
+ date: 2016-09-08 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
@@ -24,6 +24,20 @@ dependencies:
24
24
  - - ">="
25
25
  - !ruby/object:Gem::Version
26
26
  version: '0'
27
+ - !ruby/object:Gem::Dependency
28
+ name: dry-configurable
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ">="
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
27
41
  - !ruby/object:Gem::Dependency
28
42
  name: bundler
29
43
  requirement: !ruby/object:Gem::Requirement
@@ -94,6 +108,48 @@ dependencies:
94
108
  - - ">="
95
109
  - !ruby/object:Gem::Version
96
110
  version: '0'
111
+ - !ruby/object:Gem::Dependency
112
+ name: fasterer
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: reek
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: rubocop
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'
97
153
  description: ORM for non-supported databases.
98
154
  email:
99
155
  - j.gomez@drexed.com
@@ -101,9 +157,13 @@ executables: []
101
157
  extensions: []
102
158
  extra_rdoc_files: []
103
159
  files:
160
+ - ".DS_Store"
104
161
  - ".coveralls.yml"
162
+ - ".fasterer.yml"
105
163
  - ".gitignore"
164
+ - ".reek"
106
165
  - ".rspec"
166
+ - ".rubocop.yml"
107
167
  - ".travis.yml"
108
168
  - CODE_OF_CONDUCT.md
109
169
  - Gemfile
@@ -113,9 +173,13 @@ files:
113
173
  - bin/console
114
174
  - bin/rake
115
175
  - bin/setup
176
+ - lib/.DS_Store
116
177
  - lib/active_orm.rb
178
+ - lib/active_orm/.DS_Store
117
179
  - lib/active_orm/base.rb
180
+ - lib/active_orm/railtie.rb
118
181
  - lib/active_orm/redis.rb
182
+ - lib/active_orm/redis/.DS_Store
119
183
  - lib/active_orm/redis/base.rb
120
184
  - lib/active_orm/redis/configuration.rb
121
185
  - lib/active_orm/redis/connection.rb