config_manager 0.0.5 → 0.0.6

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
  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