cookie 0.1.0 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: d807d8e6329ea73675befe23c95a0b09f204953edde1625b533364160dbb68c7
4
- data.tar.gz: a79bc4707c136f53c982cad64d6b373985b21c6dd14f3b52f37c29432633a380
3
+ metadata.gz: fe7d568d91c50070c8a024724af3820d180005809b7ed2d6882df6077cab23be
4
+ data.tar.gz: c6c3871e384141147dd00effd66eb5ed3f713b37d1fbfcfaf63d49e27949cfb6
5
5
  SHA512:
6
- metadata.gz: 746c83ce36bacca9bcec3ca11673a975e48bbc25f0e55a916cc2a79dce557abe3a68a43982de0f381495574088f6ff2cdd666ffc1562f410904183382c662590
7
- data.tar.gz: 859f53469a94db9f34a04b6d9171e1e9a3aed95b1271487cf1353be6de3d8e707dc4c08731f5f6231757598824ba5a2a2539db054324cfc3cb973e1a660e4366
6
+ metadata.gz: 5edb7bd4b49d679d0716499964653d11272d46109e03c649e6340cd60800cf0b8606ce8d1ae2154ecc349c43180c36dfc27848f47afec47e9a73f2dc720a94de
7
+ data.tar.gz: 864c8df0448b00ebd51392594abb89d424d1846eea35048e286c84ae22375be6a125050f135b9a430aee57fe8b6929798efb2a6f0b8948185bbfca2e79715114
data/CHANGELOG.md CHANGED
@@ -1,5 +1,10 @@
1
1
  ## [Unreleased]
2
2
 
3
+ ## [0.2.0] - 2025-02-12
4
+
5
+ - Added login functionality
6
+ - Added orders resource
7
+
3
8
  ## [0.1.0] - 2025-02-08
4
9
 
5
10
  - Initial release
data/Rakefile CHANGED
@@ -6,5 +6,11 @@ require "rspec/core/rake_task"
6
6
  RSpec::Core::RakeTask.new(:spec)
7
7
 
8
8
  require "standard/rake"
9
+ require "steep/cli"
9
10
 
