Module: Sequel
- Extended by:
- SQL::Builders, SQL::OperatorBuilders, ThreadLocalTimezones
- Includes:
- SQL::Constants
- Defined in:
- lib/sequel/extensions/pg_range.rb,
lib/sequel/sql.rb,
lib/sequel/model.rb,
lib/sequel/version.rb,
lib/sequel/timezones.rb,
lib/sequel/model/base.rb,
lib/sequel/model/errors.rb,
lib/sequel/plugins/enum.rb,
lib/sequel/plugins/list.rb,
lib/sequel/plugins/tree.rb,
lib/sequel/plugins/uuid.rb,
lib/sequel/model/plugins.rb,
lib/sequel/plugins/dirty.rb,
lib/sequel/plugins/touch.rb,
lib/sequel/plugins/finder.rb,
lib/sequel/plugins/pg_row.rb,
lib/sequel/plugins/caching.rb,
lib/sequel/extensions/query.rb,
lib/sequel/model/exceptions.rb,
lib/sequel/plugins/sharding.rb,
lib/sequel/extensions/pg_row.rb,
lib/sequel/extensions/to_dot.rb,
lib/sequel/model/inflections.rb,
lib/sequel/plugins/rcte_tree.rb,
lib/sequel/extensions/pg_json.rb,
lib/sequel/model/associations.rb,
lib/sequel/plugins/eager_each.rb,
lib/sequel/plugins/inspect_pk.rb,
lib/sequel/plugins/subclasses.rb,
lib/sequel/plugins/timestamps.rb,
lib/sequel/plugins/composition.rb,
lib/sequel/model/dataset_module.rb,
lib/sequel/plugins/active_model.rb,
lib/sequel/plugins/split_values.rb,
lib/sequel/plugins/sql_comments.rb,
lib/sequel/plugins/static_cache.rb,
lib/sequel/plugins/table_select.rb,
lib/sequel/extensions/pg_row_ops.rb,
lib/sequel/extensions/provenance.rb,
lib/sequel/extensions/string_agg.rb,
lib/sequel/plugins/column_select.rb,
lib/sequel/plugins/serialization.rb,
lib/sequel/extensions/pg_inet_ops.rb,
lib/sequel/extensions/pg_interval.rb,
lib/sequel/extensions/pg_json_ops.rb,
lib/sequel/plugins/csv_serializer.rb,
lib/sequel/plugins/error_splitter.rb,
lib/sequel/plugins/force_encoding.rb,
lib/sequel/plugins/instance_hooks.rb,
lib/sequel/plugins/throw_failures.rb,
lib/sequel/plugins/update_refresh.rb,
lib/sequel/plugins/xml_serializer.rb,
lib/sequel/extensions/pg_range_ops.rb,
lib/sequel/extensions/pretty_table.rb,
lib/sequel/extensions/server_block.rb,
lib/sequel/extensions/sql_comments.rb,
lib/sequel/extensions/stdio_logger.rb,
lib/sequel/plugins/association_pks.rb,
lib/sequel/plugins/boolean_readers.rb,
lib/sequel/plugins/boolean_subsets.rb,
lib/sequel/plugins/columns_updated.rb,
lib/sequel/plugins/defaults_setter.rb,
lib/sequel/plugins/insert_conflict.rb,
lib/sequel/plugins/json_serializer.rb,
lib/sequel/plugins/lazy_attributes.rb,
lib/sequel/plugins/string_stripper.rb,
lib/sequel/extensions/pg_multirange.rb,
lib/sequel/extensions/query_blocker.rb,
lib/sequel/extensions/schema_dumper.rb,
lib/sequel/extensions/select_remove.rb,
lib/sequel/plugins/accessed_columns.rb,
lib/sequel/plugins/after_initialize.rb,
lib/sequel/plugins/auto_validations.rb,
lib/sequel/plugins/column_conflicts.rb,
lib/sequel/plugins/forbid_lazy_load.rb,
lib/sequel/plugins/instance_filters.rb,
lib/sequel/plugins/inverted_subsets.rb,
lib/sequel/plugins/paged_operations.rb,
lib/sequel/plugins/typecast_on_load.rb,
lib/sequel/plugins/unlimited_update.rb,
lib/sequel/plugins/update_or_create.rb,
lib/sequel/extensions/pg_loose_count.rb,
lib/sequel/extensions/pg_timestamptz.rb,
lib/sequel/extensions/schema_caching.rb,
lib/sequel/extensions/server_logging.rb,
lib/sequel/model/default_inflections.rb,
lib/sequel/plugins/async_thread_pool.rb,
lib/sequel/plugins/before_after_save.rb,
lib/sequel/plugins/column_encryption.rb,
lib/sequel/plugins/eager_graph_eager.rb,
lib/sequel/plugins/input_transformer.rb,
lib/sequel/plugins/many_through_many.rb,
lib/sequel/plugins/nested_attributes.rb,
lib/sequel/plugins/subset_conditions.rb,
lib/sequel/extensions/set_literalizer.rb,
lib/sequel/extensions/split_array_nil.rb,
lib/sequel/extensions/sqlite_json_ops.rb,
lib/sequel/extensions/synchronize_sql.rb,
lib/sequel/plugins/blacklist_security.rb,
lib/sequel/plugins/def_dataset_method.rb,
lib/sequel/plugins/hook_class_methods.rb,
lib/sequel/plugins/optimistic_locking.rb,
lib/sequel/plugins/static_cache_cache.rb,
lib/sequel/plugins/update_primary_key.rb,
lib/sequel/plugins/validation_helpers.rb,
lib/sequel/plugins/whitelist_security.rb,
lib/sequel/extensions/round_timestamps.rb,
lib/sequel/plugins/association_proxies.rb,
lib/sequel/plugins/prepared_statements.rb,
lib/sequel/plugins/skip_create_refresh.rb,
lib/sequel/plugins/skip_saving_columns.rb,
lib/sequel/plugins/subset_static_cache.rb,
lib/sequel/plugins/unused_associations.rb,
lib/sequel/plugins/validate_associated.rb,
lib/sequel/plugins/validation_contexts.rb,
lib/sequel/extensions/pg_schema_caching.rb,
lib/sequel/plugins/dataset_associations.rb,
lib/sequel/plugins/require_valid_schema.rb,
lib/sequel/plugins/singular_table_names.rb,
lib/sequel/extensions/sql_log_normalizer.rb,
lib/sequel/plugins/delay_add_association.rb,
lib/sequel/plugins/pg_array_associations.rb,
lib/sequel/plugins/constraint_validations.rb,
lib/sequel/plugins/modification_detection.rb,
lib/sequel/plugins/pg_auto_validate_enums.rb,
lib/sequel/plugins/tactical_eager_loading.rb,
lib/sequel/plugins/class_table_inheritance.rb,
lib/sequel/plugins/insert_returning_select.rb,
lib/sequel/plugins/optimistic_locking_base.rb,
lib/sequel/plugins/association_dependencies.rb,
lib/sequel/plugins/concurrent_eager_loading.rb,
lib/sequel/plugins/empty_failure_backtraces.rb,
lib/sequel/plugins/mssql_optimistic_locking.rb,
lib/sequel/plugins/pg_eager_any_typed_array.rb,
lib/sequel/plugins/prepared_statements_safe.rb,
lib/sequel/plugins/single_table_inheritance.rb,
lib/sequel/plugins/validation_class_methods.rb,
lib/sequel/extensions/thread_local_timezones.rb,
lib/sequel/plugins/auto_restrict_eager_graph.rb,
lib/sequel/plugins/instance_specific_default.rb,
lib/sequel/extensions/pg_static_cache_updater.rb,
lib/sequel/plugins/pg_xmin_optimistic_locking.rb,
lib/sequel/extensions/sequel_4_dataset_methods.rb,
lib/sequel/extensions/virtual_row_method_block.rb,
lib/sequel/plugins/association_multi_add_remove.rb,
lib/sequel/plugins/association_lazy_eager_option.rb,
lib/sequel/plugins/pg_auto_constraint_validations.rb,
lib/sequel/plugins/primary_key_lookup_check_values.rb,
lib/sequel/extensions/temporarily_release_connection.rb,
lib/sequel/extensions/transaction_connection_validator.rb,
lib/sequel/plugins/serialization_modification_detection.rb,
lib/sequel/plugins/validation_helpers_generic_type_messages.rb,
lib/sequel/plugins/auto_validations_constraint_validations_presence_message.rb more...
Overview
The round_timestamps extension will automatically round timestamp values to the database’s supported level of precision before literalizing them.
For example, if the database supports millisecond precision, and you give it a Time value with microsecond precision, it will round it appropriately:
Time.at(1405341161.917999982833862)
# default: 2014-07-14 14:32:41.917999
# with extension: 2014-07-14 14:32:41.918000
The round_timestamps extension correctly deals with databases that support millisecond or second precision. In addition to handling Time values, it also handles DateTime values and Sequel::SQLTime values (for the TIME type).
To round timestamps for a single dataset:
ds = ds.extension(:round_timestamps)
To round timestamps for all datasets on a single database:
DB.extension(:round_timestamps)
Related module: Sequel::Dataset::RoundTimestamps
Defined Under Namespace
Modules: CoreRefinements, DatabaseQuery, DatasetPrinter, DatasetQuery, Inflections, Plugins, Postgres, QueryBlocker, S, SQL, SQLComments, SQLLogNormalizer, SQLite, Schema, SchemaCaching, SchemaDumper, SelectRemove, Sequel4DatasetMethods, SequelMethods, ServerBlock, ServerLogging, SymbolAref, SymbolAs, ThreadLocalTimezones, ThreadedServerBlock, TransactionConnectionValidator, UnthreadedServerBlock Classes: BasicObject, Database, Dataset, HookFailed, LiteralString, MassAssignmentRestriction, Model, SQLTime, StdioLogger, ToDot, UnableToReacquireConnectionError, ValidationFailed
Constant Summary collapse
- VIRTUAL_ROW =
new
- MAJOR =
The major version of Sequel. Only bumped for major changes.
5
- MINOR =
The minor version of Sequel. Bumped for every non-patch level release, generally around once a month.
91
- TINY =
The tiny version of Sequel. Usually 0, only bumped for bugfix releases that fix regressions from previous versions.
0
- VERSION =
The version of Sequel you are using, as a string (e.g. “2.11.0”)
[MAJOR, MINOR, TINY].join('.').freeze
- VERSION_NUMBER =
The version of Sequel you are using, as a number (2.11.0 -> 20110)
MAJOR*10000 + MINOR*10 + TINY
- Timezones =
Backwards compatible alias
SequelMethods
- DEFAULT_INFLECTIONS_PROC =
Proc that is instance_execed to create the default inflections for both the model inflector and the inflector extension.
proc do plural(/$/, 's') plural(/s$/i, 's') plural(/(alias|(?:stat|octop|vir|b)us)$/i, '\1es') plural(/(buffal|tomat)o$/i, '\1oes') plural(/([ti])um$/i, '\1a') plural(/sis$/i, 'ses') plural(/(?:([^f])fe|([lr])f)$/i, '\1\2ves') plural(/(hive)$/i, '\1s') plural(/([^aeiouy]|qu)y$/i, '\1ies') plural(/(x|ch|ss|sh)$/i, '\1es') plural(/(matr|vert|ind)ix|ex$/i, '\1ices') plural(/([m|l])ouse$/i, '\1ice') singular(/s$/i, '') singular(/([ti])a$/i, '\1um') singular(/(analy|ba|cri|diagno|parenthe|progno|synop|the)ses$/i, '\1sis') singular(/([^f])ves$/i, '\1fe') singular(/([h|t]ive)s$/i, '\1') singular(/([lr])ves$/i, '\1f') singular(/([^aeiouy]|qu)ies$/i, '\1y') singular(/(m)ovies$/i, '\1ovie') singular(/(x|ch|ss|sh)es$/i, '\1') singular(/([m|l])ice$/i, '\1ouse') singular(/buses$/i, 'bus') singular(/oes$/i, 'o') singular(/shoes$/i, 'shoe') singular(/(alias|(?:stat|octop|vir|b)us)es$/i, '\1') singular(/(vert|ind)ices$/i, '\1ex') singular(/matrices$/i, 'matrix') irregular('person', 'people') irregular('man', 'men') irregular('child', 'children') irregular('sex', 'sexes') irregular('move', 'moves') irregular('quiz', 'quizzes') irregular('testis', 'testes') uncountable(%w(equipment information rice money species series fish sheep news)) end
Constants included from SQL::Constants
SQL::Constants::CURRENT_DATE, SQL::Constants::CURRENT_TIME, SQL::Constants::CURRENT_TIMESTAMP, SQL::Constants::DEFAULT, SQL::Constants::NOTNULL, SQL::Constants::NULL, SQL::Constants::SQLFALSE, SQL::Constants::SQLTRUE
Class Method Summary collapse
-
.inflections {|Inflections| ... } ⇒ Object
Yield the Inflections module if a block is given, and return the Inflections module.
-
.version ⇒ Object
The version of Sequel you are using, as a string (e.g. “2.11.0”).
Methods included from SQL::Builders
as, asc, blob, case, cast, cast_numeric, cast_string, char_length, deep_qualify, delay, desc, expr, extract, function, identifier, ilike, join, like, lit, negate, or, pg_inet_op, pg_json, pg_json_op, pg_json_wrap, pg_jsonb, pg_jsonb_op, pg_jsonb_wrap, pg_multirange, pg_range, pg_range_op, pg_row, pg_row_op, qualify, sqlite_json_op, sqlite_jsonb_op, string_agg, subscript, trim, value_list
Methods included from SQL::OperatorBuilders
Class Method Details
permalink .inflections {|Inflections| ... } ⇒ Object
Yield the Inflections module if a block is given, and return the Inflections module.
6 7 8 9 |
# File 'lib/sequel/model/inflections.rb', line 6 def self.inflections yield Inflections if defined?(yield) Inflections end |
permalink .version ⇒ Object
The version of Sequel you are using, as a string (e.g. “2.11.0”)
22 23 24 |
# File 'lib/sequel/version.rb', line 22 def self.version VERSION end |