First one is called ruby_ore (you can call them as you prefer), this will drop a itemsadder:ruby item when you break a custom block of type itemsadder:ruby_ore with a minimum amount of 1 and maximum amount of 2 with 100% chance.
The second one is a loot from a vanilla block. As you imagine it will drop a crystal or a knowledge_fragment when the player breaks a NETHER_QUARTZ_ORE.
These drops are decided by ItemsAdder based on chance you set.
Special property: drop_only_first
This allows you to stop the plugin from dropping each of the items that succeed into extracting a correct chance to be dropped.
WARNING: this would make your items harder to be dropped.
As you can see I set profession attribute and specified the NBT attribute path, which in this case is VillagerData.profession.
Then I set value to minecraft:farmer, this tells ItemsAdder to match only villagers with attribute VillagerData.profession set to minecraft:farmer.
The type attribute of nbt and metadata are really important, don't forget them or matches could not occur.
Drop based on Tile entity NBT data (for example Spawner)