config_manager 0.0.5 → 0.0.6

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
2
  SHA1:
3
- metadata.gz: a14bdfc5e2e90328a5a8a2ce1ea6e5f94ad243e5
4
- data.tar.gz: 0b93ab1278e2627da5c50dd1621884448b2df096
3
+ metadata.gz: c35668b6fd2b9dc71f88b90d151fa225db6c0198
4
+ data.tar.gz: 0e9240aa867e67b482f40fd022ce9e0d34a2cbaf
5
5
  SHA512:
6
- metadata.gz: 238f84ce06a47288079c29c415ff417de7d756c1173d91538a797da5fc4e8d105cbfc27f91bd49bc5c14dd27eaafd19a692044ce8a83e1d5c1ef2a6fb5b407cf
7
- data.tar.gz: 5f1031d1ab36d98210cde763cbe1304d58bcb00fe975e8264f43d13bb1c0f7dd5e9c132a8ee3f8017fe230c9134915da1e032494c11ddf1a799504739580d101
6
+ metadata.gz: c903e028f3d5b543aae703e8f9ae357590d480f32cb30e085f1af26259efd771cfaad6ba58992689f88ce82a1a90311e103fd1ebf08edeaefbea3cb579c7b40a
7
+ data.tar.gz: 76371a4819e9b6aa0379787642eed388ca109f60ef1a18e5eedb5b4490ee19fe5675fa254701255f295a57cac801eeed38bcc94fac4a3a4af3019806ccb14b33
@@ -0,0 +1,74 @@
1
+ module ConfigManager
2
+ class Setting
3
+ attr_reader :id, :value, :tags
4
+
5
+ def initialize(id, value, tags)
6
+ @id = id
7
+ @value = value
8
+ @tags = tags
9
+ end
10
+
11
+ class << self
12
+ def persist(id, value, *indexes)
13
+ $redis.set(generate_key(id), value)
14
+ $redis.sadd(generate_tags_key(id), indexes) unless indexes.empty?
15
+
16
+ # update global and tag indexes
17
+ indexes = indexes.map{|index| generate_index(index)}
18
+ indexes << global_key
19
+ index_by(id, indexes)
20
+ end
21
+
22
+ def find(id, with_tags=false)
23
+ key = generate_key(id)
24
+ value = $redis.get(key)
25
+
26
+ return nil unless value
27
+
28
+ index = generate_tags_key(id)
29
+ tags = with_tags ? $redis.smembers(index) : []
30
+
31
+ new(id, value, tags)
32
+ end
33
+
34
+ def delete(id)
35
+ $redis.del(generate_key(id), generate_tags_key(id))
36
+ end
37
+
38
+ private
39
+
40
+ # stores the setting id under the requested indexes
41
+ # this allows us to search all keys for a given index
42
+ # such as the global index returning all keys or a tag
43
+ def index_by(id, indexes)
44
+ indexes.each do |index|
45
+ $redis.sadd(index, generate_key(id))
46
+ end
47
+ end
48
+
49
+ def generate_key(id)
50
+ "#{prefix}:#{id}"
51
+ end
52
+
53
+ def generate_tags_key(id)
54
+ "#{prefix}_tags:#{id}"
55
+ end
56
+
57
+ def generate_index(id)
58
+ "#{prefix}_index:#{id}"
59
+ end
60
+
61
+ def global_key
62
+ "#{prefix}_global"
63
+ end
64
+
65
+ def prefix
66
+ "#{Rails.application.class.parent_name.underscore}_cm_settings"
67
+ end
68
+
69
+ def store_key_by_index(index, key)
70
+ $redis.sadd(index, generate_key(key))
71
+ end
72
+ end
73
+ end
74
+ end
@@ -1,6 +1,8 @@
1
1
  module ConfigManager
2
2
  module Toggle
3
3
  def self.active?(test, challenge=nil)
4
+ return true if stub_in_host_app?
5
+
4
6
  toggle_def = Toggles::Definition.new(test)
5
7
  return false unless toggle_def.type
6
8
 
@@ -68,5 +70,11 @@ module ConfigManager
68
70
  :type => 'set',
