cookie_cutter 0.3.6 → 0.4.0

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: 47b2794c62f943c6e2e98cbc3fcca6d4e0661ee9
4
- data.tar.gz: 543b602746c82cfebdd26c5f9fd06b40917301c5
2
+ SHA256:
3
+ metadata.gz: 3eeaa96820553e14150a41c1846012869792ab90aad9862bb58d138fbeb558ad
4
+ data.tar.gz: b5184f8c9d5264389266d7963cfe92254b62491027d149361e6e00f17b7469f6
5
5
  SHA512:
6
- metadata.gz: 54627fbc688f6469ca1b98717e1eb7b0fbad522a85fb798b634e1840334d61e01c4d39b78f88078804981d14185d5a46207596c0472e9c43d4f939a72b42aa2c
7
- data.tar.gz: 60c964bf4200ee0f2528632121818d2034be9f82693b31a33203030fb5fd8b6e6190f799a1b2bf6a6c88ae78ad8baa9698ce7ecc27ee5227dbf93461ed9e1cca
6
+ metadata.gz: 5695bf9d898efbf72174d124b190472934c0e15039adc5d233d79e76140ce96f195df5dfe27929876b56696b71d14365c4f9eb49c80d4032cb38b01e8d537d67
7
+ data.tar.gz: 1fe0e333feb02c9e27e6d4f0e0aa16d0feefe691e98504e1d5f2087287d61abf573a9d69556ec7d6d29bb4e9a015fb53ff6e108710a3d55a7cabf4b1abec1510
data/Gemfile CHANGED
@@ -1,4 +1,4 @@
1
- source :rubygems
1
+ source 'https://rubygems.org'
2
2
 
3
3
  # Specify your gem's dependencies in cookie_cutter.gemspec
4
4
  gemspec
@@ -15,8 +15,8 @@ Gem::Specification.new do |gem|
15
15
  gem.require_paths = ["lib"]
16
16
  gem.version = CookieCutter::VERSION
17
17
 
18
- gem.add_development_dependency 'activesupport' #for date helpers
19
- gem.add_development_dependency 'rake'
20
- gem.add_development_dependency 'rspec'
21
- gem.add_development_dependency 'rspec-mocks'
18
+ gem.add_development_dependency 'activesupport', '~> 3.2.22' #for date helpers
19
+ gem.add_development_dependency 'rake', '~> 10.5'
20
+ gem.add_development_dependency 'rspec', '~> 2.14.1'
21
+ gem.add_development_dependency 'rspec-mocks', '~> 2.14.6'
22
22
  end
@@ -1,4 +1,5 @@
1
1
  require 'cookie_cutter/cookie_attribute'
2
+ require 'cookie_cutter/cookie_registry'
2
3
 
3
4
  module CookieCutter
4
5
  module Cookie
@@ -12,6 +13,7 @@ module CookieCutter
12
13
 
13
14
  def store_as(name)
14
15
  @cookie_name = name
16
+ ensure_registered
15
17
  end
16
18
 
17
19
  attr_reader :cookie_domain
@@ -75,6 +77,7 @@ module CookieCutter
75
77
 
76
78
  def has_attribute(attribute_name, options={})
77
79
  raise "CookieCutter value names must by symbols. #{attribute_name} is not a symbol" unless attribute_name.is_a?(Symbol)
80
+ ensure_registered
78
81
  #make value and value= private when the cookie has one or more named values
79
82
  private :value, :value=, :set_value
80
83
 
@@ -97,6 +100,7 @@ module CookieCutter
97
100
 
98
101
  def add_handler(&block)
99
102
  handlers << block
103
+ ensure_registered
100
104
  end
101
105
 
102
106
  def handlers
@@ -106,6 +110,12 @@ module CookieCutter
106
110
  def attributes
107
111
  @attributes ||= []
108
112
  end
113
+
114
+ private
115
+
116
+ def ensure_registered
117
+ CookieRegistry.instance.register self
118
+ end
109
119
  end
110
120
 
111
121
  def self.included(klass)
@@ -0,0 +1,23 @@
1
+ require 'singleton'
2
+
3
+ module CookieCutter
4
+ class CookieRegistry
5
+ include Singleton
6
+
7
+ def initialize
8
+ @cookies = Set.new
9
+ end
10
+
11
+ def register(cookie_class)
12
+ @cookies.add cookie_class
13
+ end
14
+
15
+ def all
16
+ @cookies
17
+ end
18
+
19
+ def clear
20
+ @cookies.clear
21
+ end
22
+ end
23
+ end
@@ -1,3 +1,3 @@
1
1
  module CookieCutter
2
- VERSION = "0.3.6"
2
+ VERSION = "0.4.0"
3
3
  end