10
- task default: %i[spec standard]
11
+ desc "Run type checks"
12
+ task :steep do
13
+ sh "steep check"
14
+ end
15
+
16
+ task default: %i[standard steep spec]
data/Steepfile ADDED
@@ -0,0 +1,10 @@
1
+ D = Steep::Diagnostic
2
+
3
+ target :lib do
4
+ signature "sig"
5
+ check "lib"
6
+
7
+ library "json"
8
+
9
+ configure_code_diagnostics(D::Ruby.strict)
10
+ end
@@ -0,0 +1,79 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "json"
4
+ require "faraday"
5
+
6
+ module Cookie
7
+ # Client for interacting with the Digital Cookie API
8
+ #
9
+ # @example Authenticate and create a new client
10
+ # client = Cookie::Client.authenticate(
11
+ # username: "user@example.com",
12
+ # credential: "password123"
13
+ # )
14
+ #
15
+ # @example Create a client with an existing token
16
+ # client = Cookie::Client.new(api_key: "existing_token")
17
+ class Client
18
+ BASE_URL = "https://apimobile.digitalcookie.girlscouts.org/mobileapp/api"
19
+
20
+ # @return [Symbol] The Faraday adapter being used
21
+ attr_reader :adapter
22
+
23
+ # Authenticate with username and password to create a new client
24
+ #
25
+ # @param username [String] Email address for authentication
26
+ # @param credential [String] Password for authentication
27
+ # @return [Client] Authenticated client instance
28
+ # @raise [UnauthorizedError] When credentials are invalid
29
+ # @raise [ApiError] When the API request fails
30
+ def self.authenticate(username:, credential:)
31
+ client = new
32
+ response = client.login.authenticate(username: username, credential: credential)
33
+ client.setup_authorization(response.token)
34
+ client
35
+ end
36
+
37
+ # Initialize a new API client
38
+ #
39
+ # @param api_key [String, nil] Bearer token for authentication
40
+ # @param adapter [Symbol] The Faraday adapter to use
41
+ # @return [Client] A new client instance
42
+ def initialize(api_key: nil, adapter: Faraday.default_adapter)
43
+ @api_key = api_key
44
+ @adapter = adapter
45
+ end
46
+
47
+ # Set up authorization with a bearer token
48
+ #
49
+ # @param token [String] Bearer token for authentication
50
+ # @return [void]
51
+ def setup_authorization(token)
52
+ @api_key = token
53
+
54
+ # Reset the connection so it's rebuilt with the new token
55
+ @connection = nil
56
+ end
57
+
58
+ # @return [Faraday::Connection] The configured HTTP client
59
+ def connection
60
+ @connection ||= Faraday.new(url: BASE_URL) do |faraday|
61
+ faraday.request :json
62
+ faraday.response :json
63
+ faraday.adapter adapter
64
+ faraday.headers["Authorization"] = "Bearer #{@api_key}" if @api_key
65
+ faraday.headers["Content-Type"] = "application/json"
66
+ end
67
+ end
68
+
69
+ # @return [Resources::Login] The login resource
70
+ def login
71
+ @login ||= Resources::Login.new(self)
72
+ end
73
+
74
+ # @return [Resources::Orders] The orders resource
75
+ def orders
76
+ @orders ||= Resources::Orders.new(self)
77
+ end
78
+ end
79
+ end
@@ -0,0 +1,40 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Cookie
4
+ module Models
5
+ # Base class for API responses that provides error checking capabilities
6
+ #
7
+ # @abstract Subclass and add attributes specific to the endpoint
8
+ class BaseResponse
9
+ # @return [String] The type of response from the API
10
+ attr_reader :type
11
+
12
+ # @return [String, nil] Error code if present
13
+ attr_reader :error_code
14
+
15
+ # @return [String, nil] Error message if present
16
+ attr_reader :error_message
17
+
18
+ # @return [Boolean] Whether the session is expired
19
+ attr_reader :expired
20
+
21
+ # @param attributes [Hash] Raw response attributes from the API
22
+ def initialize(attributes)
23
+ @type = attributes["type"]
24
+ @error_code = attributes["errorCode"]
25
+ @error_message = attributes["errorMessage"]
26
+ @expired = attributes["expired"] || false
27
+ end
28
+
29
+ # @return [Boolean] Whether the response contains an error
30
+ def error?
31
+ !!(error_code && !error_code.empty?)
32
+ end
33
+
34
+ # @return [Boolean] Whether the error is an authentication error
35
+ def authentication_error?
36
+ error? && error_code == "500"
37
+ end
38
+ end
39
+ end
40
+ end
@@ -0,0 +1,26 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Cookie
4
+ module Models
5
+ # Response from the login endpoint containing authentication details
6
+ #
7
+ # @example
8
+ # response = login.authenticate(username: "user@example.com", credential: "password")
9
+ # puts response.token # => "abc123"
10
+ # puts response.expired_in # => 43050
11
+ class LoginResponse < BaseResponse
12
+ # @return [String] The authentication token for API requests
13
+ attr_reader :token
14
+
15
+ # @return [Integer] Time in seconds until the token expires
16
+ attr_reader :expired_in
17
+
18
+ # @param attributes [Hash] Raw response attributes from the API
19
+ def initialize(attributes)
20
+ super
21
+ @token = attributes["token"]
22
+ @expired_in = attributes["expiredIn"]
23
+ end
24
+ end
25
+ end
26
+ end
@@ -0,0 +1,64 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Cookie
4
+ module Models
5
+ # Response containing order information and details
6
+ #
7
+ # @example
8
+ # orders = client.orders.get_hand_delivery("12345")
9
+ # puts orders.total_order_count # => 119
10
+ # puts orders.orders.first.order_number # => "132747574"
11
+ class OrderResponse < BaseResponse
12
+ attr_reader :can_view_details, :total_order_count, :orders
13
+
14
+ def initialize(attributes)
15
+ super
16
+ @can_view_details = attributes["canViewDetails"]
17
+ @total_order_count = attributes["totalOrderCount"]
18
+ @orders = (attributes["orders"] || []).map { |order| Order.new(order) }
19
+ end
20
+
21
+ # Individual order details including purchase and payment information
22
+ #
23
+ # @example
24
+ # order = orders.orders.first
25
+ # puts order.order_number # => "132747574"
26
+ # puts order.number_purchased # => 2
27
+ class Order
28
+ attr_reader :date_actioned, :number_purchased, :order_number,
29
+ :order_time_display, :payment_address, :sales_application
30
+
31
+ def initialize(attributes)
32
+ @date_actioned = attributes["dateActioned"]
33
+ @number_purchased = attributes["numberPurchased"]
34
+ @order_number = attributes["orderNumber"]
35
+ @order_time_display = attributes["orderTimeDisplay"]
36
+ @payment_address = PaymentAddress.new(attributes["paymentAddress"])
37
+ @sales_application = attributes["salesApplication"]
38
+ end
39
+
40
+ # Payment and shipping address details for an order
41
+ #
42
+ # @example
43
+ # address = order.payment_address
44
+ # puts address.email # => "user@example.com"
45
+ class PaymentAddress
46
+ attr_reader :address_line1, :address_line2, :address_line3, :email,
47
+ :first_name, :last_name, :phone_number, :town, :zip_code
48
+
49
+ def initialize(attributes)
50
+ @address_line1 = attributes["addressLine1"]
51
+ @address_line2 = attributes["addressLine2"]
52
+ @address_line3 = attributes["addressLine3"]
53
+ @email = attributes["email"]
54
+ @first_name = attributes["firstName"]
55
+ @last_name = attributes["lastName"]
56
+ @phone_number = attributes["phoneNumber"]
57
+ @town = attributes["town"]
58
+ @zip_code = attributes["zipCode"]
59
+ end
60
+ end
61
+ end
62
+ end
63
+ end
64
+ end
@@ -0,0 +1,71 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "json"
4
+
5
+ module Cookie
6
+ module Resources
7
+ # Handles authentication with the Digital Cookie API
8
+ #
9
+ # @example
10
+ # client = Cookie::Client.new(api_key: "your_key")
11
+ # response = client.login.authenticate(
12
+ # username: "user@example.com",
13
+ # credential: "password123"
14
+ # )
15
+ # puts response.token
16
+ #
17
+ # @api public
18
+ class Login
19
+ # @return [Cookie::Client] The configured API client
20
+ attr_reader :client
21
+
22
+ # Initialize a new login resource
23
+ #
24
+ # @param client [Cookie::Client] The configured API client
25
+ # @return [Login] A new instance of Login
26
+ def initialize(client)
27
+ @client = client
28
+ end
29
+
30
+ # Authenticate with the Digital Cookie API
31
+ #
32
+ # @param username [String] The user's email address
33
+ # @param credential [String] The user's password
34
+ # @return [Models::LoginResponse] The response containing authentication tokens
35
+ #
36
+ # @example
37
+ # login.authenticate(
38
+ # username: "user@example.com",
39
+ # credential: "password123"
40
+ # )
41
+ def authenticate(username:, credential:)
42
+ response = @client.connection.post(
43
+ "login",
44
+ build_request_body(username, credential)
45
+ )
46
+
47
+ login_response = Models::LoginResponse.new(response.body)
48
+
49
+ if login_response.authentication_error?
50
+ raise UnauthorizedError, login_response.error_message
51
+ elsif login_response.error?
52
+ raise ApiError, login_response.error_message
53
+ end
54
+
55
+ login_response
56
+ rescue Faraday::Error => e
57
+ raise ApiError, "Request failed: #{e.message}"
58
+ end
59
+
60
+ private
61
+
62
+ def build_request_body(username, credential)
63
+ JSON.generate({
64
+ uid: username,
65
+ credential: credential,
66
+ client: "gsa_mobile_iOS"
67
+ })
68
+ end
69
+ end
70
+ end
71
+ end
@@ -0,0 +1,34 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Cookie
4
+ module Resources
5
+ # Handles order-related operations with the Digital Cookie API
6
+ #
7
+ # @example
8
+ # client = Cookie::Client.new(api_key: "your_key")
9
+ # orders = client.orders.get_hand_delivery("12345")
10
+ # puts orders.total_order_count
11
+ #
12
+ # @api public
13
+ class Orders
14
+ attr_reader :client
15
+
16
+ def initialize(client)
17
+ @client = client
18
+ end
19
+
20
+ def get_hand_delivery(troop_id)
21
+ response = @client.connection.get("getAllOrders/hand-delivery/#{troop_id}")
22
+ order_response = Models::OrderResponse.new(response.body)
23
+
24
+ if order_response.error?
25
+ raise ApiError, order_response.error_message
26
+ end
27
+
28
+ order_response
29
+ rescue Faraday::Error => e
30
+ raise ApiError, "Request failed: #{e.message}"
31
+ end
32
+ end
33
+ end
34
+ end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Cookie
4
- VERSION = "0.1.0"
4
+ VERSION = "0.2.0"
5
5
  end