69
71
  :formatted_acceptable_values => acceptable_values
70
72
  end
73
+
74
+ private
75
+ # true when running tests in a host app
76
+ def self.stub_in_host_app?
77
+ Rails.env.test? && !Rails.root.to_s.match(ConfigManager::Engine.root.to_s)
78
+ end
71
79
  end
72
80
  end
@@ -1,3 +1,3 @@
1
1
  module ConfigManager
2
- VERSION = "0.0.5"
2
+ VERSION = "0.0.6"
3
3
  end
@@ -555,3 +555,371 @@
555
555
   (6.4ms) rollback transaction
556
556
   (0.0ms) begin transaction
557
557
   (0.0ms) rollback transaction
558
+ ActiveRecord::SchemaMigration Load (0.5ms) SELECT "schema_migrations".* FROM "schema_migrations"
559
+ ActiveRecord::SchemaMigration Load (0.1ms) SELECT "schema_migrations".* FROM "schema_migrations"
560
+  (0.1ms) begin transaction
561
+  (0.0ms) rollback transaction
562
+ ActiveRecord::SchemaMigration Load (0.1ms) SELECT "schema_migrations".* FROM "schema_migrations"
563
+  (0.1ms) begin transaction
564
+  (0.1ms) rollback transaction
565
+  (0.0ms) begin transaction
566
+  (0.0ms) rollback transaction
567
+ ActiveRecord::SchemaMigration Load (0.4ms) SELECT "schema_migrations".* FROM "schema_migrations"
568
+  (0.1ms) begin transaction
569
+  (0.0ms) rollback transaction
570
+  (0.0ms) begin transaction
571
+  (0.0ms) rollback transaction
572
+ ActiveRecord::SchemaMigration Load (0.4ms) SELECT "schema_migrations".* FROM "schema_migrations"
573
+  (0.1ms) begin transaction
574
+  (0.0ms) rollback transaction
575
+  (0.0ms) begin transaction
576
+  (0.0ms) rollback transaction
577
+  (0.0ms) begin transaction
578
+  (0.0ms) rollback transaction
579
+ ActiveRecord::SchemaMigration Load (0.1ms) SELECT "schema_migrations".* FROM "schema_migrations"
580
+  (0.1ms) begin transaction
581
+  (0.0ms) rollback transaction
582
+  (0.0ms) begin transaction
583
+  (0.0ms) rollback transaction
584
+  (0.0ms) begin transaction
585
+  (0.0ms) rollback transaction
586
+  (0.0ms) begin transaction
587
+  (0.1ms) rollback transaction
588
+  (0.0ms) begin transaction
589
+  (0.0ms) rollback transaction
590
+ ActiveRecord::SchemaMigration Load (0.1ms) SELECT "schema_migrations".* FROM "schema_migrations"
591
+  (0.1ms) begin transaction
592
+  (0.0ms) rollback transaction
593
+ ActiveRecord::SchemaMigration Load (0.1ms) SELECT "schema_migrations".* FROM "schema_migrations"
594
+  (0.1ms) begin transaction
595
+  (0.2ms) rollback transaction
596
+ ActiveRecord::SchemaMigration Load (0.1ms) SELECT "schema_migrations".* FROM "schema_migrations"
597
+  (0.1ms) begin transaction
598
+  (0.1ms) rollback transaction
599
+  (0.0ms) begin transaction
600
+ ActiveRecord::SchemaMigration Load (0.1ms) SELECT "schema_migrations".* FROM "schema_migrations"
601
+  (0.1ms) begin transaction
602
+  (0.0ms) rollback transaction
603
+  (0.1ms) begin transaction
604
+  (0.0ms) rollback transaction
605
+  (0.0ms) begin transaction
606
+  (0.0ms) rollback transaction
607
+  (0.0ms) begin transaction
608
+  (0.0ms) rollback transaction
609
+  (0.0ms) begin transaction
610
+  (0.1ms) rollback transaction
611
+ ActiveRecord::SchemaMigration Load (0.1ms) SELECT "schema_migrations".* FROM "schema_migrations"
612
+  (0.1ms) begin transaction
613
+  (0.0ms) rollback transaction
614
+  (0.0ms) begin transaction
615
+  (0.0ms) rollback transaction
616
+  (0.0ms) begin transaction
617
+  (0.1ms) rollback transaction
618
+  (0.0ms) begin transaction
619
+  (0.0ms) rollback transaction
620
+  (0.0ms) begin transaction
621
+  (0.0ms) rollback transaction
622
+  (0.0ms) begin transaction
623
+  (0.0ms) rollback transaction
624
+ ActiveRecord::SchemaMigration Load (0.1ms) SELECT "schema_migrations".* FROM "schema_migrations"
625
+  (0.1ms) begin transaction
626
+  (0.0ms) rollback transaction
627
+  (0.0ms) begin transaction
628
+  (0.0ms) rollback transaction
629
+  (0.0ms) begin transaction
630
+  (0.0ms) rollback transaction
631
+  (0.0ms) begin transaction
632
+  (0.0ms) rollback transaction
633
+  (0.0ms) begin transaction
634
+  (0.0ms) rollback transaction
635
+  (0.0ms) begin transaction
636
+  (0.0ms) rollback transaction
637
+  (0.0ms) begin transaction
638
+  (0.0ms) rollback transaction
639
+ ActiveRecord::SchemaMigration Load (0.1ms) SELECT "schema_migrations".* FROM "schema_migrations"
640
+  (0.1ms) begin transaction
641
+  (0.1ms) rollback transaction
642
+  (0.0ms) begin transaction
643
+  (0.0ms) rollback transaction
644
+  (0.0ms) begin transaction
645
+  (0.0ms) rollback transaction
646
+  (0.0ms) begin transaction
647
+  (0.0ms) rollback transaction
648
+  (0.0ms) begin transaction
649
+  (0.0ms) rollback transaction
650
+  (0.0ms) begin transaction
651
+  (0.0ms) rollback transaction
652
+  (0.0ms) begin transaction
653
+  (0.0ms) rollback transaction
654
+ ActiveRecord::SchemaMigration Load (0.1ms) SELECT "schema_migrations".* FROM "schema_migrations"
655
+  (0.1ms) begin transaction
656
+  (0.0ms) rollback transaction
657
+  (0.0ms) begin transaction
658
+  (0.0ms) rollback transaction
659
+  (0.0ms) begin transaction
660
+  (0.0ms) rollback transaction
661
+  (0.0ms) begin transaction
662
+  (0.0ms) rollback transaction
663
+  (0.0ms) begin transaction
664
+  (0.0ms) rollback transaction
665
+  (0.0ms) begin transaction
666
+  (0.0ms) rollback transaction
667
+  (0.0ms) begin transaction
668
+  (0.0ms) rollback transaction
669
+ ActiveRecord::SchemaMigration Load (0.1ms) SELECT "schema_migrations".* FROM "schema_migrations"
670
+ ActiveRecord::SchemaMigration Load (0.3ms) SELECT "schema_migrations".* FROM "schema_migrations"
671
+  (0.1ms) begin transaction
672
+  (0.0ms) rollback transaction
673
+  (0.0ms) begin transaction
674
+  (0.0ms) rollback transaction
675
+  (0.0ms) begin transaction
676
+  (0.0ms) rollback transaction
677
+  (0.0ms) begin transaction
678
+  (0.0ms) rollback transaction
679
+  (0.0ms) begin transaction
680
+  (0.0ms) rollback transaction
681
+  (0.1ms) begin transaction
682
+  (0.1ms) rollback transaction
683
+  (0.0ms) begin transaction
684
+  (0.0ms) rollback transaction
685
+  (0.0ms) begin transaction
686
+  (0.0ms) rollback transaction
687
+  (0.0ms) begin transaction
688
+  (0.0ms) rollback transaction
689
+  (0.0ms) begin transaction
690
+  (0.0ms) rollback transaction
691
+ ActiveRecord::SchemaMigration Load (0.1ms) SELECT "schema_migrations".* FROM "schema_migrations"
692
+  (0.1ms) begin transaction
693
+  (0.0ms) rollback transaction
694
+  (0.0ms) begin transaction
695
+  (0.0ms) rollback transaction
696
+  (0.0ms) begin transaction
697
+  (0.0ms) rollback transaction
698
+  (0.0ms) begin transaction
699
+  (0.0ms) rollback transaction
700
+  (0.0ms) begin transaction
701
+  (0.0ms) rollback transaction
702
+  (0.0ms) begin transaction
703
+  (0.0ms) rollback transaction
704
+  (0.0ms) begin transaction
705
+  (0.0ms) rollback transaction
706
+  (0.0ms) begin transaction
707
+  (0.0ms) rollback transaction
708
+  (0.0ms) begin transaction
709
+  (0.0ms) rollback transaction
710
+  (0.0ms) begin transaction
711
+  (0.0ms) rollback transaction
712
+ ActiveRecord::SchemaMigration Load (0.1ms) SELECT "schema_migrations".* FROM "schema_migrations"
713
+ ActiveRecord::SchemaMigration Load (0.1ms) SELECT "schema_migrations".* FROM "schema_migrations"
714
+  (0.1ms) begin transaction
715
+  (0.0ms) rollback transaction
716
+  (0.0ms) begin transaction
717
+  (0.0ms) rollback transaction
718
+  (0.0ms) begin transaction
719
+  (0.0ms) rollback transaction
720
+  (0.0ms) begin transaction
721
+  (0.0ms) rollback transaction
722
+  (0.0ms) begin transaction
723
+  (0.0ms) rollback transaction
724
+  (0.0ms) begin transaction
725
+  (0.0ms) rollback transaction
726
+  (0.0ms) begin transaction
727
+  (0.0ms) rollback transaction
728
+  (0.0ms) begin transaction
729
+  (0.0ms) rollback transaction
730
+  (0.0ms) begin transaction
731
+  (0.0ms) rollback transaction
732
+  (0.0ms) begin transaction
733
+  (0.0ms) rollback transaction
734
+ ActiveRecord::SchemaMigration Load (0.1ms) SELECT "schema_migrations".* FROM "schema_migrations"
735
+  (0.1ms) begin transaction
736
+  (0.0ms) rollback transaction
737
+  (0.0ms) begin transaction
738
+  (0.0ms) rollback transaction
739
+  (0.0ms) begin transaction
740
+  (0.0ms) rollback transaction
741
+  (0.0ms) begin transaction
742
+  (0.0ms) rollback transaction
743
+  (0.0ms) begin transaction
744
+  (0.0ms) rollback transaction
745
+  (0.0ms) begin transaction
746
+  (0.0ms) rollback transaction
747
+  (0.0ms) begin transaction
748
+  (0.0ms) rollback transaction
749
+  (0.0ms) begin transaction
750
+  (0.0ms) rollback transaction
751
+  (0.0ms) begin transaction
752
+  (0.0ms) rollback transaction
753
+  (0.1ms) begin transaction
754
+  (0.0ms) rollback transaction
755
+ ActiveRecord::SchemaMigration Load (0.1ms) SELECT "schema_migrations".* FROM "schema_migrations"
756
+  (0.1ms) begin transaction
757
+  (0.0ms) rollback transaction
758
+  (0.0ms) begin transaction
759
+  (0.0ms) rollback transaction
760
+  (0.0ms) begin transaction
761
+  (0.0ms) rollback transaction
762
+  (0.0ms) begin transaction
763
+  (0.0ms) rollback transaction
764
+  (0.0ms) begin transaction
765
+  (0.0ms) rollback transaction
766
+  (0.0ms) begin transaction
767
+  (0.0ms) rollback transaction
768
+  (0.0ms) begin transaction
769
+  (0.0ms) rollback transaction
770
+  (0.0ms) begin transaction
771
+  (0.0ms) rollback transaction
772
+  (0.0ms) begin transaction
773
+  (0.0ms) rollback transaction
774
+  (0.0ms) begin transaction
775
+  (0.0ms) rollback transaction
776
+ ActiveRecord::SchemaMigration Load (0.1ms) SELECT "schema_migrations".* FROM "schema_migrations"
777
+  (0.1ms) begin transaction
778
+  (0.0ms) rollback transaction
779
+  (0.0ms) begin transaction
780
+  (0.0ms) rollback transaction
781
+  (0.0ms) begin transaction
782
+  (0.0ms) rollback transaction
783
+  (0.1ms) begin transaction
784
+  (0.0ms) rollback transaction
785
+  (0.0ms) begin transaction
786
+  (0.0ms) rollback transaction
787
+  (0.0ms) begin transaction
788
+  (0.0ms) rollback transaction
789
+  (0.0ms) begin transaction
790
+  (0.0ms) rollback transaction
791
+  (0.0ms) begin transaction
792
+  (0.0ms) rollback transaction
793
+  (0.0ms) begin transaction
794
+  (0.0ms) rollback transaction
795
+  (0.0ms) begin transaction
796
+  (0.0ms) rollback transaction
797
+ ActiveRecord::SchemaMigration Load (0.1ms) SELECT "schema_migrations".* FROM "schema_migrations"
798
+  (0.1ms) begin transaction
799
+  (0.0ms) rollback transaction
800
+  (0.1ms) begin transaction
801
+  (0.0ms) rollback transaction
802
+  (0.0ms) begin transaction
803
+  (0.0ms) rollback transaction
804
+  (0.1ms) begin transaction
805
+  (0.0ms) rollback transaction
806
+  (0.0ms) begin transaction
807
+  (0.0ms) rollback transaction
808
+  (0.0ms) begin transaction
809
+  (0.0ms) rollback transaction
810
+  (0.0ms) begin transaction
811
+  (0.0ms) rollback transaction
812
+  (0.0ms) begin transaction
813
+  (0.0ms) rollback transaction
814
+  (0.0ms) begin transaction
815
+  (0.0ms) rollback transaction
816
+  (0.0ms) begin transaction
817
+  (0.0ms) rollback transaction
818
+  (0.0ms) begin transaction
819
+  (0.0ms) rollback transaction
820
+ ActiveRecord::SchemaMigration Load (0.1ms) SELECT "schema_migrations".* FROM "schema_migrations"
821
+  (0.1ms) begin transaction
822
+  (0.0ms) rollback transaction
823
+  (0.0ms) begin transaction
824
+  (0.0ms) rollback transaction
825
+  (0.0ms) begin transaction
826
+  (0.0ms) rollback transaction
827
+  (0.0ms) begin transaction
828
+  (0.0ms) rollback transaction
829
+  (0.0ms) begin transaction
830
+  (0.0ms) rollback transaction
831
+  (0.0ms) begin transaction
832
+  (0.0ms) rollback transaction
833
+  (0.0ms) begin transaction
834
+  (0.0ms) rollback transaction
835
+  (0.0ms) begin transaction
836
+  (0.0ms) rollback transaction
837
+  (0.0ms) begin transaction
838
+  (0.0ms) rollback transaction
839
+  (0.0ms) begin transaction
840
+  (0.0ms) rollback transaction
841
+  (0.0ms) begin transaction
842
+  (0.0ms) rollback transaction
843
+  (0.0ms) begin transaction
844
+  (0.0ms) rollback transaction
845
+ ActiveRecord::SchemaMigration Load (0.1ms) SELECT "schema_migrations".* FROM "schema_migrations"
846
+  (0.1ms) begin transaction
847
+  (0.0ms) rollback transaction
848
+  (0.0ms) begin transaction
849
+  (0.0ms) rollback transaction
850
+  (0.0ms) begin transaction
851
+  (0.0ms) rollback transaction
852
+  (0.0ms) begin transaction
853
+  (0.0ms) rollback transaction
854
+  (0.0ms) begin transaction
855
+  (0.0ms) rollback transaction
856
+  (0.0ms) begin transaction
857
+  (0.0ms) rollback transaction
858
+  (0.0ms) begin transaction
859
+  (0.0ms) rollback transaction
860
+  (0.0ms) begin transaction
861
+  (0.0ms) rollback transaction
862
+  (0.1ms) begin transaction
863
+  (0.0ms) rollback transaction
864
+  (0.0ms) begin transaction
865
+  (0.0ms) rollback transaction
866
+  (0.0ms) begin transaction
867
+  (0.0ms) rollback transaction
868
+  (0.0ms) begin transaction
869
+  (0.0ms) rollback transaction
870
+  (0.0ms) begin transaction
871
+  (0.0ms) rollback transaction
872
+ ActiveRecord::SchemaMigration Load (0.5ms) SELECT "schema_migrations".* FROM "schema_migrations"
873
+  (0.1ms) begin transaction
874
+  (0.0ms) rollback transaction
875
+  (0.0ms) begin transaction
876
+  (0.0ms) rollback transaction
877
+  (0.0ms) begin transaction
878
+  (0.0ms) rollback transaction
879
+  (0.0ms) begin transaction
880
+  (0.0ms) rollback transaction
881
+  (0.0ms) begin transaction
882
+  (0.0ms) rollback transaction
883
+  (0.0ms) begin transaction
884
+  (0.0ms) rollback transaction
885
+  (0.0ms) begin transaction
886
+  (0.0ms) rollback transaction
887
+  (0.1ms) begin transaction
888
+  (0.0ms) rollback transaction
889
+  (0.0ms) begin transaction
890
+  (0.0ms) rollback transaction
891
+  (0.0ms) begin transaction
892
+  (0.1ms) rollback transaction
893
+  (0.0ms) begin transaction
894
+  (0.0ms) rollback transaction
895
+  (0.0ms) begin transaction
896
+  (0.0ms) rollback transaction
897
+  (0.0ms) begin transaction
898
+  (0.0ms) rollback transaction
899
+ ActiveRecord::SchemaMigration Load (0.1ms) SELECT "schema_migrations".* FROM "schema_migrations"
900
+  (0.1ms) begin transaction
901
+  (0.0ms) rollback transaction
902
+  (0.0ms) begin transaction
903
+  (0.0ms) rollback transaction
904
+  (0.0ms) begin transaction
905
+  (0.0ms) rollback transaction
906
+  (0.0ms) begin transaction
907
+  (0.0ms) rollback transaction
908
+  (0.0ms) begin transaction
909
+  (0.0ms) rollback transaction
910
+  (0.0ms) begin transaction
911
+  (0.0ms) rollback transaction
912
+  (0.0ms) begin transaction
913
+  (0.0ms) rollback transaction
914
+  (0.0ms) begin transaction
915
+  (0.0ms) rollback transaction
916
+  (0.0ms) begin transaction
917
+  (0.0ms) rollback transaction
918
+  (0.0ms) begin transaction
919
+  (0.0ms) rollback transaction
920
+  (0.0ms) begin transaction
921
+  (0.0ms) rollback transaction
922
+  (0.0ms) begin transaction
923
+  (0.0ms) rollback transaction
924
+  (0.0ms) begin transaction
925
+  (0.0ms) rollback transaction
@@ -0,0 +1,112 @@
1
+ require 'rails_helper'
2
+
3
+ module ConfigManager
4
+ describe Setting, :redis => true do
5
+ let(:name) { "mysetting" }
6
+
7
+ describe ".persist" do
8
+ let(:key) { Setting.send(:generate_key, name) }
9
+ let(:global) { Setting.send(:global_key) }
10
+
11
+ def redis_index(index)
12
+ Setting.send(:generate_index, index)
13
+ end
14
+
15
+ it "stores the value in redis under the generated key" do
16
+ Setting.persist(name, "I am serialized")
17
+ $redis.get(key).should == "I am serialized"
18
+ end
19
+
20
+ it "adds the key to the global setting index" do
21
+ Setting.persist(name, "I am serialized")
22
+ $redis.smembers(global).should == [key]
23
+ end
24
+
25
+ context "when a tag has been passed" do
26
+ let(:tag) { "xyz" }
27
+
28
+ it "adds the key to a set identified by the tag" do
29
+ Setting.persist(name, "I am serialized", tag)
30
+ $redis.smembers(redis_index(tag)).should include(key)
31
+ end
32
+
33
+ it "adds the key to the global setting index" do
34
+ Setting.persist(name, "I am serialized", tag)
35
+ $redis.smembers(global).should == [key]
36
+ end
37
+ end
38
+
39
+ context "when two tags have been passed" do
40
+ let(:tag1) { "xyz" }
41
+ let(:tag2) { "abc" }
42
+
43
+ it "adds the key to two sets identifed by the tags" do
44
+ Setting.persist(name, "I am serialized", tag1, tag2)
45
+ $redis.smembers(redis_index(tag1)).should include(key)
46
+ $redis.smembers(redis_index(tag2)).should include(key)
47
+ end
48
+ end
49
+ end
50
+
51
+ describe ".find" do
52
+ context "when id is not in redis" do
53
+ it "returns nil" do
54
+ Setting.find("mysetting").should be_nil
55
+ end
56
+ end
57
+
58
+ context" when id is in redis" do
59
+ before { Setting.persist(name, "I am serialized", "xyz", "abc") }
60
+ subject { Setting.find(name, with_tags) }
61
+ let(:with_tags) { false }
62
+
63
+ it "returns a setting instance" do
64
+ subject.should be_instance_of(Setting)
65
+ end
66
+
67
+ describe "returned instance" do
68
+ it "has the right id" do
69
+ subject.id.should == name
70
+ end
71
+
72
+ it "has the right value" do
73
+ subject.value.should == "I am serialized"
74
+ end
75
+
76
+ context "when tags are not explicitely request" do
77
+ it "has no tags" do
78
+ subject.tags.should be_empty
79
+ end
80
+ end
81
+
82
+ context "when tags are requested" do
83
+ let(:with_tags) { true }
84
+
85
+ it "has the right tags" do
86
+ ["xyz", "abc"].each do |tag|
87
+ subject.tags.should include(tag)
88
+ end
89
+ end
90
+ end
91
+ end
92
+ end
93
+ end
94
+
95
+ describe ".delete" do
96
+ before do
97
+ Setting.persist(name, "I am serialized", "xyz")
98
+ Setting.find(name, true).tags.should == ["xyz"]
99
+ end
100
+
101
+ it "deletes the setting under the passed id" do
102
+ Setting.delete(name)
103
+ Setting.find(name).should be_nil
104
+ end
105
+
106
+ it "deletes the tags under the passed id" do
107
+ Setting.delete(name)
108
+ $redis.smembers(Setting.send(:generate_tags_key, name)).should be_empty
109
+ end
110
+ end
111
+ end
112
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: config_manager
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.5
4
+ version: 0.0.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - Pablo Calderon
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-08-01 00:00:00.000000000 Z
11
+ date: 2014-08-05 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
@@ -276,6 +276,7 @@ files:
276
276
  - db/migrate/20140725161636_create_config_manager_admins.rb
