freezetag 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (3) hide show
  1. checksums.yaml +7 -0
  2. data/lib/freezetag.rb +41 -0
  3. metadata +57 -0
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: e4bd623e61e7d13f68f78f639478d3c8f1d795d5
4
+ data.tar.gz: 5f7842824abe6f0ba3a3c55d7b80b62ae2790c77
5
+ SHA512:
6
+ metadata.gz: 7c976bb5f4f0a333319532d7587a4df14aeb2f06fc762637bb8c8c01adf57819e6e85b5dd0ffbea3aacca4ca943b856508922f630bbe2545948f270603a02e37
7
+ data.tar.gz: e90230af8f31be09b091ea2adf5d0e532f3d0691a42b7338a7f595b1aede7dabf00c06ef93f67c793a69e0fd6e5f4d234a7f3b008b463d1bf59f5eebe17f19c5
data/lib/freezetag.rb ADDED
@@ -0,0 +1,41 @@
1
+ module Freezetag
2
+
3
+ API_ENDPOINT = 'http://www.freezetag.io/api/v1/tags'
4
+
5
+ mattr_accessor :api_key
6
+
7
+ def self.initialize(options = {})
8
+ self.api_key = options[:api_key]
9
+ end
10
+
11
+ def self.included(base)
12
+ base.class_eval do
13
+ extend ClassMethods
14
+ include InstanceMethods
15
+ cattr_accessor :freezetag_attribute, :freezetag_api_key
16
+ end
17
+ base.freezetag_api_key = self.api_key
18
+ end
19
+
20
+ module ClassMethods
21
+ def autocomplete(attribute)
22
+ self.freezetag_attribute = attribute
23
+ before_save :freezetag_deindex_record
24
+ after_save :freezetag_index_record
25
+ end
26
+ end
27
+
28
+ module InstanceMethods
29
+ def freezetag_index_record
30
+ body = { name: self.send(self.freezetag_attribute), type: self.class.name, id: self.id }
31
+ HTTParty.post(API_ENDPOINT, headers: { 'X-API-Key' => self.freezetag_api_key }, body: body)
32
+ end
33
+
34
+ def freezetag_deindex_record
35
+ return true if self.id == nil
36
+ body = { type: self.class.name, id: self.id }
37
+ HTTParty.delete(API_ENDPOINT, headers: { 'X-API-Key' => self.freezetag_api_key }, body: body)
38
+ end
39
+ end
40
+
41
+ end
metadata ADDED
@@ -0,0 +1,57 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: freezetag
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ platform: ruby
6
+ authors:
7
+ - Kevin Kimball
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2015-06-04 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: httparty
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ">="
18
+ - !ruby/object:Gem::Version
19
+ version: 0.13.5
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ">="
25
+ - !ruby/object:Gem::Version
26
+ version: 0.13.5
27
+ description: ''
28
+ email: kwkimball@gmail.com
29
+ executables: []
30
+ extensions: []
31
+ extra_rdoc_files: []
32
+ files:
33
+ - lib/freezetag.rb
34
+ homepage: http://www.freezetag.io
35
+ licenses: []
36
+ metadata: {}
37
+ post_install_message:
38
+ rdoc_options: []
39
+ require_paths:
40
+ - lib
41
+ required_ruby_version: !ruby/object:Gem::Requirement
42
+ requirements:
43
+ - - ">="
44
+ - !ruby/object:Gem::Version
45
+ version: '0'
46
+ required_rubygems_version: !ruby/object:Gem::Requirement
47
+ requirements:
48
+ - - ">="
49
+ - !ruby/object:Gem::Version
50
+ version: '0'
51
+ requirements: []
52
+ rubyforge_project:
53
+ rubygems_version: 2.2.2
54
+ signing_key:
55
+ specification_version: 4
56
+ summary: ''
57
+ test_files: []