Class: BucketMaker::SeriesMaker
- Inherits:
-
Object
- Object
- BucketMaker::SeriesMaker
- Includes:
- Singleton
- Defined in:
- lib/bucket_maker/series_maker.rb
Constant Summary collapse
- BUCKET_ROOT =
'series'
Instance Attribute Summary collapse
-
#configuration ⇒ Object
readonly
Returns the value of attribute configuration.
-
#series ⇒ Object
Returns the value of attribute series.
Instance Method Summary collapse
- #bucketable?(bucketable, series_name, bucket_name, group_name) ⇒ Boolean
- #bucketize(series_name, bucket_name) ⇒ Object
- #configured? ⇒ Boolean
- #for_each_series_with_bucketable ⇒ Object
- #has_bucket_in_series?(series_name, bucket_name) ⇒ Boolean
- #has_group_in_bucket_in_series?(series_name, bucket_name, group_name) ⇒ Boolean
- #has_series?(series_name) ⇒ Boolean
- #key_for_series(bucketable, series_name, bucket_name) ⇒ Object
- #make!(config) ⇒ Object
- #series_with_name(series_name) ⇒ Object
Instance Attribute Details
#configuration ⇒ Object (readonly)
Returns the value of attribute configuration.
12 13 14 |
# File 'lib/bucket_maker/series_maker.rb', line 12 def configuration @configuration end |
#series ⇒ Object
Returns the value of attribute series.
10 11 12 |
# File 'lib/bucket_maker/series_maker.rb', line 10 def series @series end |
Instance Method Details
#bucketable?(bucketable, series_name, bucket_name, group_name) ⇒ Boolean
68 69 70 71 72 73 74 75 76 77 78 |
# File 'lib/bucket_maker/series_maker.rb', line 68 def bucketable?(bucketable, series_name, bucket_name, group_name) if bucketable.has_attribute?(:created_at) && has_group_in_bucket_in_series?(series_name, bucket_name, group_name) series_with_name(series_name).bucket_with_name(bucket_name).is_bucketable?(bucketable) || series_with_name(series_name).is_bucketable?(bucketable) else false end end |
#bucketize(series_name, bucket_name) ⇒ Object
64 65 66 |
# File 'lib/bucket_maker/series_maker.rb', line 64 def bucketize(series_name, bucket_name) series_with_name(series_name).bucket_with_name(bucket_name).random_group end |
#configured? ⇒ Boolean
31 32 33 |
# File 'lib/bucket_maker/series_maker.rb', line 31 def configured? @configuration != nil end |
#for_each_series_with_bucketable ⇒ Object
35 36 37 38 39 40 41 |
# File 'lib/bucket_maker/series_maker.rb', line 35 def for_each_series_with_bucketable @series.collect do |series_name, series| series.each_bucket do |bucket_name, bucket| yield self, series_name, bucket_name end end.inject(true) {|result, value| result && value } if block_given? end |
#has_bucket_in_series?(series_name, bucket_name) ⇒ Boolean
51 52 53 |
# File 'lib/bucket_maker/series_maker.rb', line 51 def has_bucket_in_series?(series_name, bucket_name) has_series?(series_name) && series_with_name(series_name).has_bucket?(bucket_name) end |
#has_group_in_bucket_in_series?(series_name, bucket_name, group_name) ⇒ Boolean
55 56 57 58 |
# File 'lib/bucket_maker/series_maker.rb', line 55 def has_group_in_bucket_in_series?(series_name, bucket_name, group_name) has_bucket_in_series?(series_name, bucket_name) && series_with_name(series_name).bucket_with_name(bucket_name).has_group?(group_name) end |
#has_series?(series_name) ⇒ Boolean
47 48 49 |
# File 'lib/bucket_maker/series_maker.rb', line 47 def has_series?(series_name) @series[series_name.to_sym] != nil end |
#key_for_series(bucketable, series_name, bucket_name) ⇒ Object
60 61 62 |
# File 'lib/bucket_maker/series_maker.rb', line 60 def key_for_series(bucketable, series_name, bucket_name) "bucket_maker:#{bucketable.class.to_s.underscore}_#{bucketable.id}:#{series_name.to_s}:#{bucket_name.to_s}" if bucketable && bucketable.id end |
#make!(config) ⇒ Object
16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
# File 'lib/bucket_maker/series_maker.rb', line 16 def make!(config) @series = [] absolute_config_path = Rails.root + config if File.exists?(absolute_config_path) @configuration = YAML.load_file(absolute_config_path) @series = @configuration[BUCKET_ROOT].inject({}) do |result, (series_name, )| result[series_name.to_sym] = BucketMaker::Series.new(series_name, ) result end if @configuration && @configuration[BUCKET_ROOT] end end |
#series_with_name(series_name) ⇒ Object
43 44 45 |
# File 'lib/bucket_maker/series_maker.rb', line 43 def series_with_name(series_name) @series[series_name.to_sym] end |