data/lib/cookie.rb CHANGED
@@ -1,8 +1,19 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ require_relative "cookie/client"
4
+ require_relative "cookie/models/base_response"
5
+ require_relative "cookie/models/login_response"
6
+ require_relative "cookie/models/order_response"
7
+ require_relative "cookie/resources/login"
8
+ require_relative "cookie/resources/orders"
3
9
  require_relative "cookie/version"
4
10
 
5
11
  module Cookie
6
12
  class Error < StandardError; end
7
- # Your code goes here...
13
+
14
+ class UnauthorizedError < Error; end
15
+
16
+ class AuthenticationError < Error; end
17
+
18
+ class ApiError < Error; end
8
19
  end
@@ -0,0 +1,32 @@
1
+ module Cookie
2
+ class Error < StandardError
3
+ end
4
+
5
+ class UnauthorizedError < Error
6
+ end
7
+
8
+ class AuthenticationError < Error
9
+ end
10
+
11
+ class ApiError < Error
12
+ end
13
+
14
+ class Client
15
+ BASE_URL: String
16
+
17
+ @api_key: String?
18
+ @connection: Faraday::Connection?
19
+ @login: Resources::Login?
20
+ @orders: Resources::Orders?
21
+
22
+ attr_reader adapter: Symbol
23
+
24
+ def self.authenticate: (username: String, credential: String) -> Client
25
+ def initialize: (?api_key: String?, ?adapter: Symbol) -> void
26
+ def setup_authorization: (String) -> void
27
+ def connection: () -> Faraday::Connection
28
+
29
+ def login: () -> Resources::Login
30
+ def orders: () -> Resources::Orders
31
+ end
32
+ end
@@ -0,0 +1,14 @@
1
+ module Cookie
2
+ module Models
3
+ class BaseResponse
4
+ attr_reader type: String
5
+ attr_reader error_code: String?
6
+ attr_reader error_message: String?
7
+ attr_reader expired: bool
8
+
9
+ def initialize: (Hash[String, untyped] attributes) -> void
10
+ def error?: -> bool
11
+ def authentication_error?: -> bool
12
+ end
13
+ end
14
+ end
@@ -0,0 +1,10 @@
1
+ module Cookie
2
+ module Models
3
+ class LoginResponse < BaseResponse
4
+ attr_reader token: String
5
+ attr_reader expired_in: Integer?
6
+
7
+ def initialize: (Hash[String, untyped]) -> void
8
+ end
9
+ end
10
+ end
@@ -0,0 +1,36 @@
1
+ module Cookie
2
+ module Models
3
+ class OrderResponse < BaseResponse
4
+ attr_reader can_view_details: bool
5
+ attr_reader total_order_count: Integer
6
+ attr_reader orders: Array[Order]
7
+
8
+ def initialize: (Hash[String, untyped]) -> void
9
+
10
+ class Order
11
+ attr_reader date_actioned: String
12
+ attr_reader number_purchased: Integer
13
+ attr_reader order_number: String
14
+ attr_reader order_time_display: String
15
+ attr_reader payment_address: PaymentAddress
16
+ attr_reader sales_application: String
17
+
18
+ def initialize: (Hash[String, untyped]) -> void
19
+
20
+ class PaymentAddress
21
+ attr_reader address_line1: String
22
+ attr_reader address_line2: String
23
+ attr_reader address_line3: String
24
+ attr_reader email: String
25
+ attr_reader first_name: String
26
+ attr_reader last_name: String
27
+ attr_reader phone_number: String
28
+ attr_reader town: String
29
+ attr_reader zip_code: String
30
+
31
+ def initialize: (Hash[String, untyped]) -> void
32
+ end
33
+ end
34
+ end
35
+ end
36
+ end
@@ -0,0 +1,15 @@
1
+ module Cookie
2
+ module Resources
3
+ class Login
4
+ attr_reader client: Cookie::Client
5
+
6
+ def initialize: (Cookie::Client client) -> void
7
+
8
+ def authenticate: (username: String, credential: String) -> Models::LoginResponse
9
+
10
+ private
11
+
12
+ def build_request_body: (String username, String credential) -> String
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,10 @@
1
+ module Cookie
2
+ module Resources
3
+ class Orders
4
+ attr_reader client: Cookie::Client
5
+
6
+ def initialize: (Cookie::Client) -> void
7
+ def get_hand_delivery: (String troop_id) -> Models::OrderResponse
8
+ end
9
+ end
10
+ end
data/sig/gems.rbs ADDED
@@ -0,0 +1,22 @@
1
+ class Faraday
2
+ class Connection
3
+ def initialize: (?url: String?) ?{ (Connection) -> void } -> void
4
+ def get: (String) -> Response
5
+ def post: (String, String) -> Response
6
+ def headers: () -> Hash[String, String]
7
+ def request: (Symbol name) -> void
8
+ def response: (Symbol name) -> void
9
+ def adapter: (Symbol adapter) -> void
10
+ end
11
+
12
+ class Response
13
+ attr_reader body: Hash[String, String]
14
+ attr_reader status: Integer
15
+ end
16
+
17
+ class Error < StandardError
18
+ end
19
+
20
+ def self.new: (?url: String?) ?{ (Connection) -> void } -> Connection
21
+ def self.default_adapter: () -> Symbol
22
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cookie
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Brian Morton
@@ -9,8 +9,120 @@ authors:
9
9
  autorequire:
