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 ADDED
@@ -0,0 +1,5 @@
1
+ *.gem
2
+ .bundle
3
+ Gemfile.lock
4
+ pkg/*
5
+ test_app/*
data/.rvmrc ADDED
@@ -0,0 +1 @@
1
+ rvm --create use ruby-1.9.3@kue
data/Gemfile ADDED
@@ -0,0 +1,4 @@
1
+ source "http://rubygems.org"
2
+
3
+ # Specify your gem's dependencies in kue.gemspec
4
+ gemspec
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
@@ -0,0 +1,3 @@
1
+ module Kue
2
+ VERSION = "0.0.1"
3
+ end
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: []