kue 0.0.1
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.
- data/.gitignore +5 -0
- data/.rvmrc +1 -0
- data/Gemfile +4 -0
- data/README.md +37 -0
- data/Rakefile +1 -0
- data/kue.gemspec +22 -0
- data/lib/generators/kue/install/install_generator.rb +23 -0
- data/lib/generators/kue/install/templates/migration.rb +15 -0
- data/lib/kue/version.rb +3 -0
- data/lib/kue.rb +22 -0
- metadata +67 -0
data/.gitignore
ADDED
data/.rvmrc
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
rvm --create use ruby-1.9.3@kue
|
data/Gemfile
ADDED
data/README.md
ADDED
@@ -0,0 +1,37 @@
|
|
1
|
+
###Kue
|
2
|
+
|
3
|
+
Kue is a Rails ready key value store that uses active-record under the hood.
|
4
|
+
|
5
|
+
###What does Kue mean?
|
6
|
+
K(eyVal)ue
|
7
|
+
|
8
|
+
###What about real key value stores?
|
9
|
+
Redis is awesome! But sometimes you just don't want or need the external dependancy!
|
10
|
+
|
11
|
+
### How do I install Kue?
|
12
|
+
rails generate kue:install
|
13
|
+
rails db:migrate
|
14
|
+
|
15
|
+
### Use Kue
|
16
|
+
Set a key and it's value.
|
17
|
+
|
18
|
+
```ruby
|
19
|
+
KueStore[:any_key_name_you_can_think_of] = "Any object you can dream up"
|
20
|
+
```
|
21
|
+
|
22
|
+
Get a value by key.
|
23
|
+
|
24
|
+
```ruby
|
25
|
+
KueStore[:any_setting_name_you_can_think_of]
|
26
|
+
```
|
27
|
+
|
28
|
+
Don't worry it's not just string value's kue can store for you. It's anything!
|
29
|
+
|
30
|
+
```ruby
|
31
|
+
KueStore[:my_class_instance] = Foo.new(:name => 1)
|
32
|
+
```
|
33
|
+
|
34
|
+
### WTF dude there are no spec's?!?
|
35
|
+
Yep! This has been extracted out of one of my production application that does have specs!
|
36
|
+
Don't have the time to setup all the tests and specs for kue.
|
37
|
+
I will merge a nice pull request though!
|
data/Rakefile
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
require "bundler/gem_tasks"
|
data/kue.gemspec
ADDED
@@ -0,0 +1,22 @@
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
2
|
+
$:.push File.expand_path("../lib", __FILE__)
|
3
|
+
require "kue/version"
|
4
|
+
|
5
|
+
Gem::Specification.new do |s|
|
6
|
+
s.name = "kue"
|
7
|
+
s.version = Kue::VERSION
|
8
|
+
s.authors = ["Daniel Watson"]
|
9
|
+
s.email = ["dan@dotnetguy.co.uk"]
|
10
|
+
s.homepage = ""
|
11
|
+
s.summary = %q{Kue is a simple key value store that uses ActiveRecord.}
|
12
|
+
s.description = %q{Store arbitrary key value pairs for your application using kue's simple api'}
|
13
|
+
|
14
|
+
s.rubyforge_project = "kue"
|
15
|
+
|
16
|
+
s.files = `git ls-files`.split("\n")
|
17
|
+
s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
|
18
|
+
s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
|
19
|
+
s.require_paths = ["lib"]
|
20
|
+
|
21
|
+
s.add_runtime_dependency "activerecord", ["~> 3.1.3"]
|
22
|
+
end
|
@@ -0,0 +1,23 @@
|
|
1
|
+
module Kue
|
2
|
+
module Generators
|
3
|
+
class InstallGenerator < ::Rails::Generators::Base
|
4
|
+
include Rails::Generators::Migration
|
5
|
+
source_root File.expand_path('../templates', __FILE__)
|
6
|
+
|
7
|
+
desc "add the migrations"
|
8
|
+
|
9
|
+
def self.next_migration_number(path)
|
10
|
+
unless @prev_migration_nr
|
11
|
+
@prev_migration_nr = Time.now.utc.strftime("%Y%m%d%H%M%S").to_i
|
12
|
+
else
|
13
|
+
@prev_migration_nr += 1
|
14
|
+
end
|
15
|
+
@prev_migration_nr.to_s
|
16
|
+
end
|
17
|
+
|
18
|
+
def copy_migrations
|
19
|
+
migration_template "migration.rb", "db/migrate/kue_settings_table_create_migration.rb"
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
@@ -0,0 +1,15 @@
|
|
1
|
+
class KueSettingsTableCreateMigration < ActiveRecord::Migration
|
2
|
+
def up
|
3
|
+
create_table :kue_settings, :id => false do |t|
|
4
|
+
t.string :key
|
5
|
+
t.text :value
|
6
|
+
|
7
|
+
t.timestamps
|
8
|
+
end
|
9
|
+
add_index :kue_settings, :key, :unique => true
|
10
|
+
end
|
11
|
+
|
12
|
+
def down
|
13
|
+
drop_table :kue_settings
|
14
|
+
end
|
15
|
+
end
|
data/lib/kue/version.rb
ADDED
data/lib/kue.rb
ADDED
@@ -0,0 +1,22 @@
|
|
1
|
+
require "kue/version"
|
2
|
+
|
3
|
+
class KueStore < ActiveRecord::Base
|
4
|
+
set_table_name :kue_settings
|
5
|
+
set_primary_key :key
|
6
|
+
|
7
|
+
def self.[](key)
|
8
|
+
begin
|
9
|
+
entry = KueStore.find(key)
|
10
|
+
YAML.load(entry.value)
|
11
|
+
rescue ActiveRecord::RecordNotFound
|
12
|
+
return nil
|
13
|
+
end
|
14
|
+
end
|
15
|
+
|
16
|
+
def self.[]=(key, value)
|
17
|
+
setting = KueStore.find_or_create_by_key(key)
|
18
|
+
setting.value = value.to_yaml
|
19
|
+
setting.save!
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
metadata
ADDED
@@ -0,0 +1,67 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: kue
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.0.1
|
5
|
+
prerelease:
|
6
|
+
platform: ruby
|
7
|
+
authors:
|
8
|
+
- Daniel Watson
|
9
|
+
autorequire:
|
10
|
+
bindir: bin
|
11
|
+
cert_chain: []
|
12
|
+
date: 2011-12-23 00:00:00.000000000 Z
|
13
|
+
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
15
|
+
name: activerecord
|
16
|
+
requirement: &70307965192520 !ruby/object:Gem::Requirement
|
17
|
+
none: false
|
18
|
+
requirements:
|
19
|
+
- - ~>
|
20
|
+
- !ruby/object:Gem::Version
|
21
|
+
version: 3.1.3
|
22
|
+
type: :runtime
|
23
|
+
prerelease: false
|
24
|
+
version_requirements: *70307965192520
|
25
|
+
description: Store arbitrary key value pairs for your application using kue's simple
|
26
|
+
api'
|
27
|
+
email:
|
28
|
+
- dan@dotnetguy.co.uk
|
29
|
+
executables: []
|
30
|
+
extensions: []
|
31
|
+
extra_rdoc_files: []
|
32
|
+
files:
|
33
|
+
- .gitignore
|
34
|
+
- .rvmrc
|
35
|
+
- Gemfile
|
36
|
+
- README.md
|
37
|
+
- Rakefile
|
38
|
+
- kue.gemspec
|
39
|
+
- lib/generators/kue/install/install_generator.rb
|
40
|
+
- lib/generators/kue/install/templates/migration.rb
|
41
|
+
- lib/kue.rb
|
42
|
+
- lib/kue/version.rb
|
43
|
+
homepage: ''
|
44
|
+
licenses: []
|
45
|
+
post_install_message:
|
46
|
+
rdoc_options: []
|
47
|
+
require_paths:
|
48
|
+
- lib
|
49
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
50
|
+
none: false
|
51
|
+
requirements:
|
52
|
+
- - ! '>='
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '0'
|
55
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
56
|
+
none: false
|
57
|
+
requirements:
|
58
|
+
- - ! '>='
|
59
|
+
- !ruby/object:Gem::Version
|
60
|
+
version: '0'
|
61
|
+
requirements: []
|
62
|
+
rubyforge_project: kue
|
63
|
+
rubygems_version: 1.8.10
|
64
|
+
signing_key:
|
65
|
+
specification_version: 3
|
66
|
+
summary: Kue is a simple key value store that uses ActiveRecord.
|
67
|
+
test_files: []
|