10
10
  bindir: exe
11
11
  cert_chain: []
12
- date: 2025-02-08 00:00:00.000000000 Z
13
- dependencies: []
12
+ date: 2025-02-12 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: faraday
16
+ requirement: !ruby/object:Gem::Requirement
17
+ requirements:
18
+ - - "~>"
19
+ - !ruby/object:Gem::Version
20
+ version: '2.12'
21
+ type: :runtime
22
+ prerelease: false
23
+ version_requirements: !ruby/object:Gem::Requirement
24
+ requirements:
25
+ - - "~>"
26
+ - !ruby/object:Gem::Version
27
+ version: '2.12'
28
+ - !ruby/object:Gem::Dependency
29
+ name: json
30
+ requirement: !ruby/object:Gem::Requirement
31
+ requirements:
32
+ - - "~>"
33
+ - !ruby/object:Gem::Version
34
+ version: '2.9'
35
+ type: :runtime
36
+ prerelease: false
37
+ version_requirements: !ruby/object:Gem::Requirement
38
+ requirements:
39
+ - - "~>"
40
+ - !ruby/object:Gem::Version
41
+ version: '2.9'
42
+ - !ruby/object:Gem::Dependency
43
+ name: rake
44
+ requirement: !ruby/object:Gem::Requirement
45
+ requirements:
46
+ - - "~>"
47
+ - !ruby/object:Gem::Version
48
+ version: '13.0'
49
+ type: :development
50
+ prerelease: false
51
+ version_requirements: !ruby/object:Gem::Requirement
52
+ requirements:
53
+ - - "~>"
54
+ - !ruby/object:Gem::Version
55
+ version: '13.0'
56
+ - !ruby/object:Gem::Dependency
57
+ name: rbs
58
+ requirement: !ruby/object:Gem::Requirement
59
+ requirements:
60
+ - - "~>"
61
+ - !ruby/object:Gem::Version
62
+ version: '3.4'
63
+ type: :development
64
+ prerelease: false
65
+ version_requirements: !ruby/object:Gem::Requirement
66
+ requirements:
67
+ - - "~>"
68
+ - !ruby/object:Gem::Version
69
+ version: '3.4'
70
+ - !ruby/object:Gem::Dependency
71
+ name: rspec
72
+ requirement: !ruby/object:Gem::Requirement
73
+ requirements:
74
+ - - "~>"
75
+ - !ruby/object:Gem::Version
76
+ version: '3.12'
77
+ type: :development
78
+ prerelease: false
79
+ version_requirements: !ruby/object:Gem::Requirement
80
+ requirements:
81
+ - - "~>"
82
+ - !ruby/object:Gem::Version
83
+ version: '3.12'
84
+ - !ruby/object:Gem::Dependency
85
+ name: standard
86
+ requirement: !ruby/object:Gem::Requirement
87
+ requirements:
88
+ - - "~>"
89
+ - !ruby/object:Gem::Version
90
+ version: '1.3'
91
+ type: :development
92
+ prerelease: false
93
+ version_requirements: !ruby/object:Gem::Requirement
94
+ requirements:
95
+ - - "~>"
96
+ - !ruby/object:Gem::Version
97
+ version: '1.3'
98
+ - !ruby/object:Gem::Dependency
99
+ name: steep
100
+ requirement: !ruby/object:Gem::Requirement
101
+ requirements:
102
+ - - "~>"
103
+ - !ruby/object:Gem::Version
104
+ version: '1.9'
105
+ type: :development
106
+ prerelease: false
107
+ version_requirements: !ruby/object:Gem::Requirement
108
+ requirements:
109
+ - - "~>"
110
+ - !ruby/object:Gem::Version
111
+ version: '1.9'
112
+ - !ruby/object:Gem::Dependency
113
+ name: webmock
114
+ requirement: !ruby/object:Gem::Requirement
115
+ requirements:
116
+ - - "~>"
117
+ - !ruby/object:Gem::Version
118
+ version: '3.25'
119
+ type: :development
120
+ prerelease: false
121
+ version_requirements: !ruby/object:Gem::Requirement
122
+ requirements:
123
+ - - "~>"
124
+ - !ruby/object:Gem::Version
125
+ version: '3.25'
14
126
  description: Digital Cookie is the official platform for managing sales of Girl Scout