@@ -0,0 +1,28 @@
1
+ require 'rspec'
2
+ require 'cookie_cutter/base'
3
+ require 'cookie_cutter/cookie_registry'
4
+
5
+ describe CookieCutter::CookieRegistry do
6
+ before do
7
+ CookieCutter::CookieRegistry.instance.clear
8
+ class MyCookie < CookieCutter::Base
9
+ store_as 'my'
10
+ end
11
+ class MyOtherCookie < CookieCutter::Base
12
+ store_as 'other'
13
+ end
14
+ class DynamicCookie < CookieCutter::Base
15
+ # no store_as
16
+ has_attribute :foo
17
+ end
18
+ end
19
+ let :registered_cookies do
20
+ CookieCutter::CookieRegistry.instance.all
21
+ end
22
+ it 'all cookies are registered' do
23
+ registered_cookies.length.should == 3
24
+ registered_cookies.should include(MyCookie)
25
+ registered_cookies.should include(MyOtherCookie)
26
+ registered_cookies.should include(DynamicCookie)
27
+ end
28
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cookie_cutter
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.6
4
+ version: 0.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Andy Alm
@@ -9,64 +9,64 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2014-07-31 00:00:00.000000000 Z
12
+ date: 2022-05-17 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: activesupport
16
16
  requirement: !ruby/object:Gem::Requirement
17
17
  requirements:
18
- - - '>='
18
+ - - "~>"
19
19
  - !ruby/object:Gem::Version
20
- version: '0'
20
+ version: 3.2.22
21
21
  type: :development
22
22
  prerelease: false
23
23
  version_requirements: !ruby/object:Gem::Requirement
24
24
  requirements:
25
- - - '>='
25
+ - - "~>"
26
26
  - !ruby/object:Gem::Version
27
- version: '0'
27
+ version: 3.2.22
28
28
  - !ruby/object:Gem::Dependency
29
29
  name: rake
30
30
  requirement: !ruby/object:Gem::Requirement
31
31
  requirements:
32
- - - '>='
32
+ - - "~>"
33
33
  - !ruby/object:Gem::Version
34
- version: '0'
34
+ version: '10.5'
35
35
  type: :development
36
36
  prerelease: false
37
37
  version_requirements: !ruby/object:Gem::Requirement
38
38
  requirements:
39
- - - '>='
39
+ - - "~>"
40
40
  - !ruby/object:Gem::Version
41
- version: '0'
41
+ version: '10.5'
42
42
  - !ruby/object:Gem::Dependency
43
43
  name: rspec
44
44
  requirement: !ruby/object:Gem::Requirement
45
45
  requirements:
46
- - - '>='
46
+ - - "~>"
47
47
  - !ruby/object:Gem::Version
48
- version: '0'
48
+ version: 2.14.1
49
49
  type: :development
50
50
  prerelease: false
51
51
  version_requirements: !ruby/object:Gem::Requirement
52
52
  requirements:
53
- - - '>='
53
+ - - "~>"
54
54
  - !ruby/object:Gem::Version
55
- version: '0'
55
+ version: 2.14.1
56
56
  - !ruby/object:Gem::Dependency
57
57
  name: rspec-mocks
58
58
  requirement: !ruby/object:Gem::Requirement
59
59
  requirements:
60
- - - '>='
60
+ - - "~>"
61
61
  - !ruby/object:Gem::Version
62
- version: '0'
62
+ version: 2.14.6
63
63
  type: :development
64
64
  prerelease: false
65
65
  version_requirements: !ruby/object:Gem::Requirement
66
66
  requirements:
67
- - - '>='
67
+ - - "~>"
68
68
  - !ruby/object:Gem::Version
69
- version: '0'
69
+ version: 2.14.6
70
70
  description: Provides a way to define the structure, lifetime, and other properties
71
71
  of a cookie all in one place.
72
72
  email:
@@ -75,8 +75,8 @@ executables: []
75
75
  extensions: []
76
76
  extra_rdoc_files: []
77
77
  files:
78
- - .gitignore
79
- - .travis.yml
78
+ - ".gitignore"
79
+ - ".travis.yml"
80
80
  - Gemfile
81
81
  - LICENSE
82
82
  - README.md
@@ -86,11 +86,13 @@ files:
86
86
  - lib/cookie_cutter/base.rb
87
87
  - lib/cookie_cutter/cookie.rb
88
88
  - lib/cookie_cutter/cookie_attribute.rb
89
+ - lib/cookie_cutter/cookie_registry.rb
89
90
  - lib/cookie_cutter/test_support.rb
90
91
  - lib/cookie_cutter/test_support/fake_cookie_jar.rb
91
92
  - lib/cookie_cutter/test_support/stubs.rb
92
93
  - lib/cookie_cutter/version.rb
93
94
  - spec/base_spec.rb
95
+ - spec/cookie_registry_spec.rb
94
96
  homepage: http://github.com/gettyimages/cookie_cutter
95
97
  licenses: []
96
98
  metadata: {}
@@ -100,20 +102,20 @@ require_paths:
100
102
  - lib
101
103
  required_ruby_version: !ruby/object:Gem::Requirement
102
104
  requirements:
103
- - - '>='
105
+ - - ">="
104
106
  - !ruby/object:Gem::Version
105
107
  version: '0'
106
108
  required_rubygems_version: !ruby/object:Gem::Requirement
107
109
  requirements:
108
- - - '>='
110
+ - - ">="
109
111
  - !ruby/object:Gem::Version
110
112
  version: '0'
111
113
  requirements: []
112
- rubyforge_project:
113
- rubygems_version: 2.2.2
114
+ rubygems_version: 3.3.10
114
115
  signing_key:
115
116
  specification_version: 4
116
117
  summary: Provides a way to define the structure, lifetime, and other properties of
117
118
  a cookie all in one place.
118
119
  test_files:
119
120
  - spec/base_spec.rb
121
+ - spec/cookie_registry_spec.rb