focus-utils 0.0.7 → 0.0.8

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,52 @@
1
+ require 'active_support/concern'
2
+
3
+ module ActiveResource
4
+ module Extend
5
+ module Singleton
6
+ extend ActiveSupport::Concern
7
+
8
+ included do
9
+ class << self
10
+ alias_method_chain :find_one, :singleton
11
+ alias_method_chain :collection_name, :singleton
12
+ end
13
+ end
14
+
15
+ module ClassMethods
16
+ def singleton
17
+ # Not using superclass_delegating_reader. See +site+ for explanation
18
+ if defined?(@singleton)
19
+ @singleton
20
+ elsif superclass != Object && superclass.singleton
21
+ superclass.singleton.dup.freeze
22
+ else
23
+ @singleton = false
24
+ end
25
+ end
26
+
27
+ def singleton=(singleton)
28
+ @singleton = singleton
29
+ end
30
+
31
+ def find_one_with_singleton(options)
32
+ found_object = find_one_without_singleton(options)
33
+ if !found_object && singleton
34
+ prefix_options, query_options = split_options(options[:params])
35
+ path = element_path(nil, prefix_options, query_options)
36
+ found_object = instantiate_record(format.decode(connection.get(path, headers).body), prefix_options)
37
+ end
38
+ found_object
39
+ end
40
+
41
+ def collection_name_with_singleton
42
+ if singleton
43
+ element_name
44
+ else
45
+ collection_name_without_singleton
46
+ end
47
+ end
48
+
49
+ end
50
+ end
51
+ end
52
+ end
data/lib/focus-utils.rb CHANGED
@@ -6,6 +6,7 @@ require 'ares/remove_format_extension'
6
6
  require 'ares/add_custom_header'
7
7
  require 'ares/use_config_file'
8
8
  require 'ares/threadsafe_authentication'
9
+ require 'ares/add_singleton'
9
10
 
10
11
  #ActiveResource::Base.include_format_in_path = false
11
12
  ActiveResource::Base.send(:include, ActiveResource::Extend::AuthWithApiKey)
@@ -13,4 +14,5 @@ ActiveResource::Base.send(:include, ActiveResource::Extend::RemoveExtension)
13
14
  ActiveResource::Base.send(:include, ActiveResource::Extend::AddRelativePrefix)
14
15
  ActiveResource::Base.send(:include, ActiveResource::Extend::AddCustomHeaders)
15
16
  ActiveResource::Base.send(:include, ActiveResource::Extend::ThreadsafeAuthentication)
17
+ ActiveResource::Base.send(:include, ActiveResource::Extend::Singleton)
16
18
  ActiveResource::Base.establish_site_connection
metadata CHANGED
@@ -1,63 +1,69 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: focus-utils
3
3
  version: !ruby/object:Gem::Version
4
- prerelease:
5
- version: 0.0.7
4
+ version: 0.0.8
5
+ prerelease:
6
6
  platform: ruby
7
7
  authors:
8
8
  - Spencer Davis
9
- autorequire:
9
+ autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-12-27 00:00:00.000000000Z
12
+ date: 2012-12-27 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: activeresource
16
- version_requirements: &2056 !ruby/object:Gem::Requirement
16
+ requirement: !ruby/object:Gem::Requirement
17
+ none: false
17
18
  requirements:
18
19
  - - ~>
19
20
  - !ruby/object:Gem::Version
20
21
  version: '3.0'
21
- none: false
22
- requirement: *2056
23
- prerelease: false
24
22
  type: :runtime
25
- description: Add-ons including API Key, remove format extensions (.json, .xml) for requests, and configuration file (sites.yml) for each environment's default settings.
23
+ prerelease: false
24
+ version_requirements: !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - ~>
28
+ - !ruby/object:Gem::Version
29
+ version: '3.0'
30
+ description: Add-ons including API Key, remove format extensions (.json, .xml) for
31
+ requests, and configuration file (sites.yml) for each environment's default settings.
26
32
  email: spencer.davis@bipt.com
27
33
  executables: []
28
34
  extensions: []
29
35
  extra_rdoc_files: []
30
36
  files:
31
- - lib/focus-utils.rb
32
37
  - lib/ares/add_api_key.rb
33
38
  - lib/ares/add_custom_header.rb
34
39
  - lib/ares/add_relative_prefix.rb
40
+ - lib/ares/add_singleton.rb
35
41
  - lib/ares/remove_format_extension.rb
36
42
  - lib/ares/threadsafe_authentication.rb
37
43
  - lib/ares/use_config_file.rb
44
+ - lib/focus-utils.rb
38
45
  homepage: https://github.com/spencerfdavis/ares-focus-extensions
39
46
  licenses: []
40
- post_install_message:
47
+ post_install_message:
41
48
  rdoc_options: []
42
49
  require_paths:
43
50
  - lib
44
51
  required_ruby_version: !ruby/object:Gem::Requirement
52
+ none: false
45
53
  requirements:
46
54
  - - ! '>='
47
55
  - !ruby/object:Gem::Version
48
56
  version: '0'
49
- none: false
50
57
  required_rubygems_version: !ruby/object:Gem::Requirement
58
+ none: false
51
59
  requirements:
52
60
  - - ! '>='
53
61
  - !ruby/object:Gem::Version
54
62
  version: '0'
55
- none: false
56
63
  requirements: []
57
- rubyforge_project:
58
- rubygems_version: 1.8.15
59
- signing_key:
64
+ rubyforge_project:
65
+ rubygems_version: 1.8.23
66
+ signing_key:
60
67
  specification_version: 3
61
68
  summary: Add-ons/patches for Focus Tech Projects.
62
69
  test_files: []
63
- ...