15
127
  cookies. This client provides an excellent way to teach Girl Scouts about programming
16
128
  in a domain they are familiar with.
@@ -20,12 +132,6 @@ executables: []
20
132
  extensions: []
21
133
  extra_rdoc_files: []
22
134
  files:
23
- - ".idea/.gitignore"
24
- - ".idea/cookie.iml"
25
- - ".idea/git_toolbox_blame.xml"
26
- - ".idea/misc.xml"
27
- - ".idea/modules.xml"
28
- - ".idea/vcs.xml"
29
135
  - ".rspec"
30
136
  - ".standard.yml"
31
137
  - CHANGELOG.md
@@ -33,9 +139,23 @@ files:
33
139
  - LICENSE.txt
34
140
  - README.md
35
141
  - Rakefile
142
+ - Steepfile
36
143
  - lib/cookie.rb
144
+ - lib/cookie/client.rb
145
+ - lib/cookie/models/base_response.rb
146
+ - lib/cookie/models/login_response.rb
147
+ - lib/cookie/models/order_response.rb
148
+ - lib/cookie/resources/login.rb
149
+ - lib/cookie/resources/orders.rb
37
150
  - lib/cookie/version.rb
38
151
  - sig/cookie.rbs
152
+ - sig/cookie/client.rbs
153
+ - sig/cookie/models/base_response.rbs
154
+ - sig/cookie/models/login_response.rbs
155
+ - sig/cookie/models/order_response.rbs
156
+ - sig/cookie/resources/login.rbs
157
+ - sig/cookie/resources/orders.rbs
158
+ - sig/gems.rbs
39
159
  homepage: https://github.com/bmorton/cookie
