active_orm 3.0.0 → 4.0.0

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