277
277
  - lib/config_manager.rb
278
278
  - lib/config_manager/engine.rb
279
+ - lib/config_manager/setting.rb
279
280
  - lib/config_manager/toggle.rb
280
281
  - lib/config_manager/toggles/boolean.rb
281
282
  - lib/config_manager/toggles/definition.rb
@@ -355,6 +356,7 @@ files:
355
356
  - spec/dummy/tmp/cache/assets/development/sprockets/f7cbd26ba1d28d48de824f0e94586655
356
357
  - spec/dummy/tmp/test.yml
357
358
  - spec/integration/navigation_test.rb
359
+ - spec/lib/config_manager/setting_spec.rb
358
360
  - spec/lib/config_manager/toggle_spec.rb
359
361
  - spec/lib/config_manager/toggles/boolean_spec.rb
360
362
  - spec/lib/config_manager/toggles/definition_spec.rb
@@ -460,6 +462,7 @@ test_files:
460
462
  - spec/dummy/tmp/cache/assets/development/sprockets/f7cbd26ba1d28d48de824f0e94586655
461
463
  - spec/dummy/tmp/test.yml
462
464
  - spec/integration/navigation_test.rb
465
+ - spec/lib/config_manager/setting_spec.rb
463
466
  - spec/lib/config_manager/toggle_spec.rb
464
467
  - spec/lib/config_manager/toggles/boolean_spec.rb
465
468
  - spec/lib/config_manager/toggles/definition_spec.rb