40
160
  licenses:
41
161
  - MIT
data/.idea/.gitignore DELETED
@@ -1,8 +0,0 @@
1
- # Default ignored files
2
- /shelf/
3
- /workspace.xml
4
- # Editor-based HTTP Client requests
5
- /httpRequests/
6
- # Datasource local storage ignored files
7
- /dataSources/
8
- /dataSources.local.xml
data/.idea/cookie.iml DELETED
@@ -1,81 +0,0 @@
1
- <?xml version="1.0" encoding="UTF-8"?>
2
- <module type="RUBY_MODULE" version="4">
3
- <component name="ModuleRunConfigurationManager">
4
- <shared />
5
- </component>
6
- <component name="NewModuleRootManager">
7
- <content url="file://$MODULE_DIR$">
8
- <sourceFolder url="file://$MODULE_DIR$/features" isTestSource="true" />
9
- <sourceFolder url="file://$MODULE_DIR$/spec" isTestSource="true" />
10
- <sourceFolder url="file://$MODULE_DIR$/test" isTestSource="true" />
11
- </content>
12
- <orderEntry type="inheritedJdk" />
13
- <orderEntry type="sourceFolder" forTests="false" />
14
- <orderEntry type="library" scope="PROVIDED" name="ast (v2.4.2, asdf: 3.3.6) [gem]" level="application" />
15
- <orderEntry type="library" scope="PROVIDED" name="bundler (v2.5.22, asdf: 3.3.6) [gem]" level="application" />
16
- <orderEntry type="library" scope="PROVIDED" name="diff-lcs (v1.5.1, asdf: 3.3.6) [gem]" level="application" />
17
- <orderEntry type="library" scope="PROVIDED" name="json (v2.9.1, asdf: 3.3.6) [gem]" level="application" />
18
- <orderEntry type="library" scope="PROVIDED" name="language_server-protocol (v3.17.0.4, asdf: 3.3.6) [gem]" level="application" />
19
- <orderEntry type="library" scope="PROVIDED" name="lint_roller (v1.1.0, asdf: 3.3.6) [gem]" level="application" />
20
- <orderEntry type="library" scope="PROVIDED" name="parallel (v1.26.3, asdf: 3.3.6) [gem]" level="application" />
21
- <orderEntry type="library" scope="PROVIDED" name="parser (v3.3.7.1, asdf: 3.3.6) [gem]" level="application" />
22
- <orderEntry type="library" scope="PROVIDED" name="racc (v1.8.1, asdf: 3.3.6) [gem]" level="application" />
23
- <orderEntry type="library" scope="PROVIDED" name="rainbow (v3.1.1, asdf: 3.3.6) [gem]" level="application" />
24
- <orderEntry type="library" scope="PROVIDED" name="rake (v13.2.1, asdf: 3.3.6) [gem]" level="application" />
25
- <orderEntry type="library" scope="PROVIDED" name="regexp_parser (v2.10.0, asdf: 3.3.6) [gem]" level="application" />
26
- <orderEntry type="library" scope="PROVIDED" name="rspec (v3.13.0, asdf: 3.3.6) [gem]" level="application" />
27
- <orderEntry type="library" scope="PROVIDED" name="rspec-core (v3.13.3, asdf: 3.3.6) [gem]" level="application" />
28
- <orderEntry type="library" scope="PROVIDED" name="rspec-expectations (v3.13.3, asdf: 3.3.6) [gem]" level="application" />
29
- <orderEntry type="library" scope="PROVIDED" name="rspec-mocks (v3.13.2, asdf: 3.3.6) [gem]" level="application" />
30
- <orderEntry type="library" scope="PROVIDED" name="rspec-support (v3.13.2, asdf: 3.3.6) [gem]" level="application" />
31
- <orderEntry type="library" scope="PROVIDED" name="rubocop (v1.70.0, asdf: 3.3.6) [gem]" level="application" />
32
- <orderEntry type="library" scope="PROVIDED" name="rubocop-ast (v1.38.0, asdf: 3.3.6) [gem]" level="application" />
33
- <orderEntry type="library" scope="PROVIDED" name="rubocop-performance (v1.23.1, asdf: 3.3.6) [gem]" level="application" />
34
- <orderEntry type="library" scope="PROVIDED" name="ruby-progressbar (v1.13.0, asdf: 3.3.6) [gem]" level="application" />
35
- <orderEntry type="library" scope="PROVIDED" name="standard (v1.44.0, asdf: 3.3.6) [gem]" level="application" />
36
- <orderEntry type="library" scope="PROVIDED" name="standard-custom (v1.0.2, asdf: 3.3.6) [gem]" level="application" />
37
- <orderEntry type="library" scope="PROVIDED" name="standard-performance (v1.6.0, asdf: 3.3.6) [gem]" level="application" />
38
- <orderEntry type="library" scope="PROVIDED" name="unicode-display_width (v3.1.4, asdf: 3.3.6) [gem]" level="application" />
39
- <orderEntry type="library" scope="PROVIDED" name="unicode-emoji (v4.0.4, asdf: 3.3.6) [gem]" level="application" />
40
- </component>
41
- <component name="RakeTasksCache-v2">
42
- <option name="myRootTask">
43
- <RakeTaskImpl id="rake">
44
- <subtasks>
45
- <RakeTaskImpl description="Build cookie-0.1.0.gem into the pkg directory" fullCommand="build" id="build" />
46
- <RakeTaskImpl id="build">
47
- <subtasks>
48
- <RakeTaskImpl description="Generate SHA512 checksum of cookie-0.1.0.gem into the checksums directory" fullCommand="build:checksum" id="checksum" />
49
- </subtasks>
50
- </RakeTaskImpl>
51
- <RakeTaskImpl description="Remove any temporary products" fullCommand="clean" id="clean" />
52
- <RakeTaskImpl description="Remove any generated files" fullCommand="clobber" id="clobber" />
53
- <RakeTaskImpl description="Build and install cookie-0.1.0.gem into system gems" fullCommand="install" id="install" />
54
- <RakeTaskImpl id="install">
55
- <subtasks>
56
- <RakeTaskImpl description="Build and install cookie-0.1.0.gem into system gems without network access" fullCommand="install:local" id="local" />
57
- </subtasks>
58
- </RakeTaskImpl>
59
- <RakeTaskImpl description="Create tag v0.1.0 and build and push cookie-0.1.0.gem to TODO: Set to your gem server 'https://example.com'" fullCommand="release[remote]" id="release[remote]" />
60
- <RakeTaskImpl description="Run RSpec code examples" fullCommand="spec" id="spec" />
61
- <RakeTaskImpl description="Lint with the Standard Ruby style guide" fullCommand="standard" id="standard" />
62
- <RakeTaskImpl id="standard">
63
- <subtasks>
64
- <RakeTaskImpl description="Lint and automatically make safe fixes with the Standard Ruby style guide" fullCommand="standard:fix" id="fix" />
65
- <RakeTaskImpl description="Lint and automatically make fixes (even unsafe ones" fullCommand="standard:fix_unsafely" id="fix_unsafely" />
66
- </subtasks>
67
- </RakeTaskImpl>
68
- <RakeTaskImpl description="" fullCommand="default" id="default" />
69
- <RakeTaskImpl description="" fullCommand="release" id="release" />
70
- <RakeTaskImpl id="release">
71
- <subtasks>
72
- <RakeTaskImpl description="" fullCommand="release:guard_clean" id="guard_clean" />
73
- <RakeTaskImpl description="" fullCommand="release:rubygem_push" id="rubygem_push" />
74
- <RakeTaskImpl description="" fullCommand="release:source_control_push" id="source_control_push" />
75
- </subtasks>
76
- </RakeTaskImpl>
77
- </subtasks>
78
- </RakeTaskImpl>
79
- </option>
80
- </component>
81
- </module>
@@ -1,6 +0,0 @@
1
- <?xml version="1.0" encoding="UTF-8"?>
2
- <project version="4">
3
- <component name="GitToolBoxBlameSettings">
4
- <option name="version" value="2" />
5
- </component>
6
- </project>
data/.idea/misc.xml DELETED
@@ -1,4 +0,0 @@
1
- <?xml version="1.0" encoding="UTF-8"?>
2
- <project version="4">
3
- <component name="ProjectRootManager" version="2" project-jdk-name="asdf: 3.3.6" project-jdk-type="RUBY_SDK" />
4
- </project>
data/.idea/modules.xml DELETED
@@ -1,8 +0,0 @@
1
- <?xml version="1.0" encoding="UTF-8"?>
2
- <project version="4">
3
- <component name="ProjectModuleManager">
4
- <modules>
5
- <module fileurl="file://$PROJECT_DIR$/.idea/cookie.iml" filepath="$PROJECT_DIR$/.idea/cookie.iml" />
6
- </modules>
7
- </component>
8
- </project>
data/.idea/vcs.xml DELETED
@@ -1,6 +0,0 @@
1
- <?xml version="1.0" encoding="UTF-8"?>
2
- <project version="4">
3
- <component name="VcsDirectoryMappings">
4
- <mapping directory="" vcs="Git" />
5
- </component>
6
- </project>