evernote 0.1.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.
@@ -0,0 +1,5 @@
1
+ README.rdoc
2
+ lib/**/*.rb
3
+ bin/*
4
+ features/**/*.feature
5
+ LICENSE
@@ -0,0 +1,5 @@
1
+ *.sw?
2
+ .DS_Store
3
+ coverage
4
+ rdoc
5
+ pkg
data/LICENSE ADDED
@@ -0,0 +1,20 @@
1
+ Copyright (c) 2009 Chris Sepic
2
+
3
+ Permission is hereby granted, free of charge, to any person obtaining
4
+ a copy of this software and associated documentation files (the
5
+ "Software"), to deal in the Software without restriction, including
6
+ without limitation the rights to use, copy, modify, merge, publish,
7
+ distribute, sublicense, and/or sell copies of the Software, and to
8
+ permit persons to whom the Software is furnished to do so, subject to
9
+ the following conditions:
10
+
11
+ The above copyright notice and this permission notice shall be
12
+ included in all copies or substantial portions of the Software.
13
+
14
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
15
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
16
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
17
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
18
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
19
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
20
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
@@ -0,0 +1,10 @@
1
+ # evernote #
2
+ This gem is a high level wrapper around Evernote's Thrift-generated ruby code. It currently just bundles up Evernote's thrift-generated code. After installing, just require the gem in your project:
3
+
4
+ require 'evernote'
5
+
6
+ # future releases #
7
+ This gem will eventually provide a cleaner API around the generated code, so you don't feel like you're writing Java.
8
+
9
+ ## Copyright ##
10
+ Copyright (c) 2010 Chris Sepic. See LICENSE for details.
@@ -0,0 +1,46 @@
1
+ require 'rubygems'
2
+ require 'rake'
3
+
4
+ begin
5
+ require 'jeweler'
6
+ Jeweler::Tasks.new do |gem|
7
+ gem.name = "evernote"
8
+ gem.summary = %Q{High level wrapper for the Evernote API}
9
+ gem.email = "chris.sepic@gmail.com"
10
+ gem.homepage = "http://github.com/cgs/evernote"
11
+ gem.authors = ["Chris Sepic"]
12
+ gem.files.include %w{vendor/**/*}
13
+ gem.add_dependency("thrift_client")
14
+ gem.add_development_dependency "rspec"
15
+ gem.add_development_dependency "yard"
16
+ # gem is a Gem::Specification... see http://www.rubygems.org/read/chapter/20 for additional settings
17
+ end
18
+ Jeweler::GemcutterTasks.new
19
+ rescue LoadError
20
+ puts "Jeweler (or a dependency) not available. Install it with: sudo gem install jeweler"
21
+ end
22
+
23
+ require 'spec/rake/spectask'
24
+ Spec::Rake::SpecTask.new(:spec) do |spec|
25
+ spec.libs << 'lib' << 'spec'
26
+ spec.spec_files = FileList['spec/**/*_spec.rb']
27
+ end
28
+
29
+ Spec::Rake::SpecTask.new(:rcov) do |spec|
30
+ spec.libs << 'lib' << 'spec'
31
+ spec.pattern = 'spec/**/*_spec.rb'
32
+ spec.rcov = true
33
+ end
34
+
35
+ task :spec => :check_dependencies
36
+
37
+ task :default => :spec
38
+
39
+ begin
40
+ require 'yard'
41
+ YARD::Rake::YardocTask.new
42
+ rescue LoadError
43
+ task :yardoc do
44
+ abort "YARD is not available. In order to run yardoc, you must: sudo gem install yard"
45
+ end
46
+ end
data/VERSION ADDED
@@ -0,0 +1 @@
1
+ 0.1.0
@@ -0,0 +1,83 @@
1
+ # Generated by jeweler
2
+ # DO NOT EDIT THIS FILE
3
+ # Instead, edit Jeweler::Tasks in Rakefile, and run `rake gemspec`
4
+ # -*- encoding: utf-8 -*-
5
+
6
+ Gem::Specification.new do |s|
7
+ s.name = %q{evernote}
8
+ s.version = "0.1.0"
9
+
10
+ s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
+ s.authors = ["Chris Sepic"]
12
+ s.date = %q{2010-01-30}
13
+ s.email = %q{chris.sepic@gmail.com}
14
+ s.extra_rdoc_files = [
15
+ "LICENSE",
16
+ "README.mkd"
17
+ ]
18
+ s.files = [
19
+ ".document",
20
+ ".gitignore",
21
+ "LICENSE",
22
+ "README.mkd",
23
+ "Rakefile",
24
+ "VERSION",
25
+ "evernote.gemspec",
26
+ "lib/evernote.rb",
27
+ "spec/evernote_spec.rb",
28
+ "spec/spec.opts",
29
+ "spec/spec_helper.rb",
30
+ "vendor/gen-rb/evernote.rb",
31
+ "vendor/gen-rb/evernote.rb",
32
+ "vendor/gen-rb/evernote/edam/errors_types.rb",
33
+ "vendor/gen-rb/evernote/edam/errors_types.rb",
34
+ "vendor/gen-rb/evernote/edam/limits_constants.rb",
35
+ "vendor/gen-rb/evernote/edam/limits_constants.rb",
36
+ "vendor/gen-rb/evernote/edam/limits_types.rb",
37
+ "vendor/gen-rb/evernote/edam/limits_types.rb",
38
+ "vendor/gen-rb/evernote/edam/note_store.rb",
39
+ "vendor/gen-rb/evernote/edam/note_store.rb",
40
+ "vendor/gen-rb/evernote/edam/note_store_constants.rb",
41
+ "vendor/gen-rb/evernote/edam/note_store_constants.rb",
42
+ "vendor/gen-rb/evernote/edam/note_store_types.rb",
43
+ "vendor/gen-rb/evernote/edam/note_store_types.rb",
44
+ "vendor/gen-rb/evernote/edam/types_constants.rb",
45
+ "vendor/gen-rb/evernote/edam/types_constants.rb",
46
+ "vendor/gen-rb/evernote/edam/types_types.rb",
47
+ "vendor/gen-rb/evernote/edam/types_types.rb",
48
+ "vendor/gen-rb/evernote/edam/user_store.rb",
49
+ "vendor/gen-rb/evernote/edam/user_store.rb",
50
+ "vendor/gen-rb/evernote/edam/user_store_constants.rb",
51
+ "vendor/gen-rb/evernote/edam/user_store_constants.rb",
52
+ "vendor/gen-rb/evernote/edam/user_store_types.rb",
53
+ "vendor/gen-rb/evernote/edam/user_store_types.rb"
54
+ ]
55
+ s.homepage = %q{http://github.com/cgs/evernote}
56
+ s.rdoc_options = ["--charset=UTF-8"]
57
+ s.require_paths = ["lib"]
58
+ s.rubygems_version = %q{1.3.5}
59
+ s.summary = %q{High level wrapper for the Evernote API}
60
+ s.test_files = [
61
+ "spec/evernote_spec.rb",
62
+ "spec/spec_helper.rb"
63
+ ]
64
+
65
+ if s.respond_to? :specification_version then
66
+ current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
67
+ s.specification_version = 3
68
+
69
+ if Gem::Version.new(Gem::RubyGemsVersion) >= Gem::Version.new('1.2.0') then
70
+ s.add_runtime_dependency(%q<thrift_client>, [">= 0"])
71
+ s.add_development_dependency(%q<rspec>, [">= 0"])
72
+ s.add_development_dependency(%q<yard>, [">= 0"])
73
+ else
74
+ s.add_dependency(%q<thrift_client>, [">= 0"])
75
+ s.add_dependency(%q<rspec>, [">= 0"])
76
+ s.add_dependency(%q<yard>, [">= 0"])
77
+ end
78
+ else
79
+ s.add_dependency(%q<thrift_client>, [">= 0"])
80
+ s.add_dependency(%q<rspec>, [">= 0"])
81
+ s.add_dependency(%q<yard>, [">= 0"])
82
+ end
83
+ end
@@ -0,0 +1,7 @@
1
+ require 'rubygems'
2
+ require 'thrift_client'
3
+
4
+ gen_rb_path = File.expand_path(File.dirname(__FILE__) + "/../vendor/gen-rb")
5
+ $LOAD_PATH.unshift gen_rb_path
6
+ $LOAD_PATH.unshift "#{gen_rb_path}/evernote/edam"
7
+ require "#{gen_rb_path}/evernote"
@@ -0,0 +1,7 @@
1
+ require File.expand_path(File.dirname(__FILE__) + '/spec_helper')
2
+
3
+ describe "Evernote" do
4
+ it "fails" do
5
+ fail "hey buddy, you should probably rename this file and start specing for real"
6
+ end
7
+ end
@@ -0,0 +1,2 @@
1
+ --colour
2
+ --diff
@@ -0,0 +1,9 @@
1
+ $LOAD_PATH.unshift(File.dirname(__FILE__))
2
+ $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
3
+ require 'evernote'
4
+ require 'spec'
5
+ require 'spec/autorun'
6
+
7
+ Spec::Runner.configure do |config|
8
+
9
+ end
@@ -0,0 +1,12 @@
1
+ require 'set'
2
+ require 'errors_types'
3
+ require 'limits_constants'
4
+ require 'limits_types'
5
+ require 'note_store'
6
+ require 'note_store_constants'
7
+ require 'note_store_types'
8
+ require 'types_constants'
9
+ require 'types_types'
10
+ require 'user_store'
11
+ require 'user_store_constants'
12
+ require 'user_store_types'
@@ -0,0 +1,123 @@
1
+ #
2
+ # Autogenerated by Thrift
3
+ #
4
+ # DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
5
+ #
6
+
7
+
8
+ module Evernote
9
+ module EDAM
10
+ module Error
11
+ module EDAMErrorCode
12
+ UNKNOWN = 1
13
+ BAD_DATA_FORMAT = 2
14
+ PERMISSION_DENIED = 3
15
+ INTERNAL_ERROR = 4
16
+ DATA_REQUIRED = 5
17
+ LIMIT_REACHED = 6
18
+ QUOTA_REACHED = 7
19
+ INVALID_AUTH = 8
20
+ AUTH_EXPIRED = 9
21
+ DATA_CONFLICT = 10
22
+ ENML_VALIDATION = 11
23
+ SHARD_UNAVAILABLE = 12
24
+ VALUE_MAP = {1 => "UNKNOWN", 2 => "BAD_DATA_FORMAT", 3 => "PERMISSION_DENIED", 4 => "INTERNAL_ERROR", 5 => "DATA_REQUIRED", 6 => "LIMIT_REACHED", 7 => "QUOTA_REACHED", 8 => "INVALID_AUTH", 9 => "AUTH_EXPIRED", 10 => "DATA_CONFLICT", 11 => "ENML_VALIDATION", 12 => "SHARD_UNAVAILABLE"}
25
+ VALID_VALUES = Set.new([UNKNOWN, BAD_DATA_FORMAT, PERMISSION_DENIED, INTERNAL_ERROR, DATA_REQUIRED, LIMIT_REACHED, QUOTA_REACHED, INVALID_AUTH, AUTH_EXPIRED, DATA_CONFLICT, ENML_VALIDATION, SHARD_UNAVAILABLE]).freeze
26
+ end
27
+
28
+ # This exception is thrown by EDAM procedures when a call fails as a result of
29
+ # a problem that a user may be able to resolve. For example, if the user
30
+ # attempts to add a note to their account which would exceed their storage
31
+ # quota, this type of exception may be thrown to indicate the source of the
32
+ # error so that they can choose an alternate action.
33
+ #
34
+ # This exception would not be used for internal system errors that do not
35
+ # reflect user actions, but rather reflect a problem within the service that
36
+ # the user cannot resolve.
37
+ #
38
+ # errorCode: The numeric code indicating the type of error that occurred.
39
+ # must be one of the values of EDAMErrorCode.
40
+ #
41
+ # parameter: If the error applied to a particular input parameter, this will
42
+ # indicate which parameter.
43
+ class EDAMUserException < ::Thrift::Exception
44
+ include ::Thrift::Struct
45
+ ERRORCODE = 1
46
+ PARAMETER = 2
47
+
48
+ ::Thrift::Struct.field_accessor self, :errorCode, :parameter
49
+ FIELDS = {
50
+ ERRORCODE => {:type => ::Thrift::Types::I32, :name => 'errorCode', :enum_class => Evernote::EDAM::Error::EDAMErrorCode},
51
+ PARAMETER => {:type => ::Thrift::Types::STRING, :name => 'parameter', :optional => true}
52
+ }
53
+
54
+ def struct_fields; FIELDS; end
55
+
56
+ def validate
57
+ raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Required field errorCode is unset!') unless @errorCode
58
+ unless @errorCode.nil? || Evernote::EDAM::Error::EDAMErrorCode::VALID_VALUES.include?(@errorCode)
59
+ raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Invalid value of field errorCode!')
60
+ end
61
+ end
62
+
63
+ end
64
+
65
+ # This exception is thrown by EDAM procedures when a call fails as a result of
66
+ # an a problem in the service that could not be changed through user action.
67
+ #
68
+ # errorCode: The numeric code indicating the type of error that occurred.
69
+ # must be one of the values of EDAMErrorCode.
70
+ #
71
+ # message: This may contain additional information about the error
72
+ class EDAMSystemException < ::Thrift::Exception
73
+ include ::Thrift::Struct
74
+ ERRORCODE = 1
75
+ MESSAGE = 2
76
+
77
+ ::Thrift::Struct.field_accessor self, :errorCode, :message
78
+ FIELDS = {
79
+ ERRORCODE => {:type => ::Thrift::Types::I32, :name => 'errorCode', :enum_class => Evernote::EDAM::Error::EDAMErrorCode},
80
+ MESSAGE => {:type => ::Thrift::Types::STRING, :name => 'message', :optional => true}
81
+ }
82
+
83
+ def struct_fields; FIELDS; end
84
+
85
+ def validate
86
+ raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Required field errorCode is unset!') unless @errorCode
87
+ unless @errorCode.nil? || Evernote::EDAM::Error::EDAMErrorCode::VALID_VALUES.include?(@errorCode)
88
+ raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Invalid value of field errorCode!')
89
+ end
90
+ end
91
+
92
+ end
93
+
94
+ # This exception is thrown by EDAM procedures when a caller asks to perform
95
+ # an operation that does not exist. This may be thrown based on an invalid
96
+ # primary identifier (e.g. a bad GUID), or when the caller refers to an object
97
+ # by another unique identifier (e.g. a User's email address).
98
+ #
99
+ # identifier: the object identifier that was not found on the server.
100
+ #
101
+ # key: the value passed from the client in the identifier, which was not
102
+ # found. E.g. the GUID of an object that was not found.
103
+ class EDAMNotFoundException < ::Thrift::Exception
104
+ include ::Thrift::Struct
105
+ IDENTIFIER = 1
106
+ KEY = 2
107
+
108
+ ::Thrift::Struct.field_accessor self, :identifier, :key
109
+ FIELDS = {
110
+ IDENTIFIER => {:type => ::Thrift::Types::STRING, :name => 'identifier', :optional => true},
111
+ KEY => {:type => ::Thrift::Types::STRING, :name => 'key', :optional => true}
112
+ }
113
+
114
+ def struct_fields; FIELDS; end
115
+
116
+ def validate
117
+ end
118
+
119
+ end
120
+
121
+ end
122
+ end
123
+ end
@@ -0,0 +1,187 @@
1
+ #
2
+ # Autogenerated by Thrift
3
+ #
4
+ # DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
5
+ #
6
+
7
+ require 'limits_types'
8
+
9
+ module Evernote
10
+ module EDAM
11
+ module Limits
12
+ EDAM_ATTRIBUTE_LEN_MIN = 1
13
+
14
+ EDAM_ATTRIBUTE_LEN_MAX = 4096
15
+
16
+ EDAM_ATTRIBUTE_REGEX = %q"^[^\\p{Cc}\\p{Zl}\\p{Zp}]{1,4096}$"
17
+
18
+ EDAM_ATTRIBUTE_LIST_MAX = 100
19
+
20
+ EDAM_GUID_LEN_MIN = 36
21
+
22
+ EDAM_GUID_LEN_MAX = 36
23
+
24
+ EDAM_GUID_REGEX = %q"^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
25
+
26
+ EDAM_EMAIL_LEN_MIN = 6
27
+
28
+ EDAM_EMAIL_LEN_MAX = 255
29
+
30
+ EDAM_EMAIL_LOCAL_REGEX = %q"^[A-Za-z0-9!#$%&'*+/=?^_`{|}~-]+(\\.[A-Za-z0-9!#$%&'*+/=?^_`{|}~-]+)*$"
31
+
32
+ EDAM_EMAIL_DOMAIN_REGEX = %q"^[A-Za-z0-9-]+(\\.[A-Za-z0-9-]+)*\\.([A-Za-z]{2,})$"
33
+
34
+ EDAM_EMAIL_REGEX = %q"^[A-Za-z0-9!#$%&'*+/=?^_`{|}~-]+(\\.[A-Za-z0-9!#$%&'*+/=?^_`{|}~-]+)*@[A-Za-z0-9-]+(\\.[A-Za-z0-9-]+)*\\.([A-Za-z]{2,})$"
35
+
36
+ EDAM_TIMEZONE_LEN_MIN = 1
37
+
38
+ EDAM_TIMEZONE_LEN_MAX = 32
39
+
40
+ EDAM_TIMEZONE_REGEX = %q"^([A-Za-z_-]+(/[A-Za-z_-]+)*)|(GMT(-|\\+)[0-9]{1,2}(:[0-9]{2})?)$"
41
+
42
+ EDAM_MIME_LEN_MIN = 3
43
+
44
+ EDAM_MIME_LEN_MAX = 255
45
+
46
+ EDAM_MIME_REGEX = %q"^[A-Za-z]+/[A-Za-z0-9._+-]+$"
47
+
48
+ EDAM_MIME_TYPE_GIF = %q"image/gif"
49
+
50
+ EDAM_MIME_TYPE_JPEG = %q"image/jpeg"
51
+
52
+ EDAM_MIME_TYPE_PNG = %q"image/png"
53
+
54
+ EDAM_MIME_TYPE_WAV = %q"audio/wav"
55
+
56
+ EDAM_MIME_TYPE_MP3 = %q"audio/mpeg"
57
+
58
+ EDAM_MIME_TYPE_AMR = %q"audio/amr"
59
+
60
+ EDAM_MIME_TYPE_INK = %q"application/vnd.evernote.ink"
61
+
62
+ EDAM_MIME_TYPE_PDF = %q"application/pdf"
63
+
64
+ EDAM_MIME_TYPE_DEFAULT = %q"application/octet-stream"
65
+
66
+ EDAM_MIME_TYPES = Set.new([
67
+ %q"image/gif",
68
+ %q"image/jpeg",
69
+ %q"image/png",
70
+ %q"audio/wav",
71
+ %q"audio/mpeg",
72
+ %q"audio/amr",
73
+ %q"application/vnd.evernote.ink",
74
+ %q"application/pdf",
75
+ ])
76
+
77
+ EDAM_COMMERCE_SERVICE_GOOGLE = %q"Google"
78
+
79
+ EDAM_COMMERCE_SERVICE_PAYPAL = %q"Paypal"
80
+
81
+ EDAM_COMMERCE_SERVICE_GIFT = %q"Gift"
82
+
83
+ EDAM_COMMERCE_SERVICE_TRIALPAY = %q"TrialPay"
84
+
85
+ EDAM_SEARCH_QUERY_LEN_MIN = 0
86
+
87
+ EDAM_SEARCH_QUERY_LEN_MAX = 1024
88
+
89
+ EDAM_SEARCH_QUERY_REGEX = %q"^[^\\p{Cc}\\p{Zl}\\p{Zp}]{0,1024}$"
90
+
91
+ EDAM_HASH_LEN = 16
92
+
93
+ EDAM_USER_USERNAME_LEN_MIN = 1
94
+
95
+ EDAM_USER_USERNAME_LEN_MAX = 64
96
+
97
+ EDAM_USER_USERNAME_REGEX = %q"^[a-z0-9]([a-z0-9_-]{0,62}[a-z0-9])?$"
98
+
99
+ EDAM_USER_NAME_LEN_MIN = 1
100
+
101
+ EDAM_USER_NAME_LEN_MAX = 255
102
+
103
+ EDAM_USER_NAME_REGEX = %q"^[^\\p{Cc}\\p{Zl}\\p{Zp}]{1,255}$"
104
+
105
+ EDAM_TAG_NAME_LEN_MIN = 1
106
+
107
+ EDAM_TAG_NAME_LEN_MAX = 100
108
+
109
+ EDAM_TAG_NAME_REGEX = %q"^[^,\\p{Cc}\\p{Z}]([^,\\p{Cc}\\p{Zl}\\p{Zp}]{0,98}[^,\\p{Cc}\\p{Z}])?$"
110
+
111
+ EDAM_NOTE_TITLE_LEN_MIN = 1
112
+
113
+ EDAM_NOTE_TITLE_LEN_MAX = 255
114
+
115
+ EDAM_NOTE_TITLE_REGEX = %q"^[^\\p{Cc}\\p{Z}]([^\\p{Cc}\\p{Zl}\\p{Zp}]{0,253}[^\\p{Cc}\\p{Z}])?$"
116
+
117
+ EDAM_NOTE_CONTENT_LEN_MIN = 0
118
+
119
+ EDAM_NOTE_CONTENT_LEN_MAX = 5242880
120
+
121
+ EDAM_NOTEBOOK_NAME_LEN_MIN = 1
122
+
123
+ EDAM_NOTEBOOK_NAME_LEN_MAX = 100
124
+
125
+ EDAM_NOTEBOOK_NAME_REGEX = %q"^[^\\p{Cc}\\p{Z}]([^\\p{Cc}\\p{Zl}\\p{Zp}]{0,98}[^\\p{Cc}\\p{Z}])?$"
126
+
127
+ EDAM_PUBLISHING_URI_LEN_MIN = 1
128
+
129
+ EDAM_PUBLISHING_URI_LEN_MAX = 255
130
+
131
+ EDAM_PUBLISHING_URI_REGEX = %q"^[a-zA-Z0-9.~_+-]{1,255}$"
132
+
133
+ EDAM_PUBLISHING_URI_PROHIBITED = Set.new([
134
+ %q"..",
135
+ ])
136
+
137
+ EDAM_PUBLISHING_DESCRIPTION_LEN_MIN = 1
138
+
139
+ EDAM_PUBLISHING_DESCRIPTION_LEN_MAX = 200
140
+
141
+ EDAM_PUBLISHING_DESCRIPTION_REGEX = %q"^[^\\p{Cc}\\p{Z}]([^\\p{Cc}\\p{Zl}\\p{Zp}]{0,198}[^\\p{Cc}\\p{Z}])?$"
142
+
143
+ EDAM_SAVED_SEARCH_NAME_LEN_MIN = 1
144
+
145
+ EDAM_SAVED_SEARCH_NAME_LEN_MAX = 100
146
+
147
+ EDAM_SAVED_SEARCH_NAME_REGEX = %q"^[^\\p{Cc}\\p{Z}]([^\\p{Cc}\\p{Zl}\\p{Zp}]{0,98}[^\\p{Cc}\\p{Z}])?$"
148
+
149
+ EDAM_USER_PASSWORD_LEN_MIN = 6
150
+
151
+ EDAM_USER_PASSWORD_LEN_MAX = 64
152
+
153
+ EDAM_USER_PASSWORD_REGEX = %q"^[A-Za-z0-9!#$%&'()*+,./:;<=>?@^_`{|}~\\[\\]\\\\-]{6,64}$"
154
+
155
+ EDAM_NOTE_TAGS_MAX = 100
156
+
157
+ EDAM_NOTE_RESOURCES_MAX = 1000
158
+
159
+ EDAM_USER_TAGS_MAX = 100000
160
+
161
+ EDAM_USER_SAVED_SEARCHES_MAX = 100
162
+
163
+ EDAM_USER_NOTES_MAX = 100000
164
+
165
+ EDAM_USER_NOTEBOOKS_MAX = 100
166
+
167
+ EDAM_USER_RECENT_MAILED_ADDRESSES_MAX = 10
168
+
169
+ EDAM_USER_MAIL_LIMIT_DAILY_FREE = 50
170
+
171
+ EDAM_USER_MAIL_LIMIT_DAILY_PREMIUM = 200
172
+
173
+ EDAM_NOTE_SIZE_MAX_FREE = 26214400
174
+
175
+ EDAM_NOTE_SIZE_MAX_PREMIUM = 52428800
176
+
177
+ EDAM_RESOURCE_SIZE_MAX_FREE = 26214400
178
+
179
+ EDAM_RESOURCE_SIZE_MAX_PREMIUM = 52428800
180
+
181
+ EDAM_USER_LINKED_NOTEBOOK_MAX = 100
182
+
183
+ EDAM_NOTEBOOK_SHARED_NOTEBOOK_MAX = 100
184
+
185
+ end
186
+ end
187
+ end